foreman_datacenter 1.20.0 → 1.20.1

Sign up to get free protection for your applications and to get access to all the features.
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