foreman_datacenter 0.1.54 → 0.1.55

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 (404) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/foreman_datacenter/modal.js +75 -0
  3. data/app/assets/javascripts/foreman_datacenter/modal_bck.js +21 -0
  4. data/app/assets/stylesheets/foreman_datacenter/datacenter.css +3 -2
  5. data/app/assets/stylesheets/foreman_datacenter/device_roles.css +0 -1
  6. data/app/assets/stylesheets/foreman_datacenter/devices.css +2 -0
  7. data/app/assets/stylesheets/foreman_datacenter/modal.css +109 -0
  8. data/app/assets/stylesheets/foreman_datacenter/title_filter.css +3 -0
  9. data/app/controllers/api/v2/foreman_datacenter/base_controller.rb +77 -0
  10. data/app/controllers/api/v2/foreman_datacenter/console_port_templates_controller.rb +48 -0
  11. data/app/controllers/api/v2/foreman_datacenter/console_ports_controller.rb +95 -0
  12. data/app/controllers/api/v2/foreman_datacenter/console_server_port_templates_controller.rb +48 -0
  13. data/app/controllers/api/v2/foreman_datacenter/console_server_ports_controller.rb +77 -0
  14. data/app/controllers/api/v2/foreman_datacenter/device_bay_templates_controller.rb +49 -0
  15. data/app/controllers/api/v2/foreman_datacenter/device_bays_controller.rb +75 -0
  16. data/app/controllers/api/v2/foreman_datacenter/device_interface_connections_controller.rb +71 -0
  17. data/app/controllers/api/v2/foreman_datacenter/device_interfaces_controller.rb +62 -0
  18. data/app/controllers/api/v2/foreman_datacenter/device_modules_controller.rb +58 -0
  19. data/app/controllers/api/v2/foreman_datacenter/device_roles_controller.rb +58 -0
  20. data/app/controllers/api/v2/foreman_datacenter/device_types_controller.rb +67 -0
  21. data/app/controllers/api/v2/foreman_datacenter/devices_controller.rb +87 -0
  22. data/app/controllers/api/v2/foreman_datacenter/devices_controller.rb~ +87 -0
  23. data/app/controllers/api/v2/foreman_datacenter/interface_templates_controller.rb +50 -0
  24. data/app/controllers/api/v2/foreman_datacenter/management_devices_controller.rb +58 -0
  25. data/app/controllers/api/v2/foreman_datacenter/manufacturers_controller.rb +57 -0
  26. data/app/controllers/api/v2/foreman_datacenter/platforms_controller.rb +58 -0
  27. data/app/controllers/api/v2/foreman_datacenter/power_outlet_templates_controller.rb +49 -0
  28. data/app/controllers/api/v2/foreman_datacenter/power_outlets_controller.rb +77 -0
  29. data/app/controllers/api/v2/foreman_datacenter/power_port_templates_controller.rb +49 -0
  30. data/app/controllers/api/v2/foreman_datacenter/power_ports_controller.rb +94 -0
  31. data/app/controllers/api/v2/foreman_datacenter/rack_groups_controller.rb +64 -0
  32. data/app/controllers/api/v2/foreman_datacenter/racks_controller.rb +62 -0
  33. data/app/controllers/api/v2/foreman_datacenter/sites_controller.rb +65 -0
  34. data/app/controllers/concerns/foreman_datacenter/controller/parameters/comment.rb +16 -0
  35. data/app/controllers/concerns/foreman_datacenter/controller/parameters/console_port.rb +15 -0
  36. data/app/controllers/concerns/foreman_datacenter/controller/parameters/console_port_template.rb +15 -0
  37. data/app/controllers/concerns/foreman_datacenter/controller/parameters/console_server_port.rb +15 -0
  38. data/app/controllers/concerns/foreman_datacenter/controller/parameters/console_server_port_template.rb +15 -0
  39. data/app/controllers/concerns/foreman_datacenter/controller/parameters/device.rb +18 -0
  40. data/app/controllers/concerns/foreman_datacenter/controller/parameters/device_bay.rb +15 -0
  41. data/app/controllers/concerns/foreman_datacenter/controller/parameters/device_bay_template.rb +15 -0
  42. data/app/controllers/concerns/foreman_datacenter/controller/parameters/device_interface.rb +17 -0
  43. data/app/controllers/concerns/foreman_datacenter/controller/parameters/device_interface_connection.rb +15 -0
  44. data/app/controllers/concerns/foreman_datacenter/controller/parameters/device_module.rb +15 -0
  45. data/app/controllers/concerns/foreman_datacenter/controller/parameters/device_role.rb +15 -0
  46. data/app/controllers/concerns/foreman_datacenter/controller/parameters/device_type.rb +17 -0
  47. data/app/controllers/concerns/foreman_datacenter/controller/parameters/interface_template.rb +15 -0
  48. data/app/controllers/concerns/foreman_datacenter/controller/parameters/management_device.rb +15 -0
  49. data/app/controllers/concerns/foreman_datacenter/controller/parameters/manufacturer.rb +15 -0
  50. data/app/controllers/concerns/foreman_datacenter/controller/parameters/platform.rb +15 -0
  51. data/app/controllers/concerns/foreman_datacenter/controller/parameters/power_outlet.rb +15 -0
  52. data/app/controllers/concerns/foreman_datacenter/controller/parameters/power_outlet_template.rb +15 -0
  53. data/app/controllers/concerns/foreman_datacenter/controller/parameters/power_port.rb +15 -0
  54. data/app/controllers/concerns/foreman_datacenter/controller/parameters/power_port_template.rb +15 -0
  55. data/app/controllers/concerns/foreman_datacenter/controller/parameters/rack.rb +16 -0
  56. data/app/controllers/concerns/foreman_datacenter/controller/parameters/rack_group.rb +15 -0
  57. data/app/controllers/concerns/foreman_datacenter/controller/parameters/site.rb +16 -0
  58. data/app/controllers/foreman_datacenter/application_controller.rb +99 -0
  59. data/app/controllers/foreman_datacenter/comments_controller.rb +38 -53
  60. data/app/controllers/foreman_datacenter/console_port_templates_controller.rb +9 -19
  61. data/app/controllers/foreman_datacenter/console_ports_controller.rb +14 -23
  62. data/app/controllers/foreman_datacenter/console_server_port_templates_controller.rb +9 -19
  63. data/app/controllers/foreman_datacenter/console_server_ports_controller.rb +11 -19
  64. data/app/controllers/foreman_datacenter/device_bay_templates_controller.rb +9 -19
  65. data/app/controllers/foreman_datacenter/device_bays_controller.rb +8 -15
  66. data/app/controllers/foreman_datacenter/device_interface_connections_controller.rb +10 -19
  67. data/app/controllers/foreman_datacenter/device_interfaces_controller.rb +8 -17
  68. data/app/controllers/foreman_datacenter/device_modules_controller.rb +6 -14
  69. data/app/controllers/foreman_datacenter/device_roles_controller.rb +15 -16
  70. data/app/controllers/foreman_datacenter/device_types_controller.rb +17 -21
  71. data/app/controllers/foreman_datacenter/devices_controller.rb +35 -45
  72. data/app/controllers/foreman_datacenter/interface_templates_controller.rb +6 -17
  73. data/app/controllers/foreman_datacenter/management_devices_controller.rb +5 -14
  74. data/app/controllers/foreman_datacenter/manufacturers_controller.rb +14 -15
  75. data/app/controllers/foreman_datacenter/platforms_controller.rb +12 -14
  76. data/app/controllers/foreman_datacenter/power_outlet_templates_controller.rb +7 -17
  77. data/app/controllers/foreman_datacenter/power_outlets_controller.rb +7 -14
  78. data/app/controllers/foreman_datacenter/power_port_templates_controller.rb +9 -19
  79. data/app/controllers/foreman_datacenter/power_ports_controller.rb +8 -16
  80. data/app/controllers/foreman_datacenter/rack_groups_controller.rb +29 -12
  81. data/app/controllers/foreman_datacenter/racks_controller.rb +29 -15
  82. data/app/controllers/foreman_datacenter/sites_controller.rb +34 -17
  83. data/app/helpers/foreman_datacenter/application_helper.rb +66 -0
  84. data/app/helpers/foreman_datacenter/comments_helper.rb +8 -0
  85. data/app/models/foreman_datacenter/comment.rb +2 -2
  86. data/app/models/foreman_datacenter/console_port.rb +10 -0
  87. data/app/models/foreman_datacenter/console_port_template.rb +5 -0
  88. data/app/models/foreman_datacenter/console_server_port.rb +6 -0
  89. data/app/models/foreman_datacenter/console_server_port_template.rb +5 -0
  90. data/app/models/foreman_datacenter/device.rb +20 -26
  91. data/app/models/foreman_datacenter/device_bay.rb +5 -0
  92. data/app/models/foreman_datacenter/device_bay_template.rb +5 -0
  93. data/app/models/foreman_datacenter/device_interface.rb +5 -0
  94. data/app/models/foreman_datacenter/device_interface_connection.rb +6 -0
  95. data/app/models/foreman_datacenter/device_module.rb +5 -0
  96. data/app/models/foreman_datacenter/device_role.rb +14 -0
  97. data/app/models/foreman_datacenter/device_type.rb +31 -6
  98. data/app/models/foreman_datacenter/interface_template.rb +5 -0
  99. data/app/models/foreman_datacenter/management_device.rb +9 -0
  100. data/app/models/foreman_datacenter/manufacturer.rb +18 -0
  101. data/app/models/foreman_datacenter/platform.rb +15 -0
  102. data/app/models/foreman_datacenter/power_outlet.rb +5 -0
  103. data/app/models/foreman_datacenter/power_outlet_template.rb +5 -0
  104. data/app/models/foreman_datacenter/power_port.rb +10 -0
  105. data/app/models/foreman_datacenter/power_port_template.rb +5 -0
  106. data/app/models/foreman_datacenter/rack.rb +19 -1
  107. data/app/models/foreman_datacenter/rack_group.rb +21 -0
  108. data/app/models/foreman_datacenter/site.rb +36 -2
  109. data/app/views/api/v2/foreman_datacenter/console_port_templates/base.json.rabl +3 -0
  110. data/app/views/api/v2/foreman_datacenter/console_port_templates/create.json.rabl +3 -0
  111. data/app/views/api/v2/foreman_datacenter/console_port_templates/index.json.rabl +3 -0
  112. data/app/views/api/v2/foreman_datacenter/console_port_templates/main.json.rabl +5 -0
  113. data/app/views/api/v2/foreman_datacenter/console_port_templates/show.json.rabl +7 -0
  114. data/app/views/api/v2/foreman_datacenter/console_ports/base.json.rabl +3 -0
  115. data/app/views/api/v2/foreman_datacenter/console_ports/create.json.rabl +3 -0
  116. data/app/views/api/v2/foreman_datacenter/console_ports/index.json.rabl +3 -0
  117. data/app/views/api/v2/foreman_datacenter/console_ports/main.json.rabl +5 -0
  118. data/app/views/api/v2/foreman_datacenter/console_ports/show.json.rabl +11 -0
  119. data/app/views/api/v2/foreman_datacenter/console_ports/update.json.rabl +3 -0
  120. data/app/views/api/v2/foreman_datacenter/console_server_port_templates/base.json.rabl +3 -0
  121. data/app/views/api/v2/foreman_datacenter/console_server_port_templates/create.json.rabl +3 -0
  122. data/app/views/api/v2/foreman_datacenter/console_server_port_templates/index.json.rabl +3 -0
  123. data/app/views/api/v2/foreman_datacenter/console_server_port_templates/main.json.rabl +5 -0
  124. data/app/views/api/v2/foreman_datacenter/console_server_port_templates/show.json.rabl +11 -0
  125. data/app/views/api/v2/foreman_datacenter/console_server_ports/base.json.rabl +3 -0
  126. data/app/views/api/v2/foreman_datacenter/console_server_ports/create.json.rabl +3 -0
  127. data/app/views/api/v2/foreman_datacenter/console_server_ports/index.json.rabl +3 -0
  128. data/app/views/api/v2/foreman_datacenter/console_server_ports/main.json.rabl +5 -0
  129. data/app/views/api/v2/foreman_datacenter/console_server_ports/show.json.rabl +7 -0
  130. data/app/views/api/v2/foreman_datacenter/console_server_ports/update.json.rabl +3 -0
  131. data/app/views/api/v2/foreman_datacenter/device_bay_templates/base.json.rabl +3 -0
  132. data/app/views/api/v2/foreman_datacenter/device_bay_templates/create.json.rabl +3 -0
  133. data/app/views/api/v2/foreman_datacenter/device_bay_templates/index.json.rabl +3 -0
  134. data/app/views/api/v2/foreman_datacenter/device_bay_templates/main.json.rabl +5 -0
  135. data/app/views/api/v2/foreman_datacenter/device_bay_templates/show.json.rabl +7 -0
  136. data/app/views/api/v2/foreman_datacenter/device_bays/base.json.rabl +3 -0
  137. data/app/views/api/v2/foreman_datacenter/device_bays/create.json.rabl +3 -0
  138. data/app/views/api/v2/foreman_datacenter/device_bays/index.json.rabl +3 -0
  139. data/app/views/api/v2/foreman_datacenter/device_bays/main.json.rabl +5 -0
  140. data/app/views/api/v2/foreman_datacenter/device_bays/show.json.rabl +7 -0
  141. data/app/views/api/v2/foreman_datacenter/device_bays/update.json.rabl +3 -0
  142. data/app/views/api/v2/foreman_datacenter/device_interface_connections/base.json.rabl +3 -0
  143. data/app/views/api/v2/foreman_datacenter/device_interface_connections/create.json.rabl +3 -0
  144. data/app/views/api/v2/foreman_datacenter/device_interface_connections/index.json.rabl +3 -0
  145. data/app/views/api/v2/foreman_datacenter/device_interface_connections/main.json.rabl +5 -0
  146. data/app/views/api/v2/foreman_datacenter/device_interface_connections/show.json.rabl +3 -0
  147. data/app/views/api/v2/foreman_datacenter/device_interface_connections/update.json.rabl +3 -0
  148. data/app/views/api/v2/foreman_datacenter/device_interfaces/base.json.rabl +3 -0
  149. data/app/views/api/v2/foreman_datacenter/device_interfaces/create.json.rabl +3 -0
  150. data/app/views/api/v2/foreman_datacenter/device_interfaces/index.json.rabl +3 -0
  151. data/app/views/api/v2/foreman_datacenter/device_interfaces/main.json.rabl +5 -0
  152. data/app/views/api/v2/foreman_datacenter/device_interfaces/show.json.rabl +7 -0
  153. data/app/views/api/v2/foreman_datacenter/device_interfaces/update.json.rabl +3 -0
  154. data/app/views/api/v2/foreman_datacenter/device_modules/base.json.rabl +3 -0
  155. data/app/views/api/v2/foreman_datacenter/device_modules/create.json.rabl +3 -0
  156. data/app/views/api/v2/foreman_datacenter/device_modules/index.json.rabl +3 -0
  157. data/app/views/api/v2/foreman_datacenter/device_modules/main.json.rabl +5 -0
  158. data/app/views/api/v2/foreman_datacenter/device_modules/show.json.rabl +7 -0
  159. data/app/views/api/v2/foreman_datacenter/device_modules/update.json.rabl +3 -0
  160. data/app/views/api/v2/foreman_datacenter/device_roles/base.json.rabl +3 -0
  161. data/app/views/api/v2/foreman_datacenter/device_roles/create.json.rabl +3 -0
  162. data/app/views/api/v2/foreman_datacenter/device_roles/index.json.rabl +3 -0
  163. data/app/views/api/v2/foreman_datacenter/device_roles/main.json.rabl +5 -0
  164. data/app/views/api/v2/foreman_datacenter/device_roles/show.json.rabl +7 -0
  165. data/app/views/api/v2/foreman_datacenter/device_roles/update.json.rabl +3 -0
  166. data/app/views/api/v2/foreman_datacenter/device_types/base.json.rabl +3 -0
  167. data/app/views/api/v2/foreman_datacenter/device_types/create.json.rabl +3 -0
  168. data/app/views/api/v2/foreman_datacenter/device_types/index.json.rabl +3 -0
  169. data/app/views/api/v2/foreman_datacenter/device_types/main.json.rabl +5 -0
  170. data/app/views/api/v2/foreman_datacenter/device_types/show.json.rabl +31 -0
  171. data/app/views/api/v2/foreman_datacenter/device_types/update.json.rabl +7 -0
  172. data/app/views/api/v2/foreman_datacenter/devices/base.json.rabl +3 -0
  173. data/app/views/api/v2/foreman_datacenter/devices/create.json.rabl +3 -0
  174. data/app/views/api/v2/foreman_datacenter/devices/index.json.rabl +3 -0
  175. data/app/views/api/v2/foreman_datacenter/devices/main.json.rabl +5 -0
  176. data/app/views/api/v2/foreman_datacenter/devices/show.json.rabl +63 -0
  177. data/app/views/api/v2/foreman_datacenter/devices/update.json.rabl +7 -0
  178. data/app/views/api/v2/foreman_datacenter/interface_templates/base.json.rabl +3 -0
  179. data/app/views/api/v2/foreman_datacenter/interface_templates/create.json.rabl +3 -0
  180. data/app/views/api/v2/foreman_datacenter/interface_templates/index.json.rabl +3 -0
  181. data/app/views/api/v2/foreman_datacenter/interface_templates/main.json.rabl +5 -0
  182. data/app/views/api/v2/foreman_datacenter/interface_templates/show.json.rabl +7 -0
  183. data/app/views/api/v2/foreman_datacenter/management_devices/base.json.rabl +3 -0
  184. data/app/views/api/v2/foreman_datacenter/management_devices/create.json.rabl +3 -0
  185. data/app/views/api/v2/foreman_datacenter/management_devices/index.json.rabl +3 -0
  186. data/app/views/api/v2/foreman_datacenter/management_devices/main.json.rabl +5 -0
  187. data/app/views/api/v2/foreman_datacenter/management_devices/show.json.rabl +7 -0
  188. data/app/views/api/v2/foreman_datacenter/management_devices/update.json.rabl +3 -0
  189. data/app/views/api/v2/foreman_datacenter/manufacturers/base.json.rabl +3 -0
  190. data/app/views/api/v2/foreman_datacenter/manufacturers/create.json.rabl +3 -0
  191. data/app/views/api/v2/foreman_datacenter/manufacturers/index.json.rabl +3 -0
  192. data/app/views/api/v2/foreman_datacenter/manufacturers/main.json.rabl +5 -0
  193. data/app/views/api/v2/foreman_datacenter/manufacturers/show.json.rabl +7 -0
  194. data/app/views/api/v2/foreman_datacenter/manufacturers/update.json.rabl +3 -0
  195. data/app/views/api/v2/foreman_datacenter/platforms/base.json.rabl +3 -0
  196. data/app/views/api/v2/foreman_datacenter/platforms/create.json.rabl +3 -0
  197. data/app/views/api/v2/foreman_datacenter/platforms/index.json.rabl +3 -0
  198. data/app/views/api/v2/foreman_datacenter/platforms/main.json.rabl +5 -0
  199. data/app/views/api/v2/foreman_datacenter/platforms/show.json.rabl +7 -0
  200. data/app/views/api/v2/foreman_datacenter/platforms/update.json.rabl +3 -0
  201. data/app/views/api/v2/foreman_datacenter/power_outlet_templates/base.json.rabl +3 -0
  202. data/app/views/api/v2/foreman_datacenter/power_outlet_templates/create.json.rabl +3 -0
  203. data/app/views/api/v2/foreman_datacenter/power_outlet_templates/index.json.rabl +3 -0
  204. data/app/views/api/v2/foreman_datacenter/power_outlet_templates/main.json.rabl +5 -0
  205. data/app/views/api/v2/foreman_datacenter/power_outlet_templates/show.json.rabl +7 -0
  206. data/app/views/api/v2/foreman_datacenter/power_outlets/base.json.rabl +3 -0
  207. data/app/views/api/v2/foreman_datacenter/power_outlets/create.json.rabl +3 -0
  208. data/app/views/api/v2/foreman_datacenter/power_outlets/index.json.rabl +3 -0
  209. data/app/views/api/v2/foreman_datacenter/power_outlets/main.json.rabl +5 -0
  210. data/app/views/api/v2/foreman_datacenter/power_outlets/show.json.rabl +11 -0
  211. data/app/views/api/v2/foreman_datacenter/power_outlets/update.json.rabl +3 -0
  212. data/app/views/api/v2/foreman_datacenter/power_port_templates/base.json.rabl +3 -0
  213. data/app/views/api/v2/foreman_datacenter/power_port_templates/create.json.rabl +3 -0
  214. data/app/views/api/v2/foreman_datacenter/power_port_templates/index.json.rabl +3 -0
  215. data/app/views/api/v2/foreman_datacenter/power_port_templates/main.json.rabl +5 -0
  216. data/app/views/api/v2/foreman_datacenter/power_port_templates/show.json.rabl +7 -0
  217. data/app/views/api/v2/foreman_datacenter/power_ports/base.json.rabl +3 -0
  218. data/app/views/api/v2/foreman_datacenter/power_ports/create.json.rabl +3 -0
  219. data/app/views/api/v2/foreman_datacenter/power_ports/index.json.rabl +3 -0
  220. data/app/views/api/v2/foreman_datacenter/power_ports/main.json.rabl +5 -0
  221. data/app/views/api/v2/foreman_datacenter/power_ports/show.json.rabl +11 -0
  222. data/app/views/api/v2/foreman_datacenter/power_ports/update.json.rabl +3 -0
  223. data/app/views/api/v2/foreman_datacenter/rack_groups/base.json.rabl +3 -0
  224. data/app/views/api/v2/foreman_datacenter/rack_groups/create.json.rabl +3 -0
  225. data/app/views/api/v2/foreman_datacenter/rack_groups/index.json.rabl +3 -0
  226. data/app/views/api/v2/foreman_datacenter/rack_groups/main.json.rabl +5 -0
  227. data/app/views/api/v2/foreman_datacenter/rack_groups/show.json.rabl +7 -0
  228. data/app/views/api/v2/foreman_datacenter/rack_groups/update.json.rabl +3 -0
  229. data/app/views/api/v2/foreman_datacenter/racks/base.json.rabl +3 -0
  230. data/app/views/api/v2/foreman_datacenter/racks/create.json.rabl +3 -0
  231. data/app/views/api/v2/foreman_datacenter/racks/index.json.rabl +3 -0
  232. data/app/views/api/v2/foreman_datacenter/racks/main.json.rabl +5 -0
  233. data/app/views/api/v2/foreman_datacenter/racks/show.json.rabl +11 -0
  234. data/app/views/api/v2/foreman_datacenter/racks/update.json.rabl +3 -0
  235. data/app/views/api/v2/foreman_datacenter/sites/base.json.rabl +3 -0
  236. data/app/views/api/v2/foreman_datacenter/sites/create.json.rabl +3 -0
  237. data/app/views/api/v2/foreman_datacenter/sites/index.json.rabl +3 -0
  238. data/app/views/api/v2/foreman_datacenter/sites/main.json.rabl +5 -0
  239. data/app/views/api/v2/foreman_datacenter/sites/show.json.rabl +11 -0
  240. data/app/views/api/v2/foreman_datacenter/sites/update.json.rabl +3 -0
  241. data/app/views/foreman_datacenter/comments/_children.html.erb +2 -2
  242. data/app/views/foreman_datacenter/comments/_comments.html.erb +8 -10
  243. data/app/views/foreman_datacenter/comments/_form.html.erb +27 -39
  244. data/app/views/foreman_datacenter/comments/_item.html.erb +4 -4
  245. data/app/views/foreman_datacenter/comments/_list.html.erb +26 -0
  246. data/app/views/foreman_datacenter/comments/edit.html.erb +3 -2
  247. data/app/views/foreman_datacenter/comments/new.html.erb +3 -2
  248. data/app/views/foreman_datacenter/common/404.html.erb +10 -0
  249. data/app/views/foreman_datacenter/console_port_templates/_form.html.erb +4 -3
  250. data/app/views/foreman_datacenter/console_port_templates/new.html.erb +3 -1
  251. data/app/views/foreman_datacenter/console_ports/_form.html.erb +4 -3
  252. data/app/views/foreman_datacenter/console_ports/edit.html.erb +3 -1
  253. data/app/views/foreman_datacenter/console_ports/index.html.erb +25 -26
  254. data/app/views/foreman_datacenter/console_ports/new.html.erb +3 -1
  255. data/app/views/foreman_datacenter/console_ports/new_connection.html.erb +2 -0
  256. data/app/views/foreman_datacenter/console_ports/welcome.html.erb +15 -0
  257. data/app/views/foreman_datacenter/console_server_port_templates/_form.html.erb +4 -3
  258. data/app/views/foreman_datacenter/console_server_port_templates/new.html.erb +3 -1
  259. data/app/views/foreman_datacenter/console_server_ports/_form.html.erb +4 -3
  260. data/app/views/foreman_datacenter/console_server_ports/edit.html.erb +3 -1
  261. data/app/views/foreman_datacenter/console_server_ports/new.html.erb +3 -1
  262. data/app/views/foreman_datacenter/console_server_ports/new_connection.html.erb +3 -1
  263. data/app/views/foreman_datacenter/device_bay_templates/_form.html.erb +4 -3
  264. data/app/views/foreman_datacenter/device_bay_templates/new.html.erb +3 -1
  265. data/app/views/foreman_datacenter/device_bays/_form.html.erb +4 -3
  266. data/app/views/foreman_datacenter/device_bays/edit.html.erb +3 -1
  267. data/app/views/foreman_datacenter/device_bays/new.html.erb +3 -1
  268. data/app/views/foreman_datacenter/device_bays/populate_new.html.erb +12 -4
  269. data/app/views/foreman_datacenter/device_interface_connections/_form.html.erb +20 -14
  270. data/app/views/foreman_datacenter/device_interface_connections/index.html.erb +29 -29
  271. data/app/views/foreman_datacenter/device_interface_connections/new.html.erb +3 -1
  272. data/app/views/foreman_datacenter/device_interface_connections/welcome.html.erb +15 -0
  273. data/app/views/foreman_datacenter/device_interfaces/_form.html.erb +6 -5
  274. data/app/views/foreman_datacenter/device_interfaces/edit.html.erb +3 -1
  275. data/app/views/foreman_datacenter/device_interfaces/new.html.erb +3 -1
  276. data/app/views/foreman_datacenter/device_modules/_form.html.erb +4 -3
  277. data/app/views/foreman_datacenter/device_modules/edit.html.erb +3 -1
  278. data/app/views/foreman_datacenter/device_modules/new.html.erb +3 -1
  279. data/app/views/foreman_datacenter/device_roles/edit.html.erb +3 -1
  280. data/app/views/foreman_datacenter/device_roles/index.html.erb +26 -16
  281. data/app/views/foreman_datacenter/device_roles/new.html.erb +3 -1
  282. data/app/views/foreman_datacenter/device_roles/show.html.erb +42 -16
  283. data/app/views/foreman_datacenter/device_roles/welcome.html.erb +2 -0
  284. data/app/views/foreman_datacenter/device_types/_form.html.erb +10 -10
  285. data/app/views/foreman_datacenter/device_types/edit.html.erb +3 -1
  286. data/app/views/foreman_datacenter/device_types/index.html.erb +30 -16
  287. data/app/views/foreman_datacenter/device_types/new.html.erb +3 -1
  288. data/app/views/foreman_datacenter/device_types/show.html.erb +178 -170
  289. data/app/views/foreman_datacenter/device_types/welcome.html.erb +2 -0
  290. data/app/views/foreman_datacenter/devices/_aracks.html.erb +2 -2
  291. data/app/views/foreman_datacenter/devices/_console_port.html.erb +1 -1
  292. data/app/views/foreman_datacenter/devices/_console_server_port.html.erb +1 -1
  293. data/app/views/foreman_datacenter/devices/_device_bay.html.erb +1 -1
  294. data/app/views/foreman_datacenter/devices/_device_module.html.erb +2 -2
  295. data/app/views/foreman_datacenter/devices/_device_types.html.erb +3 -3
  296. data/app/views/foreman_datacenter/devices/_for_rack.html.erb +2 -2
  297. data/app/views/foreman_datacenter/devices/_form.html.erb +2 -4
  298. data/app/views/foreman_datacenter/devices/_power_outlet.html.erb +1 -1
  299. data/app/views/foreman_datacenter/devices/_racks.html.erb +3 -3
  300. data/app/views/foreman_datacenter/devices/edit.html.erb +3 -1
  301. data/app/views/foreman_datacenter/devices/index.html.erb +40 -23
  302. data/app/views/foreman_datacenter/devices/inventory.html.erb +17 -14
  303. data/app/views/foreman_datacenter/devices/new.html.erb +3 -1
  304. data/app/views/foreman_datacenter/devices/show.html.erb +132 -114
  305. data/app/views/foreman_datacenter/devices/welcome.html.erb +2 -0
  306. data/app/views/foreman_datacenter/interface_templates/_form.html.erb +4 -3
  307. data/app/views/foreman_datacenter/interface_templates/new.html.erb +3 -1
  308. data/app/views/foreman_datacenter/management_devices/_form.html.erb +4 -3
  309. data/app/views/foreman_datacenter/management_devices/edit.html.erb +3 -1
  310. data/app/views/foreman_datacenter/management_devices/new.html.erb +3 -1
  311. data/app/views/foreman_datacenter/manufacturers/edit.html.erb +3 -1
  312. data/app/views/foreman_datacenter/manufacturers/index.html.erb +30 -15
  313. data/app/views/foreman_datacenter/manufacturers/new.html.erb +3 -1
  314. data/app/views/foreman_datacenter/manufacturers/show.html.erb +54 -24
  315. data/app/views/foreman_datacenter/manufacturers/welcome.html.erb +2 -0
  316. data/app/views/foreman_datacenter/platforms/edit.html.erb +3 -1
  317. data/app/views/foreman_datacenter/platforms/index.html.erb +27 -15
  318. data/app/views/foreman_datacenter/platforms/new.html.erb +3 -1
  319. data/app/views/foreman_datacenter/platforms/show.html.erb +43 -17
  320. data/app/views/foreman_datacenter/platforms/welcome.html.erb +2 -0
  321. data/app/views/foreman_datacenter/power_outlet_templates/_form.html.erb +4 -3
  322. data/app/views/foreman_datacenter/power_outlet_templates/new.html.erb +3 -1
  323. data/app/views/foreman_datacenter/power_outlets/_form.html.erb +4 -3
  324. data/app/views/foreman_datacenter/power_outlets/edit.html.erb +3 -1
  325. data/app/views/foreman_datacenter/power_outlets/new.html.erb +3 -1
  326. data/app/views/foreman_datacenter/power_outlets/new_connection.html.erb +3 -1
  327. data/app/views/foreman_datacenter/power_port_templates/_form.html.erb +4 -3
  328. data/app/views/foreman_datacenter/power_port_templates/new.html.erb +3 -1
  329. data/app/views/foreman_datacenter/power_ports/_form.html.erb +4 -3
  330. data/app/views/foreman_datacenter/power_ports/edit.html.erb +3 -1
  331. data/app/views/foreman_datacenter/power_ports/index.html.erb +26 -26
  332. data/app/views/foreman_datacenter/power_ports/new.html.erb +3 -1
  333. data/app/views/foreman_datacenter/power_ports/new_connection.html.erb +2 -0
  334. data/app/views/foreman_datacenter/power_ports/welcome.html.erb +15 -0
  335. data/app/views/foreman_datacenter/rack_groups/edit.html.erb +3 -1
  336. data/app/views/foreman_datacenter/rack_groups/index.html.erb +31 -17
  337. data/app/views/foreman_datacenter/rack_groups/move.html.erb +24 -0
  338. data/app/views/foreman_datacenter/rack_groups/new.html.erb +3 -1
  339. data/app/views/foreman_datacenter/rack_groups/show.html.erb +80 -55
  340. data/app/views/foreman_datacenter/racks/_device_position.html.erb +2 -2
  341. data/app/views/foreman_datacenter/racks/_form.html.erb +18 -18
  342. data/app/views/foreman_datacenter/racks/_rack_groups.html.erb +6 -6
  343. data/app/views/foreman_datacenter/racks/_unpositioned_devices.html.erb +2 -2
  344. data/app/views/foreman_datacenter/racks/edit.html.erb +3 -1
  345. data/app/views/foreman_datacenter/racks/index.html.erb +37 -27
  346. data/app/views/foreman_datacenter/racks/move.html.erb +24 -0
  347. data/app/views/foreman_datacenter/racks/new.html.erb +3 -1
  348. data/app/views/foreman_datacenter/racks/show.html.erb +47 -30
  349. data/app/views/foreman_datacenter/shared/_aa.html.erb +1 -0
  350. data/app/views/foreman_datacenter/shared/_modal.html.erb +28 -0
  351. data/app/views/foreman_datacenter/shared/_rack_device_select.html.erb +4 -4
  352. data/app/views/foreman_datacenter/sites/_form.html.erb +1 -0
  353. data/app/views/foreman_datacenter/sites/edit.html.erb +3 -1
  354. data/app/views/foreman_datacenter/sites/index.html.erb +30 -18
  355. data/app/views/foreman_datacenter/sites/move.html.erb +27 -0
  356. data/app/views/foreman_datacenter/sites/new.html.erb +3 -1
  357. data/app/views/foreman_datacenter/sites/show.html.erb +86 -56
  358. data/config/routes.rb +12 -1
  359. data/lib/foreman_datacenter/engine.rb +13 -1
  360. data/lib/foreman_datacenter/version.rb +1 -1
  361. data/test/controllers/foreman_datacenter/device_types_contoller_test.rb +91 -0
  362. data/test/controllers/foreman_datacenter/manufacturers_contoller_test.rb +97 -0
  363. data/test/controllers/foreman_datacenter/platforms_contoller_test.rb +97 -0
  364. data/test/controllers/foreman_datacenter/power_port_templates_contoller_test.rb +53 -0
  365. data/test/controllers/foreman_datacenter/rack_groups_contoller_test.rb +85 -91
  366. data/test/controllers/foreman_datacenter/racks_contoller_test.rb +65 -72
  367. data/test/controllers/foreman_datacenter/sites_contoller_test.rb +107 -71
  368. data/test/datacenter_helper.rb +4 -0
  369. data/test/factories/device_type.rb +13 -0
  370. data/test/factories/manufacturer.rb +5 -0
  371. data/test/factories/platform.rb +5 -0
  372. data/test/factories/rack.rb +8 -0
  373. data/test/factories/rack_group.rb +107 -0
  374. data/test/factories/site.rb +5 -0
  375. data/test/fixtures/foreman_datacenter/comments.yml +30 -0
  376. data/test/fixtures/foreman_datacenter/console_port_templates.yml +42 -0
  377. data/test/fixtures/foreman_datacenter/console_ports.yml +108 -0
  378. data/test/fixtures/foreman_datacenter/console_server_port_templates.yml +42 -0
  379. data/test/fixtures/foreman_datacenter/console_server_ports.yml +84 -0
  380. data/test/fixtures/foreman_datacenter/device_bay_templates.yml +14 -0
  381. data/test/fixtures/foreman_datacenter/device_bays.yml +32 -0
  382. data/test/fixtures/foreman_datacenter/device_interface_connections.yml +96 -0
  383. data/test/fixtures/foreman_datacenter/device_interfaces.yml +240 -0
  384. data/test/fixtures/foreman_datacenter/device_modules.yml +54 -0
  385. data/test/fixtures/foreman_datacenter/device_roles.yml +22 -0
  386. data/test/fixtures/foreman_datacenter/device_types.yml +54 -0
  387. data/test/fixtures/foreman_datacenter/devices.yml +126 -0
  388. data/test/fixtures/foreman_datacenter/interface_templates.yml +54 -0
  389. data/test/fixtures/foreman_datacenter/management_devices.yml +27 -0
  390. data/test/fixtures/foreman_datacenter/manufacturers.yml +24 -0
  391. data/test/fixtures/foreman_datacenter/platforms.yml +28 -0
  392. data/test/fixtures/foreman_datacenter/power_outlet_templates.yml +42 -0
  393. data/test/fixtures/foreman_datacenter/power_outlets.yml +84 -0
  394. data/test/fixtures/foreman_datacenter/power_port_templates.yml +42 -0
  395. data/test/fixtures/foreman_datacenter/power_ports.yml +108 -0
  396. data/test/fixtures/foreman_datacenter/rack_groups.yml +16 -6
  397. data/test/fixtures/foreman_datacenter/racks.yml +31 -10
  398. data/test/fixtures/foreman_datacenter/sites.yml +23 -12
  399. data/test/integration/foreman_datacenter/rack_group_test.rb +25 -25
  400. data/test/integration/foreman_datacenter/rack_test.rb +25 -25
  401. data/test/integration/foreman_datacenter/site_test.rb +29 -29
  402. data/test/test_plugin_helper.rb +1 -0
  403. data/test/unit/foreman_datacenter_test.rb +1 -1
  404. metadata +264 -2
@@ -1,19 +1,20 @@
1
1
  module ForemanDatacenter
2
- class DeviceBayTemplatesController < ApplicationController
3
- before_action :set_device_bay_template, only: [:destroy]
2
+ class DeviceBayTemplatesController < ForemanDatacenter::ApplicationController
3
+ include ForemanDatacenter::Controller::Parameters::DeviceBayTemplate
4
+
5
+ before_action :find_resource, only: [:destroy]
4
6
 
5
7
  def new
6
- @device_bay_template = DeviceBayTemplate.new(
7
- device_type: DeviceType.find(params[:device_type_id])
8
+ @device_bay_template = ForemanDatacenter::DeviceBayTemplate.new(
9
+ device_type: ForemanDatacenter::DeviceType.find(params[:device_type_id])
8
10
  )
9
11
  end
10
12
 
11
13
  def create
12
- @device_bay_template = DeviceBayTemplate.new(device_bay_template_params)
14
+ @device_bay_template = ForemanDatacenter::DeviceBayTemplate.new(device_bay_template_params.merge(device_type_id: params[:device_type_id]))
13
15
 
14
16
  if @device_bay_template.save
15
- redirect_to device_type_url(@device_bay_template.device_type),
16
- notice: 'Device bay template was successfully created'
17
+ process_success success_redirect: device_type_url(@device_bay_template.device_type_id)
17
18
  else
18
19
  process_error object: @device_bay_template
19
20
  end
@@ -21,21 +22,10 @@ module ForemanDatacenter
21
22
 
22
23
  def destroy
23
24
  if @device_bay_template.destroy
24
- redirect_to device_type_url(@device_bay_template.device_type),
25
- notice: 'Device bay template was successfully destroyed'
25
+ process_success success_redirect: device_type_url(params[:device_type_id])
26
26
  else
27
27
  process_error object: @device_bay_template
28
28
  end
29
29
  end
30
-
31
- private
32
-
33
- def set_device_bay_template
34
- @device_bay_template = DeviceBayTemplate.find(params[:id])
35
- end
36
-
37
- def device_bay_template_params
38
- params[:device_bay_template].permit(:device_type_id, :name)
39
- end
40
30
  end
41
31
  end
@@ -1,17 +1,20 @@
1
1
  module ForemanDatacenter
2
- class DeviceBaysController < ApplicationController
3
- before_action :set_device_bay, only: [:depopulate, :populate,
4
- :populate_new, :edit, :update, :destroy]
2
+ class DeviceBaysController < ForemanDatacenter::ApplicationController
3
+ include ForemanDatacenter::Controller::Parameters::DeviceBay
4
+
5
+ before_action :find_resource, only: [:depopulate, :populate,
6
+ :populate_new, :edit,
7
+ :update, :destroy]
5
8
 
6
9
  def new
7
- @device_bay = DeviceBay.new(device: Device.find(params[:device_id]))
10
+ @device_bay = ForemanDatacenter::DeviceBay.new(device: ForemanDatacenter::Device.find(params[:device_id]))
8
11
  end
9
12
 
10
13
  def edit
11
14
  end
12
15
 
13
16
  def create
14
- @device_bay = DeviceBay.new(device_bay_params)
17
+ @device_bay = ForemanDatacenter::DeviceBay.new(device_bay_params.merge(device_id: params[:device_id]))
15
18
 
16
19
  if @device_bay.save
17
20
  redirect_to device_url(@device_bay.device),
@@ -60,15 +63,5 @@ module ForemanDatacenter
60
63
  process_error object: @device_bay
61
64
  end
62
65
  end
63
-
64
- private
65
-
66
- def set_device_bay
67
- @device_bay = DeviceBay.find(params[:id])
68
- end
69
-
70
- def device_bay_params
71
- params[:device_bay].permit(:name, :device_id)
72
- end
73
66
  end
74
67
  end
@@ -1,22 +1,22 @@
1
1
  module ForemanDatacenter
2
- class DeviceInterfaceConnectionsController < ApplicationController
3
- before_action :set_device_interface_connection,
4
- only: [:destroy, :planned, :connected]
2
+ class DeviceInterfaceConnectionsController < ForemanDatacenter::ApplicationController
3
+ include Foreman::Controller::AutoCompleteSearch
4
+ include ForemanDatacenter::Controller::Parameters::DeviceInterfaceConnection
5
+
6
+ before_action :find_resource, only: [:destroy, :planned, :connected]
5
7
 
6
8
  def index
7
- @device_interface_connections = DeviceInterfaceConnection.includes(
8
- :second_interface, first_interface: [:device]
9
- )
9
+ @device_interface_connections = resource_base_search_and_page.includes(:second_interface, first_interface: [:device])
10
10
  end
11
11
 
12
12
  def new
13
- @device_interface_connection = DeviceInterfaceConnection.connected.new(
13
+ @device_interface_connection = ForemanDatacenter::DeviceInterfaceConnection.connected.new(
14
14
  first_interface: get_device_interface
15
15
  )
16
16
  end
17
17
 
18
18
  def create
19
- @device_interface_connection = DeviceInterfaceConnection.new(device_interface_connection_params)
19
+ @device_interface_connection = ForemanDatacenter::DeviceInterfaceConnection.new(device_interface_connection_params.merge(interface_a: params[:device_interface_id]))
20
20
  @device_interface_connection.first_interface = get_device_interface
21
21
 
22
22
  if @device_interface_connection.save
@@ -43,23 +43,14 @@ module ForemanDatacenter
43
43
  end
44
44
 
45
45
  def interfaces
46
- @interfaces = Device.find(params[:device_id]).free_interfaces
46
+ @interfaces = ForemanDatacenter::Device.find(params[:device_id]).free_interfaces
47
47
  render partial: 'interfaces'
48
48
  end
49
49
 
50
50
  private
51
51
 
52
- def set_device_interface_connection
53
- @device_interface_connection = DeviceInterfaceConnection.find(params[:id])
54
- end
55
-
56
- def device_interface_connection_params
57
- params[:device_interface_connection].
58
- permit(:interface_a, :interface_b, :connection_status)
59
- end
60
-
61
52
  def get_device_interface
62
- DeviceInterface.find(params[:device_interface_id])
53
+ ForemanDatacenter::DeviceInterface.find(params[:device_interface_id])
63
54
  end
64
55
  end
65
56
  end
@@ -1,9 +1,11 @@
1
1
  module ForemanDatacenter
2
- class DeviceInterfacesController < ApplicationController
3
- before_action :set_device_interface, only: [:edit, :update, :destroy]
2
+ class DeviceInterfacesController < ForemanDatacenter::ApplicationController
3
+ include ForemanDatacenter::Controller::Parameters::DeviceInterface
4
+
5
+ before_action :find_resource, only: [:edit, :update, :destroy]
4
6
 
5
7
  def new
6
- device = Device.find(params[:device_id])
8
+ device = ForemanDatacenter::Device.find(params[:device_id])
7
9
  @device_interface = DeviceInterface.new(
8
10
  device: device,
9
11
  form_factor: DeviceInterface::DEFAULT_FORM_FACTOR
@@ -11,8 +13,8 @@ module ForemanDatacenter
11
13
  end
12
14
 
13
15
  def new_management
14
- @device_interface = DeviceInterface.new(
15
- device: Device.find(params[:device_id]),
16
+ @device_interface = ForemanDatacenter::DeviceInterface.new(
17
+ device: ForemanDatacenter::Device.find(params[:device_id]),
16
18
  form_factor: DeviceInterface::DEFAULT_FORM_FACTOR,
17
19
  mgmt_only: true
18
20
  )
@@ -23,7 +25,7 @@ module ForemanDatacenter
23
25
  end
24
26
 
25
27
  def create
26
- @device_interface = DeviceInterface.new(device_interface_params)
28
+ @device_interface = ForemanDatacenter::DeviceInterface.new(device_interface_params.merge(device_id: params[:device_id]))
27
29
 
28
30
  if @device_interface.save
29
31
  redirect_to device_url(id: @device_interface.device_id),
@@ -50,16 +52,5 @@ module ForemanDatacenter
50
52
  process_error object: @device_interface
51
53
  end
52
54
  end
53
-
54
- private
55
-
56
- def set_device_interface
57
- @device_interface = DeviceInterface.find(params[:id])
58
- end
59
-
60
- def device_interface_params
61
- params[:device_interface].
62
- permit(:device_id, :name, :form_factor, :mac_address, :mgmt_only, :description, :ip_address)
63
- end
64
55
  end
65
56
  end
@@ -1,10 +1,12 @@
1
1
  module ForemanDatacenter
2
2
  class DeviceModulesController < ApplicationController
3
- before_action :set_device_module, only: [:edit, :update, :destroy]
3
+ include ForemanDatacenter::Controller::Parameters::DeviceModule
4
+
5
+ before_action :find_resource, only: [:edit, :update, :destroy]
4
6
 
5
7
  def new
6
- @device_module = DeviceModule.new(
7
- device: Device.find(params[:device_id])
8
+ @device_module = ForemanDatacenter::DeviceModule.new(
9
+ device: ForemanDatacenter::Device.find(params[:device_id])
8
10
  )
9
11
  end
10
12
 
@@ -12,7 +14,7 @@ module ForemanDatacenter
12
14
  end
13
15
 
14
16
  def create
15
- @device_module = DeviceModule.new(device_module_params)
17
+ @device_module = ForemanDatacenter::DeviceModule.new(device_module_params.merge(device_id: params[:device_id]))
16
18
 
17
19
  if @device_module.save
18
20
  redirect_to inventory_device_url(id: @device_module.device_id),
@@ -39,15 +41,5 @@ module ForemanDatacenter
39
41
  process_error object: @device_module
40
42
  end
41
43
  end
42
-
43
- private
44
-
45
- def set_device_module
46
- @device_module = DeviceModule.find(params[:id])
47
- end
48
-
49
- def device_module_params
50
- params[:device_module].permit(:device_id, :name, :part_id, :serial)
51
- end
52
44
  end
53
45
  end
@@ -1,23 +1,26 @@
1
1
  module ForemanDatacenter
2
- class DeviceRolesController < ApplicationController
3
- before_action :set_device_role, only: [:show, :edit, :update, :destroy]
2
+ class DeviceRolesController < ForemanDatacenter::ApplicationController
3
+ include Foreman::Controller::AutoCompleteSearch
4
+ include ForemanDatacenter::Controller::Parameters::DeviceRole
5
+
6
+ before_action :find_resource, only: [:show, :edit, :update, :destroy]
4
7
 
5
8
  def index
6
- @device_roles = DeviceRole.includes(:devices).all
9
+ @device_roles = resource_base_search_and_page
7
10
  end
8
11
 
9
12
  def show
10
13
  end
11
14
 
12
15
  def new
13
- @device_role = DeviceRole.new
16
+ @device_role = ForemanDatacenter::DeviceRole.new
14
17
  end
15
18
 
16
19
  def edit
17
20
  end
18
21
 
19
22
  def create
20
- @device_role = DeviceRole.new(device_role_params)
23
+ @device_role = ForemanDatacenter::DeviceRole.new(device_role_params)
21
24
 
22
25
  if @device_role.save
23
26
  process_success object: @device_role
@@ -35,21 +38,17 @@ module ForemanDatacenter
35
38
  end
36
39
 
37
40
  def destroy
41
+ unless params['object_only']
42
+ @device_role.devices.each { |d| d.destroy }
43
+ else
44
+ @device_role.devices.delete_all(:nullify)
45
+ end
46
+
38
47
  if @device_role.destroy
39
- process_success object: @device_role
48
+ process_success success_redirect: device_roles_path
40
49
  else
41
50
  process_error object: @device_role
42
51
  end
43
52
  end
44
-
45
- private
46
-
47
- def set_device_role
48
- @device_role = DeviceRole.find(params[:id])
49
- end
50
-
51
- def device_role_params
52
- params[:device_role].permit(:name, :color)
53
- end
54
53
  end
55
54
  end
@@ -1,26 +1,28 @@
1
1
  module ForemanDatacenter
2
- class DeviceTypesController < ApplicationController
3
- before_action :set_device_type, only: [:show, :edit, :update, :destroy]
2
+ class DeviceTypesController < ForemanDatacenter::ApplicationController
3
+ include Foreman::Controller::AutoCompleteSearch
4
+ include ForemanDatacenter::Controller::Parameters::DeviceType
5
+
6
+ before_action :find_resource, only: [:show, :edit, :update, :destroy]
4
7
 
5
8
  def index
6
- @device_types = DeviceType.includes(:manufacturer).
7
- paginate(:page => params[:page], :per_page => params[:per_page])
9
+ @device_types = resource_base_search_and_page.includes(:manufacturer)
8
10
  end
9
11
 
10
12
  def show
11
13
  end
12
14
 
13
15
  def new
14
- @device_type = DeviceType.new(u_height: 1, is_full_depth: true,
15
- is_console_server: false, is_pdu: false,
16
- is_network_device: true)
16
+ @device_type = ForemanDatacenter::DeviceType.new(u_height: 1, is_full_depth: true,
17
+ is_console_server: false, is_pdu: false,
18
+ is_network_device: true)
17
19
  end
18
20
 
19
21
  def edit
20
22
  end
21
23
 
22
24
  def create
23
- @device_type = DeviceType.new(device_type_params)
25
+ @device_type = ForemanDatacenter::DeviceType.new(device_type_params)
24
26
 
25
27
  if @device_type.save
26
28
  process_success object: @device_type
@@ -39,23 +41,17 @@ module ForemanDatacenter
39
41
  end
40
42
 
41
43
  def destroy
44
+ unless params['object_only']
45
+ @device_type.devices.each { |d| d.destroy }
46
+ else
47
+ @device_type.devices.delete_all(:nullify)
48
+ end
49
+
42
50
  if @device_type.destroy
43
- process_success object: @device_type
51
+ process_success success_redirect: device_types_path
44
52
  else
45
53
  process_error object: @device_type
46
54
  end
47
55
  end
48
-
49
- private
50
-
51
- def set_device_type
52
- @device_type = DeviceType.find(params[:id])
53
- end
54
-
55
- def device_type_params
56
- params[:device_type].permit(:manufacturer_id, :model, :u_height,
57
- :is_full_depth, :is_console_server,
58
- :is_pdu, :is_network_device, :subdevice_role)
59
- end
60
56
  end
61
57
  end
@@ -3,57 +3,52 @@ require 'prawn'
3
3
  require 'prawn/measurement_extensions'
4
4
 
5
5
  module ForemanDatacenter
6
- class DevicesController < ApplicationController
6
+ class DevicesController < ForemanDatacenter::ApplicationController
7
7
  include Foreman::Controller::AutoCompleteSearch
8
+ include ForemanDatacenter::Controller::Parameters::Device
8
9
 
9
- before_action :set_device, only: [:update, :destroy, :inventory,
10
- :destroy_interfaces, :qr_code,
11
- :sync_interfaces_with_host]
12
-
13
- before_action :load_resource
10
+ before_action :find_resource, only: [:update, :destroy, :inventory,
11
+ :destroy_interfaces, :qr_code,
12
+ :sync_interfaces_with_host]
14
13
 
15
14
  def index
16
- begin
17
- search = resource_base.search_for(params[:search], :order => params[:order])
18
- rescue => e
19
- error e.to_s
20
- search = resource_base.search_for ''
21
- end
22
- @devices = search.includes(:device_role, :device_type, :site, :rack).
23
- paginate(:page => params[:page], :per_page => params[:per_page])
15
+ @devices = resource_base_search_and_page.includes(:device_role, :device_type, :site, :rack)
24
16
  end
25
17
 
26
18
  def show
27
- @device = Device.includes(
19
+ @device = ForemanDatacenter::Device.includes(
20
+ power_ports: [:power_outlet, :device],
21
+ power_outlets: [:device, :power_port],
22
+ console_ports: [:console_server_port, :device],
23
+ console_server_ports: [:console_port, :device],
28
24
  device_bays: [:installed_device],
29
- console_server_ports: [:console_port],
30
- power_outlets: [:power_port],
31
- console_ports: [:console_server_port],
32
- power_ports: [:power_outlet]
25
+ comments: [:user]
33
26
  ).find(params[:id])
34
- @current_user = User.current
27
+ @comments = @device.comments
35
28
  @commentable = @device
36
- @comment = Comment.new
29
+ @comment = ForemanDatacenter::Comment.new
30
+ @resource = request.path.split('/')[2]
31
+ @current_user = current_user
37
32
  end
38
33
 
39
34
  def inventory
40
35
  end
41
36
 
42
37
  def new
43
- @device = Device.new
38
+ @device = ForemanDatacenter::Device.new
44
39
  populate_from_host
45
40
  end
46
41
 
47
42
  def edit
48
- @device = Device.find(params[:id])
43
+ @device = ForemanDatacenter::Device.find(params[:id])
49
44
  populate_from_host
50
45
  end
51
46
 
52
47
  def create
53
- @device = Device.new(device_params)
48
+ @device = ForemanDatacenter::Device.new(device_params.merge(host_id: params[:host_id]))
54
49
 
55
50
  if @device.save
56
- process_success object: @device
51
+ process_success success_redirect: device_url(@device)
57
52
  else
58
53
  process_error object: @device
59
54
  end
@@ -68,10 +63,21 @@ module ForemanDatacenter
68
63
  end
69
64
 
70
65
  def destroy
71
- if @device.destroy
72
- process_success success_redirect: "/datacenter/devices"
66
+ unless params['object_only']
67
+ if @device.destroy
68
+ process_success success_redirect: "/datacenter/devices"
69
+ else
70
+ process_error object: @device
71
+ end
73
72
  else
74
- process_error object: @device
73
+ if @device.host
74
+ @device.host.destroy
75
+ new_device_name = "Unassigned device (former: #{@device.name})"
76
+ @device.update(name: new_device_name)
77
+ process_success success_redirect: '/datacenter/devices', success_msg: 'Associated host deleted'
78
+ else
79
+ process_error success_redirect: '/datacenter/devices', error_msg: 'Associated host not found'
80
+ end
75
81
  end
76
82
  end
77
83
 
@@ -91,7 +97,7 @@ module ForemanDatacenter
91
97
  end
92
98
 
93
99
  def site_racks
94
- @site = Site.find(params[:site_id])
100
+ @site = ForemanDatacenter::Site.find(params[:site_id])
95
101
  render partial: 'site_racks'
96
102
  end
97
103
 
@@ -125,22 +131,6 @@ module ForemanDatacenter
125
131
 
126
132
  private
127
133
 
128
- def set_device
129
- @device = Device.find(params[:id])
130
- end
131
-
132
- def device_params
133
- params[:device].permit(:device_type_id, :device_role_id, :platform_id,
134
- :name, :serial, :rack_id, :position, :side,
135
- :face, :status, :primary_ip4, :primary_ip6,
136
- :host_id, :size)
137
- end
138
-
139
- def load_resource
140
- resource, id = request.path.split('/')[2, 3]
141
- @commentable_data = {resource: resource, id: id }
142
- end
143
-
144
134
  def populate_from_host
145
135
  if params[:host_id]
146
136
  host = Host.find(params[:host_id])