foreman_datacenter 1.20.0 → 1.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/foreman_datacenter/datacenter.css +3 -0
  3. data/app/assets/stylesheets/foreman_datacenter/device_roles.css +32 -0
  4. data/app/controllers/api/v2/foreman_datacenter/device_interfaces_controller.rb +1 -0
  5. data/app/controllers/api/v2/foreman_datacenter/devices_controller.rb +1 -1
  6. data/app/controllers/concerns/foreman_datacenter/controller/parameters/comment.rb +1 -1
  7. data/app/controllers/concerns/foreman_datacenter/controller/parameters/console_port.rb +1 -1
  8. data/app/controllers/concerns/foreman_datacenter/controller/parameters/console_port_template.rb +1 -1
  9. data/app/controllers/concerns/foreman_datacenter/controller/parameters/console_server_port.rb +1 -1
  10. data/app/controllers/concerns/foreman_datacenter/controller/parameters/console_server_port_template.rb +1 -1
  11. data/app/controllers/concerns/foreman_datacenter/controller/parameters/device_bay.rb +1 -1
  12. data/app/controllers/concerns/foreman_datacenter/controller/parameters/device_bay_template.rb +1 -1
  13. data/app/controllers/concerns/foreman_datacenter/controller/parameters/device_interface.rb +1 -1
  14. data/app/controllers/concerns/foreman_datacenter/controller/parameters/device_interface_connection.rb +1 -1
  15. data/app/controllers/concerns/foreman_datacenter/controller/parameters/device_module.rb +1 -1
  16. data/app/controllers/concerns/foreman_datacenter/controller/parameters/device_role.rb +1 -1
  17. data/app/controllers/concerns/foreman_datacenter/controller/parameters/device_type.rb +1 -1
  18. data/app/controllers/concerns/foreman_datacenter/controller/racks.rb +10 -0
  19. data/app/controllers/foreman_datacenter/application_controller.rb +2 -0
  20. data/app/controllers/foreman_datacenter/sites_controller.rb +6 -1
  21. data/app/models/foreman_datacenter/device.rb +1 -0
  22. data/app/models/foreman_datacenter/site.rb +1 -0
  23. data/app/views/foreman_datacenter/devices/show.html.erb +4 -1
  24. data/app/views/foreman_datacenter/racks/_device_position.html.erb +21 -3
  25. data/app/views/foreman_datacenter/racks/_dp.html.erb +46 -0
  26. data/app/views/foreman_datacenter/racks/_unpositioned_devices.html.erb +1 -1
  27. data/app/views/foreman_datacenter/sites/racks.html.erb +17 -0
  28. data/app/views/foreman_datacenter/sites/show.html.erb +4 -1
  29. data/config/routes.rb +1 -0
  30. data/db/migrate/20180725201545_add_location_id_and_organization_id_columns_to_devices.rb +1 -1
  31. data/lib/foreman_datacenter/engine.rb +2 -2
  32. data/lib/foreman_datacenter/version.rb +1 -1
  33. metadata +5 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8c0adb804adfec62786dee07833649ab955ae34574e444ed593ee800dde72fd1
4
- data.tar.gz: 207f8b66049006107cdfba1dd403d739d99a05c7cbfb5a6a474eb7343eafbebe
3
+ metadata.gz: b6dee4917059af9a4715bd20e3e1acb21ac54330f769ef91d81e9b7511ba526b
4
+ data.tar.gz: 4c366cc1ae027b415f0458c87de49698d28d3d335297338e2bdc37c9e3038fa9
5
5
  SHA512:
6
- metadata.gz: 075f03def088ee4a1d8895037594f184f7f384eec6f1654cc29c2e48fcb8176e2e25a9d0e58fcb481da21545cc11fabcfb2e804a86a12190d290ec51435fe366
7
- data.tar.gz: 0bcbd8458d653517edcecc1c471ba9fed8d7fa940cb4feb52c6a590738bae538d542129eb759455c25e16211e1d920ab31d4f8714377e65815cac31617f1b7ae
6
+ metadata.gz: 8218406d02bd9fd1926e688ceebf4f2596c1da6495b434650fe930e753157c006ab0ac1508530ae00d0f958b4527c0842e608ce27ba410c71369fbd4cc3a5c1e
7
+ data.tar.gz: 621fc9445b9481ab5e5b6efe233bba3ff93c8ab08c9c694cadd1ce30892507a6b7a7118dc95f05442308b6a776f79653c16542a3c539031909cab9bff0fd25f3
@@ -9,3 +9,6 @@
9
9
  .nonbordercolor {
10
10
  border-color: transparent !important;
11
11
  }
12
+ .nonmargintop {
13
+ margin-top: 0px !important;
14
+ }
@@ -28,3 +28,35 @@ span.mediumgray {
28
28
  span.darkgray {
29
29
  background-color: #171515;
30
30
  }
31
+
32
+
33
+ .teal {
34
+ background-color: #06a79f;
35
+ }
36
+ .green {
37
+ background-color: #89A54E;
38
+ }
39
+ .blue {
40
+ background-color: #3D96AE;
41
+ }
42
+ .purple {
43
+ background-color: #D882d8;
44
+ }
45
+ .yellow {
46
+ background-color: #ecec61;
47
+ }
48
+ .orange {
49
+ background-color: #f37676;
50
+ }
51
+ .red {
52
+ background-color: #AA4643;
53
+ }
54
+ .lightgray {
55
+ background-color: gray;
56
+ }
57
+ .mediumgray {
58
+ background-color: #403e3e;
59
+ }
60
+ .darkgray {
61
+ background-color: #171515;
62
+ }
@@ -39,6 +39,7 @@ module Api
39
39
  def create
40
40
  @device_interface = ::ForemanDatacenter::DeviceInterface.new(device_interface_params)
41
41
  @device_interface.save
42
+ process_response @device_interface.save
42
43
  end
43
44
 
44
45
  api :PUT, "/foreman_datacenter/device_interfaces/:id/", N_("Update a DeviceInterface")
@@ -47,7 +47,7 @@ module Api
47
47
  param_group :device, :as => :create
48
48
 
49
49
  def create
50
- @device = ::ForemanDatacenter::Device.new(device_params.merge(hosy_id: params[:host_id]))
50
+ @device = ::ForemanDatacenter::Device.new(device_params.merge(host_id: params[:host_id]))
51
51
  process_response @device.save
52
52
  end
53
53
 
@@ -1,4 +1,4 @@
1
- module ForemanDatacenter::Controller::Parameters::Comment
1
+ module ForemanDatacenter::Controller::Parameters::Comment
2
2
  extend ActiveSupport::Concern
3
3
 
4
4
  class_methods do
@@ -1,4 +1,4 @@
1
- module ForemanDatacenter::Controller::Parameters::ConsolePort
1
+ module ForemanDatacenter::Controller::Parameters::ConsolePort
2
2
  extend ActiveSupport::Concern
3
3
 
4
4
  class_methods do
@@ -1,4 +1,4 @@
1
- module ForemanDatacenter::Controller::Parameters::ConsolePortTemplate
1
+ module ForemanDatacenter::Controller::Parameters::ConsolePortTemplate
2
2
  extend ActiveSupport::Concern
3
3
 
4
4
  class_methods do
@@ -1,4 +1,4 @@
1
- module ForemanDatacenter::Controller::Parameters::ConsoleServerPort
1
+ module ForemanDatacenter::Controller::Parameters::ConsoleServerPort
2
2
  extend ActiveSupport::Concern
3
3
 
4
4
  class_methods do
@@ -1,4 +1,4 @@
1
- module ForemanDatacenter::Controller::Parameters::ConsoleServerPortTemplate
1
+ module ForemanDatacenter::Controller::Parameters::ConsoleServerPortTemplate
2
2
  extend ActiveSupport::Concern
3
3
 
4
4
  class_methods do
@@ -1,4 +1,4 @@
1
- module ForemanDatacenter::Controller::Parameters::DeviceBay
1
+ module ForemanDatacenter::Controller::Parameters::DeviceBay
2
2
  extend ActiveSupport::Concern
3
3
 
4
4
  class_methods do
@@ -1,4 +1,4 @@
1
- module ForemanDatacenter::Controller::Parameters::DeviceBayTemplate
1
+ module ForemanDatacenter::Controller::Parameters::DeviceBayTemplate
2
2
  extend ActiveSupport::Concern
3
3
 
4
4
  class_methods do
@@ -1,4 +1,4 @@
1
- module ForemanDatacenter::Controller::Parameters::DeviceInterface
1
+ module ForemanDatacenter::Controller::Parameters::DeviceInterface
2
2
  extend ActiveSupport::Concern
3
3
 
4
4
  class_methods do
@@ -1,4 +1,4 @@
1
- module ForemanDatacenter::Controller::Parameters::DeviceInterfaceConnection
1
+ module ForemanDatacenter::Controller::Parameters::DeviceInterfaceConnection
2
2
  extend ActiveSupport::Concern
3
3
 
4
4
  class_methods do
@@ -1,4 +1,4 @@
1
- module ForemanDatacenter::Controller::Parameters::DeviceModule
1
+ module ForemanDatacenter::Controller::Parameters::DeviceModule
2
2
  extend ActiveSupport::Concern
3
3
 
4
4
  class_methods do
@@ -1,4 +1,4 @@
1
- module ForemanDatacenter::Controller::Parameters::DeviceRole
1
+ module ForemanDatacenter::Controller::Parameters::DeviceRole
2
2
  extend ActiveSupport::Concern
3
3
 
4
4
  class_methods do
@@ -1,4 +1,4 @@
1
- module ForemanDatacenter::Controller::Parameters::DeviceType
1
+ module ForemanDatacenter::Controller::Parameters::DeviceType
2
2
  extend ActiveSupport::Concern
3
3
 
4
4
  class_methods do
@@ -0,0 +1,10 @@
1
+ module ForemanDatacenter::Controller::Racks
2
+ extend ActiveSupport::Concern
3
+
4
+ def move
5
+ @rack_groups = resource_base_search_and_page
6
+ @racks = @rack_group.racks
7
+ process_error object: @rack_group, error_msg: 'Current Rack Group haven\'t any Racks.' if @racks.empty?
8
+ end
9
+
10
+ end
@@ -90,6 +90,8 @@ module ForemanDatacenter
90
90
  'populate'
91
91
  when 'move'
92
92
  'move'
93
+ when 'racks'
94
+ 'racks'
93
95
  else
94
96
  super
95
97
  end
@@ -3,7 +3,7 @@ module ForemanDatacenter
3
3
  include Foreman::Controller::AutoCompleteSearch
4
4
  include ForemanDatacenter::Controller::Parameters::Site
5
5
 
6
- before_action :find_resource, only: [:show, :edit, :update, :destroy, :move]
6
+ before_action :find_resource, only: [:show, :edit, :update, :destroy, :move, :racks]
7
7
 
8
8
  def index
9
9
  @sites = resource_base_search_and_page
@@ -50,6 +50,11 @@ module ForemanDatacenter
50
50
  end
51
51
  end
52
52
 
53
+ def racks
54
+ @racks = @site.racks.includes(:devices)
55
+ process_error redirect: site_path(@site), error_msg: 'Current site haven\'t any Racks.' if @racks.empty?
56
+ end
57
+
53
58
  def move
54
59
  @sites = resource_base_search_and_page
55
60
  @rack_groups = @site.rack_groups
@@ -51,6 +51,7 @@ module ForemanDatacenter
51
51
  scoped_search in: :device_role, on: :name, complete_value: true, rename: :role
52
52
  scoped_search in: :device_type, on: :model, complete_value: true, rename: :type
53
53
  scoped_search in: :platform, on: :name, complete_value: true, rename: :platform
54
+ scoped_search in: :comments, on: :content, complete_value: true, rename: :comments
54
55
 
55
56
  delegate :site_id, to: :rack, allow_nil: true
56
57
  delegate :manufacturer_id, :is_console_server, :is_pdu, :is_network_device,
@@ -20,6 +20,7 @@ module ForemanDatacenter
20
20
  scoped_search on: :shipping_address, complete_value: true, default_order: true
21
21
  scoped_search on: :created_at, complete_value: true, default_order: true
22
22
  scoped_search on: :updated_at, complete_value: true, default_order: true
23
+ scoped_search on: :comments, complete_value: true, default_order: true
23
24
 
24
25
  def racks_count
25
26
  @racks_count ||= racks.count
@@ -256,7 +256,10 @@
256
256
  <% if @device.management_device %>
257
257
  <tr>
258
258
  <td><%= _("Console URL") %></td>
259
- <td><%= h @device.console_url %></td>
259
+ <td>
260
+ <%= link_to @device.console_url, "http://#{@device.console_url}", target: "_blank" %>
261
+ </td>
262
+
260
263
  </tr>
261
264
  <tr>
262
265
  <td><%= _("Login") %></td>
@@ -1,15 +1,15 @@
1
1
  <div class="panel panel-default">
2
- <div class="panel-heading"><strong><%= _("Devices") %></strong></div>
2
+ <div class="panel-heading text-center"><h4 class="nonmargintop nonmarginbottom"><strong><%= link_to _("#{rack.name}"), rack_path(rack) %></strong></h4></div>
3
3
  <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
4
4
  <tbody>
5
- <% @rack.positioned_devices.each do |positions, devices| %>
5
+ <% rack.positioned_devices.each do |positions, devices| %>
6
6
  <tr>
7
7
  <td class="col-md-1"><%= raw(positions.map{|p| "#{p}U"}.join("<br />")) %></td>
8
8
  <td class="col-md-4">
9
9
  <% unless devices.empty? %>
10
10
  <% devices.each do |d| %>
11
11
  <div class="<%= "text-" + ((d.side == "full" or d.side.nil?) ? "center" : "right") + " pull-" + ((d.side == "full" or d.side.nil?) ? "center" : d.side) %>">
12
- <span class="<%= "label " + d.device_role.color.downcase.gsub(" ","") %>">&nbsp;</span>
12
+ <div class="<%= "label " + d.device_role.color.downcase.gsub(" ","") %>" style="border-radius:40px;border:0px;">&nbsp;&nbsp;</div>
13
13
  <%= link_to d.name, device_path(d) %>
14
14
  <% if d.side.nil? %>
15
15
  *
@@ -23,6 +23,24 @@
23
23
  </td>
24
24
  </tr>
25
25
  <% end %>
26
+ <% unless rack.unpositioned_devices.empty? %>
27
+ <tr>
28
+ <td class="col-md-1">Unpositioned Devices</td>
29
+ <td class="col-md-4" style="text-align:center">
30
+ <% rack.unpositioned_devices.each do |d| %>
31
+ <div class="<%= "label " + d.device_role.color.downcase.gsub(" ","") %>" style="border-radius:40px;border:0px;">&nbsp;&nbsp;</div>
32
+ <%= link_to d.name, device_path(d) %>
33
+ <% if d.side.nil? %>
34
+ *
35
+ <% end %>
36
+ <% if d.size.nil? %>
37
+ **
38
+ <% end %>
39
+ </br>
40
+ <% end %>
41
+ </td>
42
+ </tr>
43
+ <% end %>
26
44
  </tbody>
27
45
  </table>
28
46
  </div>
@@ -0,0 +1,46 @@
1
+ <div class="panel panel-default">
2
+ <div class="panel-heading text-center"><h4 class="nonmargintop nonmarginbottom"><strong><%= _("#{rack.name}") %></strong></h4></div>
3
+ <table class="<%= table_css_classes 'table-hover panel-body nonmarginbottom' %>">
4
+ <tbody>
5
+ <% rack.positioned_devices.each do |positions, devices| %>
6
+ <tr>
7
+ <td class="col-md-1"><%= raw(positions.map{|p| "#{p}U"}.join("<br />")) %></td>
8
+ <td class="col-md-4">
9
+ <% unless devices.empty? %>
10
+ <% devices.each do |d| %>
11
+ <div class="<%= "text-" + ((d.side == "full" or d.side.nil?) ? "center" : "right") + " pull-" + ((d.side == "full" or d.side.nil?) ? "center" : d.side) %>">
12
+ <span class="<%= "label " + d.device_role.color.downcase.gsub(" ","") %>">&nbsp;</span>
13
+ <%= link_to d.name, device_path(d) %>
14
+ <% if d.side.nil? %>
15
+ *
16
+ <% end %>
17
+ <% if d.size.nil? %>
18
+ **
19
+ <% end %>
20
+ </div>
21
+ <% end %>
22
+ <% end %>
23
+ </td>
24
+ </tr>
25
+ <% end %>
26
+ <% unless rack.unpositioned_devices.empty? %>
27
+ <tr>
28
+ <td class="col-md-1">Unpositioned Devices</td>
29
+ <td class="col-md-4">
30
+ <% rack.unpositioned_devices.each do |d| %>
31
+ <div class="<%= "label " + d.device_role.color.downcase.gsub(" ","") %>" style="border-radius:40px;border:0px;">&nbsp;&nbsp;</div>
32
+ <%= link_to d.name, device_path(d) %>
33
+ <% if d.side.nil? %>
34
+ *
35
+ <% end %>
36
+ <% if d.size.nil? %>
37
+ **
38
+ <% end %>
39
+ </br>
40
+ <% end %>
41
+ </td>
42
+ </tr>
43
+ <% end %>
44
+ </tbody>
45
+ </table>
46
+ </div>
@@ -2,7 +2,7 @@
2
2
  <div class="panel-heading"><strong><%= _("Unpositioned Devices") %></strong></div>
3
3
  <table class="table table-hover panel-body nonmarginbottom">
4
4
  <tbody>
5
- <% @rack.unpositioned_devices.each do |d| %>
5
+ <% rack.unpositioned_devices.each do |d| %>
6
6
  <tr>
7
7
  <td class="col-md-4">
8
8
  <div class="<%= "text-" + ((d.side == "full" or d.side.nil?) ? "center" : "right") + " pull-" + ((d.side == "full" or d.side.nil?) ? "center" : d.side) %>">
@@ -0,0 +1,17 @@
1
+ <% stylesheet 'foreman_datacenter/datacenter' %>
2
+ <% stylesheet 'foreman_datacenter/device_roles' %>
3
+
4
+ <% title h(@site.name) %>
5
+
6
+ <% @racks.in_groups_of(3).each do |g| %>
7
+ <div class="row">
8
+ <% g.compact.each do |rack| %>
9
+ <div class="col-md-4">
10
+ <!-- Devices -->
11
+ <%= render "foreman_datacenter/racks/device_position", rack: rack %>
12
+ </div>
13
+ <% end %>
14
+ </div>
15
+ <% end %>
16
+ <div><h6 class="text-right"><%= _("* side is not defined") %></h6></div>
17
+ <div><h6 class="text-right"><%= _("** size is not defined") %></h6></div>
@@ -96,7 +96,10 @@
96
96
  </tr>
97
97
  <tr>
98
98
  <td><%= _("Racks") %></td>
99
- <td><%= link_to @site.racks_count, racks_path(search: "site=#{@site.name}") %></td>
99
+ <td>
100
+ <%= link_to @site.racks_count, racks_path(search: "site=#{@site.name}") %>
101
+ <%= link_to 'Overview', racks_site_path(@site), class: "btn btn-primary btn-xs pull-right" unless @site.racks.empty? %>
102
+ </td>
100
103
  </tr>
101
104
  <tr>
102
105
  <td><%= _("Devices") %></td>
@@ -86,6 +86,7 @@ Foreman::Application.routes.draw do
86
86
  resources :sites do
87
87
  member do
88
88
  get :move
89
+ get :racks
89
90
  end
90
91
  collection do
91
92
  get 'auto_complete_search'
@@ -1,4 +1,4 @@
1
- class AddLocationIdAndOrganizationIdColumnsToDevices < ActiveRecord::Migration[4.2]
1
+ class AddLocationIdAndOrganizationIdColumnsToDevices < ActiveRecord::Migration
2
2
  def change
3
3
  add_column :devices, :organization_id, :integer
4
4
  add_column :devices, :location_id, :integer
@@ -28,7 +28,7 @@ module ForemanDatacenter
28
28
  requires_foreman '>= 1.12'
29
29
 
30
30
  security_block :datacenter do
31
- # Hosts
31
+ # Hosts
32
32
  permission :import_to_device, {
33
33
  :'hosts' => [:import_to_device]},
34
34
  :resource_type => "ForemanDatacenter::HostExtensions"
@@ -315,7 +315,7 @@ module ForemanDatacenter
315
315
  :resource_type => "ForemanDatacenter::Rack"
316
316
  # Sites
317
317
  permission :view_sites, {
318
- :'foreman_datacenter/sites' => [:show, :index]},
318
+ :'foreman_datacenter/sites' => [:show, :index, :racks]},
319
319
  :resource_type => "ForemanDatacenter::Site"
320
320
  permission :create_sites, {
321
321
  :'foreman_datacenter/sites' => [:new, :create]},
@@ -1,3 +1,3 @@
1
1
  module ForemanDatacenter
2
- VERSION = '1.20.0'.freeze
2
+ VERSION = '1.20.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_datacenter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.20.0
4
+ version: 1.20.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Ivanov
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-02-09 00:00:00.000000000 Z
12
+ date: 2019-05-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: prawn
@@ -140,6 +140,7 @@ files:
140
140
  - app/controllers/concerns/foreman_datacenter/controller/parameters/rack.rb
141
141
  - app/controllers/concerns/foreman_datacenter/controller/parameters/rack_group.rb
142
142
  - app/controllers/concerns/foreman_datacenter/controller/parameters/site.rb
143
+ - app/controllers/concerns/foreman_datacenter/controller/racks.rb
143
144
  - app/controllers/concerns/foreman_datacenter/hosts_controller_extensions.rb
144
145
  - app/controllers/foreman_datacenter/application_controller.rb
145
146
  - app/controllers/foreman_datacenter/comments_controller.rb
@@ -461,6 +462,7 @@ files:
461
462
  - app/views/foreman_datacenter/rack_groups/welcome.html.erb
462
463
  - app/views/foreman_datacenter/racks/_device_position.html.erb
463
464
  - app/views/foreman_datacenter/racks/_device_position.html.erb.back
465
+ - app/views/foreman_datacenter/racks/_dp.html.erb
464
466
  - app/views/foreman_datacenter/racks/_form.html.erb
465
467
  - app/views/foreman_datacenter/racks/_rack_groups.html.erb
466
468
  - app/views/foreman_datacenter/racks/_unpositioned_devices.html.erb
@@ -478,6 +480,7 @@ files:
478
480
  - app/views/foreman_datacenter/sites/index.html.erb
479
481
  - app/views/foreman_datacenter/sites/move.html.erb
480
482
  - app/views/foreman_datacenter/sites/new.html.erb
483
+ - app/views/foreman_datacenter/sites/racks.html.erb
481
484
  - app/views/foreman_datacenter/sites/show.html.erb
482
485
  - app/views/foreman_datacenter/sites/welcome.html.erb
483
486
  - app/views/hosts/import_to_device.html.erb