foreman_datacenter 0.0.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 (210) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +619 -0
  3. data/README.md +38 -0
  4. data/Rakefile +47 -0
  5. data/app/assets/javascripts/foreman_datacenter/ajax.js +18 -0
  6. data/app/assets/javascripts/foreman_datacenter/console_ports.js +2 -0
  7. data/app/assets/javascripts/foreman_datacenter/device_interface_connections.js +16 -0
  8. data/app/assets/javascripts/foreman_datacenter/devices.js +33 -0
  9. data/app/assets/javascripts/foreman_datacenter/racks.js +16 -0
  10. data/app/assets/javascripts/foreman_datacenter/shared.js +19 -0
  11. data/app/assets/stylesheets/foreman_datacenter/device_interface_connections.css +3 -0
  12. data/app/controllers/foreman_datacenter/console_port_templates_controller.rb +41 -0
  13. data/app/controllers/foreman_datacenter/console_ports_controller.rb +94 -0
  14. data/app/controllers/foreman_datacenter/console_server_port_templates_controller.rb +41 -0
  15. data/app/controllers/foreman_datacenter/console_server_ports_controller.rb +78 -0
  16. data/app/controllers/foreman_datacenter/device_bay_templates_controller.rb +41 -0
  17. data/app/controllers/foreman_datacenter/device_bays_controller.rb +74 -0
  18. data/app/controllers/foreman_datacenter/device_interface_connections_controller.rb +65 -0
  19. data/app/controllers/foreman_datacenter/device_interfaces_controller.rb +65 -0
  20. data/app/controllers/foreman_datacenter/device_modules_controller.rb +53 -0
  21. data/app/controllers/foreman_datacenter/device_roles_controller.rb +55 -0
  22. data/app/controllers/foreman_datacenter/device_types_controller.rb +60 -0
  23. data/app/controllers/foreman_datacenter/devices_controller.rb +82 -0
  24. data/app/controllers/foreman_datacenter/interface_templates_controller.rb +52 -0
  25. data/app/controllers/foreman_datacenter/manufacturers_controller.rb +55 -0
  26. data/app/controllers/foreman_datacenter/platforms_controller.rb +55 -0
  27. data/app/controllers/foreman_datacenter/power_outlet_templates_controller.rb +41 -0
  28. data/app/controllers/foreman_datacenter/power_outlets_controller.rb +77 -0
  29. data/app/controllers/foreman_datacenter/power_port_templates_controller.rb +41 -0
  30. data/app/controllers/foreman_datacenter/power_ports_controller.rb +94 -0
  31. data/app/controllers/foreman_datacenter/rack_groups_controller.rb +55 -0
  32. data/app/controllers/foreman_datacenter/racks_controller.rb +63 -0
  33. data/app/controllers/foreman_datacenter/sites_controller.rb +56 -0
  34. data/app/helpers/foreman_datacenter/console_ports_helper.rb +11 -0
  35. data/app/helpers/foreman_datacenter/console_server_ports_helper.rb +11 -0
  36. data/app/helpers/foreman_datacenter/device_bays_helper.rb +12 -0
  37. data/app/helpers/foreman_datacenter/device_interface_connections_helper.rb +10 -0
  38. data/app/helpers/foreman_datacenter/device_interfaces_helper.rb +4 -0
  39. data/app/helpers/foreman_datacenter/device_roles_helper.rb +7 -0
  40. data/app/helpers/foreman_datacenter/device_types_helper.rb +7 -0
  41. data/app/helpers/foreman_datacenter/devices_helper.rb +54 -0
  42. data/app/helpers/foreman_datacenter/interface_templates_helper.rb +7 -0
  43. data/app/helpers/foreman_datacenter/platforms_helper.rb +7 -0
  44. data/app/helpers/foreman_datacenter/power_outlets_helper.rb +11 -0
  45. data/app/helpers/foreman_datacenter/power_ports_helper.rb +11 -0
  46. data/app/helpers/foreman_datacenter/racks_helper.rb +8 -0
  47. data/app/helpers/foreman_datacenter/shared_helper.rb +29 -0
  48. data/app/models/foreman_datacenter/console_port.rb +19 -0
  49. data/app/models/foreman_datacenter/console_port_template.rb +12 -0
  50. data/app/models/foreman_datacenter/console_server_port.rb +9 -0
  51. data/app/models/foreman_datacenter/console_server_port_template.rb +12 -0
  52. data/app/models/foreman_datacenter/device.rb +136 -0
  53. data/app/models/foreman_datacenter/device_bay.rb +15 -0
  54. data/app/models/foreman_datacenter/device_bay_template.rb +12 -0
  55. data/app/models/foreman_datacenter/device_interface.rb +36 -0
  56. data/app/models/foreman_datacenter/device_interface_connection.rb +43 -0
  57. data/app/models/foreman_datacenter/device_module.rb +10 -0
  58. data/app/models/foreman_datacenter/device_role.rb +14 -0
  59. data/app/models/foreman_datacenter/device_type.rb +43 -0
  60. data/app/models/foreman_datacenter/interface_template.rb +17 -0
  61. data/app/models/foreman_datacenter/manufacturer.rb +7 -0
  62. data/app/models/foreman_datacenter/platform.rb +16 -0
  63. data/app/models/foreman_datacenter/power_outlet.rb +9 -0
  64. data/app/models/foreman_datacenter/power_outlet_template.rb +12 -0
  65. data/app/models/foreman_datacenter/power_port.rb +19 -0
  66. data/app/models/foreman_datacenter/power_port_template.rb +12 -0
  67. data/app/models/foreman_datacenter/rack.rb +13 -0
  68. data/app/models/foreman_datacenter/rack_group.rb +9 -0
  69. data/app/models/foreman_datacenter/site.rb +22 -0
  70. data/app/views/foreman_datacenter/console_port_templates/_form.html.erb +15 -0
  71. data/app/views/foreman_datacenter/console_port_templates/new.html.erb +3 -0
  72. data/app/views/foreman_datacenter/console_ports/_for_device.html.erb +5 -0
  73. data/app/views/foreman_datacenter/console_ports/_form.html.erb +15 -0
  74. data/app/views/foreman_datacenter/console_ports/edit.html.erb +3 -0
  75. data/app/views/foreman_datacenter/console_ports/index.html.erb +29 -0
  76. data/app/views/foreman_datacenter/console_ports/new.html.erb +3 -0
  77. data/app/views/foreman_datacenter/console_ports/new_connection.html.erb +22 -0
  78. data/app/views/foreman_datacenter/console_server_port_templates/_form.html.erb +15 -0
  79. data/app/views/foreman_datacenter/console_server_port_templates/new.html.erb +3 -0
  80. data/app/views/foreman_datacenter/console_server_ports/_for_device.html.erb +5 -0
  81. data/app/views/foreman_datacenter/console_server_ports/_form.html.erb +15 -0
  82. data/app/views/foreman_datacenter/console_server_ports/edit.html.erb +3 -0
  83. data/app/views/foreman_datacenter/console_server_ports/new.html.erb +3 -0
  84. data/app/views/foreman_datacenter/console_server_ports/new_connection.html.erb +22 -0
  85. data/app/views/foreman_datacenter/device_bay_templates/_form.html.erb +15 -0
  86. data/app/views/foreman_datacenter/device_bay_templates/new.html.erb +3 -0
  87. data/app/views/foreman_datacenter/device_bays/_form.html.erb +15 -0
  88. data/app/views/foreman_datacenter/device_bays/edit.html.erb +3 -0
  89. data/app/views/foreman_datacenter/device_bays/new.html.erb +3 -0
  90. data/app/views/foreman_datacenter/device_bays/populate_new.html.erb +21 -0
  91. data/app/views/foreman_datacenter/device_interface_connections/_form.html.erb +72 -0
  92. data/app/views/foreman_datacenter/device_interface_connections/_interfaces.html.erb +5 -0
  93. data/app/views/foreman_datacenter/device_interface_connections/index.html.erb +32 -0
  94. data/app/views/foreman_datacenter/device_interface_connections/new.html.erb +7 -0
  95. data/app/views/foreman_datacenter/device_interfaces/_form.html.erb +22 -0
  96. data/app/views/foreman_datacenter/device_interfaces/edit.html.erb +3 -0
  97. data/app/views/foreman_datacenter/device_interfaces/new.html.erb +3 -0
  98. data/app/views/foreman_datacenter/device_modules/_form.html.erb +17 -0
  99. data/app/views/foreman_datacenter/device_modules/edit.html.erb +3 -0
  100. data/app/views/foreman_datacenter/device_modules/new.html.erb +3 -0
  101. data/app/views/foreman_datacenter/device_roles/_form.html.erb +11 -0
  102. data/app/views/foreman_datacenter/device_roles/edit.html.erb +3 -0
  103. data/app/views/foreman_datacenter/device_roles/index.html.erb +36 -0
  104. data/app/views/foreman_datacenter/device_roles/new.html.erb +3 -0
  105. data/app/views/foreman_datacenter/device_roles/show.html.erb +56 -0
  106. data/app/views/foreman_datacenter/device_types/_form.html.erb +26 -0
  107. data/app/views/foreman_datacenter/device_types/edit.html.erb +3 -0
  108. data/app/views/foreman_datacenter/device_types/index.html.erb +36 -0
  109. data/app/views/foreman_datacenter/device_types/new.html.erb +3 -0
  110. data/app/views/foreman_datacenter/device_types/show.html.erb +357 -0
  111. data/app/views/foreman_datacenter/devices/_console_port.html.erb +60 -0
  112. data/app/views/foreman_datacenter/devices/_console_server_port.html.erb +64 -0
  113. data/app/views/foreman_datacenter/devices/_device_bay.html.erb +46 -0
  114. data/app/views/foreman_datacenter/devices/_device_module.html.erb +16 -0
  115. data/app/views/foreman_datacenter/devices/_device_types.html.erb +5 -0
  116. data/app/views/foreman_datacenter/devices/_for_rack.html.erb +9 -0
  117. data/app/views/foreman_datacenter/devices/_form.html.erb +80 -0
  118. data/app/views/foreman_datacenter/devices/_interface.html.erb +67 -0
  119. data/app/views/foreman_datacenter/devices/_management_interface.html.erb +67 -0
  120. data/app/views/foreman_datacenter/devices/_power_outlet.html.erb +60 -0
  121. data/app/views/foreman_datacenter/devices/_power_port.html.erb +60 -0
  122. data/app/views/foreman_datacenter/devices/_racks.html.erb +5 -0
  123. data/app/views/foreman_datacenter/devices/edit.html.erb +5 -0
  124. data/app/views/foreman_datacenter/devices/index.html.erb +51 -0
  125. data/app/views/foreman_datacenter/devices/inventory.html.erb +66 -0
  126. data/app/views/foreman_datacenter/devices/new.html.erb +5 -0
  127. data/app/views/foreman_datacenter/devices/show.html.erb +303 -0
  128. data/app/views/foreman_datacenter/hosts/hosts/new_action.html.erb +1 -0
  129. data/app/views/foreman_datacenter/hosts/new_action.html.erb +1 -0
  130. data/app/views/foreman_datacenter/interface_templates/_form.html.erb +19 -0
  131. data/app/views/foreman_datacenter/interface_templates/new.html.erb +3 -0
  132. data/app/views/foreman_datacenter/layouts/layouts/new_layout.html.erb +0 -0
  133. data/app/views/foreman_datacenter/layouts/new_layout.html.erb +0 -0
  134. data/app/views/foreman_datacenter/manufacturers/_form.html.erb +7 -0
  135. data/app/views/foreman_datacenter/manufacturers/edit.html.erb +3 -0
  136. data/app/views/foreman_datacenter/manufacturers/index.html.erb +34 -0
  137. data/app/views/foreman_datacenter/manufacturers/new.html.erb +3 -0
  138. data/app/views/foreman_datacenter/manufacturers/show.html.erb +52 -0
  139. data/app/views/foreman_datacenter/platforms/_form.html.erb +11 -0
  140. data/app/views/foreman_datacenter/platforms/edit.html.erb +3 -0
  141. data/app/views/foreman_datacenter/platforms/index.html.erb +34 -0
  142. data/app/views/foreman_datacenter/platforms/new.html.erb +3 -0
  143. data/app/views/foreman_datacenter/platforms/show.html.erb +56 -0
  144. data/app/views/foreman_datacenter/power_outlet_templates/_form.html.erb +15 -0
  145. data/app/views/foreman_datacenter/power_outlet_templates/new.html.erb +3 -0
  146. data/app/views/foreman_datacenter/power_outlets/_for_device.html.erb +5 -0
  147. data/app/views/foreman_datacenter/power_outlets/_form.html.erb +15 -0
  148. data/app/views/foreman_datacenter/power_outlets/edit.html.erb +3 -0
  149. data/app/views/foreman_datacenter/power_outlets/new.html.erb +3 -0
  150. data/app/views/foreman_datacenter/power_outlets/new_connection.html.erb +22 -0
  151. data/app/views/foreman_datacenter/power_port_templates/_form.html.erb +15 -0
  152. data/app/views/foreman_datacenter/power_port_templates/new.html.erb +3 -0
  153. data/app/views/foreman_datacenter/power_ports/_for_device.html.erb +5 -0
  154. data/app/views/foreman_datacenter/power_ports/_form.html.erb +15 -0
  155. data/app/views/foreman_datacenter/power_ports/edit.html.erb +3 -0
  156. data/app/views/foreman_datacenter/power_ports/index.html.erb +29 -0
  157. data/app/views/foreman_datacenter/power_ports/new.html.erb +3 -0
  158. data/app/views/foreman_datacenter/power_ports/new_connection.html.erb +22 -0
  159. data/app/views/foreman_datacenter/rack_groups/_form.html.erb +11 -0
  160. data/app/views/foreman_datacenter/rack_groups/edit.html.erb +3 -0
  161. data/app/views/foreman_datacenter/rack_groups/index.html.erb +36 -0
  162. data/app/views/foreman_datacenter/rack_groups/new.html.erb +3 -0
  163. data/app/views/foreman_datacenter/rack_groups/show.html.erb +56 -0
  164. data/app/views/foreman_datacenter/racks/_form.html.erb +25 -0
  165. data/app/views/foreman_datacenter/racks/_rack_groups.html.erb +8 -0
  166. data/app/views/foreman_datacenter/racks/edit.html.erb +5 -0
  167. data/app/views/foreman_datacenter/racks/index.html.erb +50 -0
  168. data/app/views/foreman_datacenter/racks/new.html.erb +5 -0
  169. data/app/views/foreman_datacenter/racks/show.html.erb +67 -0
  170. data/app/views/foreman_datacenter/shared/_rack_device_select.html.erb +22 -0
  171. data/app/views/foreman_datacenter/sites/_form.html.erb +12 -0
  172. data/app/views/foreman_datacenter/sites/edit.html.erb +3 -0
  173. data/app/views/foreman_datacenter/sites/index.html.erb +40 -0
  174. data/app/views/foreman_datacenter/sites/new.html.erb +3 -0
  175. data/app/views/foreman_datacenter/sites/show.html.erb +98 -0
  176. data/config/routes.rb +92 -0
  177. data/db/migrate/20160727161914_create_sites.rb +16 -0
  178. data/db/migrate/20160728123353_create_rack_groups.rb +12 -0
  179. data/db/migrate/20160728143149_create_racks.rb +16 -0
  180. data/db/migrate/20160728161636_create_platforms.rb +12 -0
  181. data/db/migrate/20160728162635_create_device_roles.rb +12 -0
  182. data/db/migrate/20160728163815_create_manufacturers.rb +12 -0
  183. data/db/migrate/20160728164858_create_device_types.rb +18 -0
  184. data/db/migrate/20160728171422_create_devices.rb +31 -0
  185. data/db/migrate/20160728194401_create_device_interfaces.rb +17 -0
  186. data/db/migrate/20160728195242_create_device_interface_connections.rb +18 -0
  187. data/db/migrate/20160804104103_create_interface_templates.rb +15 -0
  188. data/db/migrate/20160804142618_create_console_port_templates.rb +13 -0
  189. data/db/migrate/20160804164301_create_power_port_templates.rb +13 -0
  190. data/db/migrate/20160805080626_create_console_server_port_templates.rb +13 -0
  191. data/db/migrate/20160805084726_create_power_outlet_templates.rb +13 -0
  192. data/db/migrate/20160805100411_create_device_bay_templates.rb +13 -0
  193. data/db/migrate/20160809091611_create_device_bays.rb +16 -0
  194. data/db/migrate/20160809103211_create_power_outlets.rb +13 -0
  195. data/db/migrate/20160809104325_create_power_ports.rb +17 -0
  196. data/db/migrate/20160809112815_create_console_server_ports.rb +13 -0
  197. data/db/migrate/20160809113846_create_console_ports.rb +17 -0
  198. data/db/migrate/20160816224805_create_device_modules.rb +15 -0
  199. data/lib/foreman_datacenter.rb +4 -0
  200. data/lib/foreman_datacenter/engine.rb +70 -0
  201. data/lib/foreman_datacenter/version.rb +3 -0
  202. data/lib/tasks/foreman_datacenter_tasks.rake +45 -0
  203. data/locale/Makefile +60 -0
  204. data/locale/en/foreman_datacenter.po +19 -0
  205. data/locale/foreman_datacenter.pot +19 -0
  206. data/locale/gemspec.rb +2 -0
  207. data/test/factories/foreman_datacenter_factories.rb +5 -0
  208. data/test/test_plugin_helper.rb +6 -0
  209. data/test/unit/foreman_datacenter_test.rb +11 -0
  210. metadata +310 -0
@@ -0,0 +1,5 @@
1
+ <%= form_for :device do |f| %>
2
+ <div id="sites">
3
+ <%= racks_for_device_form f, @site_id %>
4
+ </div>
5
+ <% end %>
@@ -0,0 +1,5 @@
1
+ <% javascript 'foreman_datacenter/devices' %>
2
+
3
+ <% title 'Editing a device' %>
4
+
5
+ <%= render 'form' %>
@@ -0,0 +1,51 @@
1
+ <% javascript 'foreman_datacenter/devices' %>
2
+
3
+ <% title _('Devices') %>
4
+ <% title_actions display_link_if_authorized(_('New device'), hash_for_new_device_path, class: 'btn btn-success'), help_path %>
5
+
6
+ <table class="table table-bordered table-striped table-two-pane">
7
+ <thead>
8
+ <tr>
9
+ <th>Name</th>
10
+ <th>Status</th>
11
+ <th>Site</th>
12
+ <th>Rack</th>
13
+ <th>Role</th>
14
+ <th>Type</th>
15
+ <th>IP Address</th>
16
+ <th>Action</th>
17
+ </tr>
18
+ </thead>
19
+ <tbody>
20
+ <% @devices.each do |device| %>
21
+ <tr>
22
+ <td><%= link_to device.name, device_path(device) %></td>
23
+ <td>
24
+ <% if device.active? %>
25
+ <span class="glyphicon glyphicon-ok-sign text-success" title="Active"></span>
26
+ <% elsif device.offline? %>
27
+ <span class="glyphicon glyphicon-minus-sign text-danger" title="Offline"></span>
28
+ <% end %>
29
+ </td>
30
+ <td><%= h device.site.name %></td>
31
+ <td><%= h device.rack.name %></td>
32
+ <td><%= h device.device_role.name %></td>
33
+ <td><%= h device.device_type.model %></td>
34
+ <td><%= h device.ip_address %></td>
35
+ <td>
36
+ <%= action_buttons(
37
+ display_link_if_authorized(
38
+ _("Edit"),
39
+ hash_for_edit_device_path(:id => device).merge(:auth_object => device, :authorizer => authorizer)
40
+ ),
41
+ display_delete_if_authorized(
42
+ hash_for_device_path(:id => device).merge(:auth_object => device, :authorizer => authorizer),
43
+ :data => { :confirm => 'Are you sure?'},
44
+ :action => :destroy
45
+ )
46
+ ) %>
47
+ </td>
48
+ </tr>
49
+ <% end %>
50
+ </tbody>
51
+ </table>
@@ -0,0 +1,66 @@
1
+ <% javascript 'foreman_datacenter/ajax' %>
2
+
3
+ <% title @device.name %>
4
+
5
+ <% title_actions display_link_if_authorized(
6
+ _('Edit'),
7
+ hash_for_edit_device_path(:id => @device).merge(:auth_object => @device, :authorizer => authorizer),
8
+ :class => 'btn btn-warning'
9
+ ),
10
+ display_delete_if_authorized(
11
+ hash_for_device_path(:id => @device).merge(:auth_object => @device, :authorizer => authorizer),
12
+ :data => { :confirm => 'Are you sure?' },
13
+ :action => :destroy,
14
+ :class => 'btn btn-danger'
15
+ ),
16
+ help_path %>
17
+
18
+ <ul class="nav nav-tabs">
19
+ <li><%= link_to 'Info', device_path(@device) %></li>
20
+ <li class="active"><%= link_to 'Inventory', inventory_device_path(@device) %></li>
21
+ </ul>
22
+
23
+ <div class="row">
24
+ <div class="col-md-4">
25
+ <div class="panel panel-default">
26
+ <div class="panel-heading"><strong>Chassis</strong></div>
27
+ <table class="table table-hover panel-body">
28
+ <tbody>
29
+ <tr>
30
+ <td>Model</td>
31
+ <td><%= h @device.device_type.model %></td>
32
+ </tr>
33
+ <tr>
34
+ <td>Serial Number</td>
35
+ <td><%= h @device.serial %></td>
36
+ </tr>
37
+ </tbody>
38
+ </table>
39
+ </div>
40
+ </div>
41
+ <div class="col-md-8">
42
+ <div class="panel panel-default">
43
+ <div class="panel-heading"><strong>Hardware</strong></div>
44
+ <table class="table table-hover table-condensed panel-body">
45
+ <thead>
46
+ <tr>
47
+ <th>Module</th>
48
+ <th>Part Number</th>
49
+ <th>Serial Number</th>
50
+ <th>Action</th>
51
+ </tr>
52
+ </thead>
53
+ <tbody>
54
+ <%= render partial: 'device_module', collection: @device.modules %>
55
+ </tbody>
56
+ </table>
57
+ <div class="panel-footer text-right">
58
+ <%= link_to new_device_device_module_path(@device),
59
+ class: 'btn btn-success btn-xs' do %>
60
+ <span class="glyphicon glyphicon-plus"></span>
61
+ Add a module
62
+ <% end %>
63
+ </div>
64
+ </div>
65
+ </div>
66
+ </div>
@@ -0,0 +1,5 @@
1
+ <% javascript 'foreman_datacenter/devices' %>
2
+
3
+ <% title 'New device' %>
4
+
5
+ <%= render 'form' %>
@@ -0,0 +1,303 @@
1
+ <% javascript 'foreman_datacenter/ajax' %>
2
+
3
+ <% title @device.name %>
4
+
5
+ <% title_actions display_link_if_authorized(
6
+ _('Edit'),
7
+ hash_for_edit_device_path(:id => @device).merge(:auth_object => @device, :authorizer => authorizer),
8
+ :class => 'btn btn-warning'
9
+ ),
10
+ display_delete_if_authorized(
11
+ hash_for_device_path(:id => @device).merge(:auth_object => @device, :authorizer => authorizer),
12
+ :data => { :confirm => 'Are you sure?' },
13
+ :action => :destroy,
14
+ :class => 'btn btn-danger'
15
+ ),
16
+ help_path %>
17
+
18
+ <ul class="nav nav-tabs">
19
+ <li class="active"><%= link_to 'Info', device_path(@device) %></li>
20
+ <li><%= link_to 'Inventory', inventory_device_path(@device) %></li>
21
+ </ul>
22
+
23
+ <div class="row">
24
+ <div class="col-sm-6">
25
+ <!-- Device -->
26
+ <div class="panel panel-default">
27
+ <div class="panel-heading">
28
+ <strong>Device</strong>
29
+ </div>
30
+ <table class="table table-hover panel-body">
31
+ <tbody>
32
+ <tr>
33
+ <td>Site</td>
34
+ <td><%= link_to @device.site.name, site_path(@device.site) %></td>
35
+ </tr>
36
+ <tr>
37
+ <td>Rack</td>
38
+ <td><%= link_to @device.rack.name, rack_path(@device.rack) %></td>
39
+ </tr>
40
+ <tr>
41
+ <td>Position</td>
42
+ <td><%= @device.position %> / <%= @device.face %></td>
43
+ </tr>
44
+ <tr>
45
+ <td>Device Type</td>
46
+ <td><%= link_to @device.device_type.model, device_type_path(@device.device_type) %></td>
47
+ </tr>
48
+ <tr>
49
+ <td>Serial</td>
50
+ <td><%= @device.serial %></td>
51
+ </tr>
52
+ <tr>
53
+ <td>Created</td>
54
+ <td><%= @device.created_at.to_s(:long) %></td>
55
+ </tr>
56
+ <tr>
57
+ <td>Last Updated</td>
58
+ <td><%= @device.updated_at.to_s(:long) %></td>
59
+ </tr>
60
+ </tbody>
61
+ </table>
62
+ </div>
63
+
64
+ <!-- Management -->
65
+ <div class="panel panel-default">
66
+ <div class="panel-heading">
67
+ <strong>Management</strong>
68
+ </div>
69
+ <table class="table table-hover panel-body">
70
+ <tbody>
71
+ <tr>
72
+ <td>Role</td>
73
+ <td>
74
+ <%= link_to @device.device_role.name, device_role_path(@device.device_role) %>
75
+ </td>
76
+ </tr>
77
+ <tr>
78
+ <td>Platform</td>
79
+ <td>
80
+ <% if @device.platform %>
81
+ <%= link_to @device.platform.name, platform_path(@device.platform) %>
82
+ <% else %>
83
+ <span class="text-warning">Not assigned</span>
84
+ <% end %>
85
+ </td>
86
+ </tr>
87
+ <tr>
88
+ <td>Status</td>
89
+ <td>
90
+ <% if @device.active? %>
91
+ <span class="label label-success">Active</span>
92
+ <% elsif @device.offline? %>
93
+ <span class="label label-danger">Offline</span>
94
+ <% end %>
95
+ </td>
96
+ </tr>
97
+ <tr>
98
+ <td>Primary IPv4</td>
99
+ <td>
100
+ <% if @device.primary_ip4.blank? %>
101
+ Not defined
102
+ <% else %>
103
+ <%= @device.primary_ip4 %></td>
104
+ <% end %>
105
+ </tr>
106
+ <tr>
107
+ <td>Primary IPv6</td>
108
+ <td>
109
+ <% if @device.primary_ip6.blank? %>
110
+ Not defined
111
+ <% else %>
112
+ <%= @device.primary_ip6 %></td>
113
+ <% end %>
114
+ </tr>
115
+ </tbody>
116
+ </table>
117
+ </div>
118
+
119
+ <!-- Critical Connections -->
120
+ <div class="panel panel-default">
121
+ <div class="panel-heading">
122
+ <strong>Critical Connections</strong>
123
+ </div>
124
+ <table class="table table-hover panel-body">
125
+ <tbody>
126
+ <% if @device.management_interfaces.empty? %>
127
+ <tr class="alert-warning">
128
+ <td>
129
+ <i class="fa fa-fw fa-warning"></i>
130
+ No management interfaces defined!
131
+ </td>
132
+ <td></td>
133
+ <td></td>
134
+ <td class="text-right">
135
+ <%= link_to new_management_device_device_interfaces_path(@device),
136
+ class: 'btn btn-primary btn-xs',
137
+ title: 'Add interface' do %>
138
+ <span class="glyphicon glyphicon-plus"></span>
139
+ <% end %>
140
+ </td>
141
+ </tr>
142
+ <% else %>
143
+ <%= render partial: 'management_interface',
144
+ collection: @device.management_interfaces %>
145
+ <% end %>
146
+ <% if @device.console_ports.empty? %>
147
+ <tr class="alert-warning">
148
+ <td>
149
+ <i class="fa fa-fw fa-warning"></i>
150
+ No console ports defined!
151
+ </td>
152
+ <td></td>
153
+ <td></td>
154
+ <td class="text-right">
155
+ <%= link_to new_device_console_port_path(@device),
156
+ class: 'btn btn-primary btn-xs',
157
+ title: 'Add console' do %>
158
+ <span class="glyphicon glyphicon-plus"></span>
159
+ <% end %>
160
+ </td>
161
+ </tr>
162
+ <% else %>
163
+ <%= render partial: 'console_port', collection: @device.console_ports %>
164
+ <% end %>
165
+ <% if @device.power_ports.empty? %>
166
+ <tr class="alert-warning">
167
+ <td>
168
+ <i class="fa fa-fw fa-warning"></i>
169
+ No power ports defined!
170
+ </td>
171
+ <td></td>
172
+ <td></td>
173
+ <td class="text-right">
174
+ <%= link_to new_device_power_port_path(@device),
175
+ class: 'btn btn-primary btn-xs',
176
+ title: 'Add power' do %>
177
+ <span class="glyphicon glyphicon-plus"></span>
178
+ <% end %>
179
+ </td>
180
+ </tr>
181
+ <% else %>
182
+ <%= render partial: 'power_port', collection: @device.power_ports %>
183
+ <% end %>
184
+ </tbody>
185
+ </table>
186
+ <div class="panel-footer text-right">
187
+ <%= link_to new_management_device_device_interfaces_path(@device),
188
+ class: 'btn btn-primary btn-xs' do %>
189
+ <span class="glyphicon glyphicon-plus"></span>
190
+ Add interface
191
+ <% end %>
192
+ <%= link_to new_device_console_port_path(@device),
193
+ class: 'btn btn-primary btn-xs' do %>
194
+ <span class="glyphicon glyphicon-plus"></span>
195
+ Add console
196
+ <% end %>
197
+ <%= link_to new_device_power_port_path(@device),
198
+ class: 'btn btn-primary btn-xs' do %>
199
+ <span class="glyphicon glyphicon-plus"></span>
200
+ Add power
201
+ <% end %>
202
+ </div>
203
+ </div>
204
+
205
+ <!-- Comments -->
206
+ <div class="panel panel-default">
207
+ <div class="panel-heading">
208
+ <strong>Comments</strong>
209
+ </div>
210
+ <div class="panel-body"><%= simple_format @device.comments %></div>
211
+ </div>
212
+ </div>
213
+
214
+ <div class="col-sm-6">
215
+ <!-- Device Bays -->
216
+ <% if @device.parent? %>
217
+ <div class="panel panel-default">
218
+ <div class="panel-heading">
219
+ <strong>Device Bays</strong>
220
+ </div>
221
+ <% if @device.device_bays.empty? %>
222
+ <div class="panel-body">None</div>
223
+ <% else %>
224
+ <table class="table table-hover panel-body">
225
+ <tbody>
226
+ <%= render partial: 'device_bay', collection: @device.device_bays %>
227
+ </tbody>
228
+ </table>
229
+ <% end %>
230
+ <div class="panel-footer text-right">
231
+ <%= link_to 'Add a device bay', new_device_device_bay_path(@device),
232
+ class: 'btn btn-primary btn-xs' %>
233
+ </div>
234
+ </div>
235
+ <% end %>
236
+
237
+ <!-- Interfaces -->
238
+ <% if @device.is_network_device %>
239
+ <div class="panel panel-default">
240
+ <div class="panel-heading">
241
+ <strong>Interfaces</strong>
242
+ </div>
243
+ <% if @device.non_management_interfaces.empty? %>
244
+ <div class="panel-body">None</div>
245
+ <% else %>
246
+ <table class="table table-hover panel-body">
247
+ <tbody>
248
+ <%= render partial: 'interface', collection: @device.non_management_interfaces %>
249
+ </tbody>
250
+ </table>
251
+ <% end %>
252
+ <div class="panel-footer text-right">
253
+ <%= link_to 'Add an interface', new_device_device_interface_path(@device),
254
+ class: 'btn btn-primary btn-xs' %>
255
+ </div>
256
+ </div>
257
+ <% end %>
258
+
259
+ <!-- Console Server Ports -->
260
+ <% if @device.is_console_server %>
261
+ <div class="panel panel-default">
262
+ <div class="panel-heading">
263
+ <strong>Console Server Ports</strong>
264
+ </div>
265
+ <% if @device.console_server_ports.empty? %>
266
+ <div class="panel-body">None</div>
267
+ <% else %>
268
+ <table class="table table-hover panel-body">
269
+ <tbody>
270
+ <%= render partial: 'console_server_port', collection: @device.console_server_ports %>
271
+ </tbody>
272
+ </table>
273
+ <% end %>
274
+ <div class="panel-footer text-right">
275
+ <%= link_to 'Add a console server port', new_device_console_server_port_path(@device),
276
+ class: 'btn btn-primary btn-xs' %>
277
+ </div>
278
+ </div>
279
+ <% end %>
280
+
281
+ <!-- Power Outlets -->
282
+ <% if @device.is_pdu %>
283
+ <div class="panel panel-default">
284
+ <div class="panel-heading">
285
+ <strong>Power Outlets</strong>
286
+ </div>
287
+ <% if @device.power_outlets.empty? %>
288
+ <div class="panel-body">None</div>
289
+ <% else %>
290
+ <table class="table table-hover panel-body">
291
+ <tbody>
292
+ <%= render partial: 'power_outlet', collection: @device.power_outlets %>
293
+ </tbody>
294
+ </table>
295
+ <% end %>
296
+ <div class="panel-footer text-right">
297
+ <%= link_to 'Add a power outlet', new_device_power_outlet_path(@device),
298
+ class: 'btn btn-primary btn-xs' %>
299
+ </div>
300
+ </div>
301
+ <% end %>
302
+ </div>
303
+ </div>
@@ -0,0 +1 @@
1
+ Welcome to <b>ForemanDatacenter</b>
@@ -0,0 +1 @@
1
+ Welcome to <b>ForemanDatacenter</b>