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,6 +1,8 @@
1
1
  module ForemanDatacenter
2
2
  class InterfaceTemplatesController < ApplicationController
3
- before_action :set_interface_template, only: [:destroy]
3
+ include ForemanDatacenter::Controller::Parameters::InterfaceTemplate
4
+
5
+ before_action :find_resource, only: [:destroy]
4
6
 
5
7
  def new
6
8
  @interface_template = InterfaceTemplate.new(
@@ -19,11 +21,10 @@ module ForemanDatacenter
19
21
  end
20
22
 
21
23
  def create
22
- @interface_template = InterfaceTemplate.new(interface_template_params)
24
+ @interface_template = InterfaceTemplate.new(interface_template_params.merge(device_type_id: params[:device_type_id]))
23
25
 
24
26
  if @interface_template.save
25
- redirect_to device_type_url(@interface_template.device_type),
26
- notice: 'New interface template was successfully created'
27
+ process_success success_redirect: device_type_url(@interface_template.device_type_id)
27
28
  else
28
29
  process_error object: @interface_template
29
30
  end
@@ -31,22 +32,10 @@ module ForemanDatacenter
31
32
 
32
33
  def destroy
33
34
  if @interface_template.destroy
34
- redirect_to device_type_url(@interface_template.device_type),
35
- notice: 'Interface template was successfully destroyed'
35
+ process_success success_redirect: device_type_url(params[:device_type_id])
36
36
  else
37
37
  process_error object: @interface_template
38
38
  end
39
39
  end
40
-
41
- private
42
-
43
- def set_interface_template
44
- @interface_template = InterfaceTemplate.find(params[:id])
45
- end
46
-
47
- def interface_template_params
48
- params[:interface_template].
49
- permit(:device_type_id, :name, :form_factor, :mgmt_only)
50
- end
51
40
  end
52
41
  end
@@ -1,6 +1,8 @@
1
1
  module ForemanDatacenter
2
- class ManagementDevicesController < ApplicationController
3
- before_action :set_management_device, only: [:edit, :update, :destroy]
2
+ class ManagementDevicesController < ForemanDatacenter::ApplicationController
3
+ include ForemanDatacenter::Controller::Parameters::ManagementDevice
4
+
5
+ before_action :find_resource, only: [:edit, :update, :destroy]
4
6
 
5
7
  def new
6
8
  device = Device.find(params[:device_id])
@@ -11,7 +13,7 @@ module ForemanDatacenter
11
13
  end
12
14
 
13
15
  def create
14
- @management_device = ManagementDevice.new(management_device_params)
16
+ @management_device = ManagementDevice.new(management_device_params.merge(device_id: params[:device_id]))
15
17
 
16
18
  if @management_device.save
17
19
  redirect_to device_url(@management_device.device),
@@ -38,16 +40,5 @@ module ForemanDatacenter
38
40
  process_error object: @management_device
39
41
  end
40
42
  end
41
-
42
- private
43
-
44
- def set_management_device
45
- @management_device = ManagementDevice.find(params[:id])
46
- end
47
-
48
- def management_device_params
49
- params[:management_device].
50
- permit(:device_id, :console_url, :login, :password)
51
- end
52
43
  end
53
44
  end
@@ -1,9 +1,12 @@
1
1
  module ForemanDatacenter
2
- class ManufacturersController < ApplicationController
3
- before_action :set_manufacturer, only: [:show, :edit, :update, :destroy]
2
+ class ManufacturersController < ForemanDatacenter::ApplicationController
3
+ include Foreman::Controller::AutoCompleteSearch
4
+ include ForemanDatacenter::Controller::Parameters::Manufacturer
5
+
6
+ before_action :find_resource, only: [:show, :edit, :update, :destroy]
4
7
 
5
8
  def index
6
- @manufacturers = Manufacturer.all
9
+ @manufacturers = resource_base_search_and_page.includes(:device_types)
7
10
  end
8
11
 
9
12
  def show
@@ -35,21 +38,17 @@ module ForemanDatacenter
35
38
  end
36
39
 
37
40
  def destroy
38
- if @manufacturer.destroy
39
- process_success object: @manufacturer
41
+ unless params['object_only']
42
+ @manufacturer.device_types.each { |dt| dt.devices.each { |d| d.destroy }; dt.destroy }
40
43
  else
41
- process_error object: @manufacturer
44
+ @manufacturer.device_types.delete_all(:nullify)
42
45
  end
43
- end
44
-
45
- private
46
46
 
47
- def set_manufacturer
48
- @manufacturer = Manufacturer.find(params[:id])
49
- end
50
-
51
- def manufacturer_params
52
- params[:manufacturer].permit(:name)
47
+ if @manufacturer.destroy
48
+ process_success success_redirect: manufacturers_path
49
+ else
50
+ process_error
51
+ end
53
52
  end
54
53
  end
55
54
  end
@@ -1,9 +1,12 @@
1
1
  module ForemanDatacenter
2
- class PlatformsController < ApplicationController
3
- before_action :set_platform, only: [:show, :edit, :update, :destroy]
2
+ class PlatformsController < ForemanDatacenter::ApplicationController
3
+ include Foreman::Controller::AutoCompleteSearch
4
+ include ForemanDatacenter::Controller::Parameters::Platform
5
+
6
+ before_action :find_resource, only: [:show, :edit, :update, :destroy]
4
7
 
5
8
  def index
6
- @platforms = Platform.includes(:devices).all
9
+ @platforms = resource_base_search_and_page
7
10
  end
8
11
 
9
12
  def show
@@ -35,21 +38,16 @@ module ForemanDatacenter
35
38
  end
36
39
 
37
40
  def destroy
41
+ unless params['object_only']
42
+ @platform.devices.each { |d| d.destroy }
43
+ else
44
+ @platform.devices.delete_all(:nullify)
45
+ end
38
46
  if @platform.destroy
39
- process_success object: @platform
47
+ process_success success_redirect: platforms_path
40
48
  else
41
49
  process_error object: @platform
42
50
  end
43
51
  end
44
-
45
- private
46
-
47
- def set_platform
48
- @platform = Platform.find(params[:id])
49
- end
50
-
51
- def platform_params
52
- params[:platform].permit(:name, :rpc_client)
53
- end
54
52
  end
55
53
  end
@@ -1,6 +1,8 @@
1
1
  module ForemanDatacenter
2
- class PowerOutletTemplatesController < ApplicationController
3
- before_action :set_power_outlet_template, only: [:destroy]
2
+ class PowerOutletTemplatesController < ForemanDatacenter::ApplicationController
3
+ include ForemanDatacenter::Controller::Parameters::PowerOutletTemplate
4
+
5
+ before_action :find_resource, only: [:destroy]
4
6
 
5
7
  def new
6
8
  @power_outlet_template = PowerOutletTemplate.new(
@@ -9,11 +11,10 @@ module ForemanDatacenter
9
11
  end
10
12
 
11
13
  def create
12
- @power_outlet_template = PowerOutletTemplate.new(power_outlet_template_params)
14
+ @power_outlet_template = PowerOutletTemplate.new(power_outlet_template_params.merge(device_type_id: params[:device_type_id]))
13
15
 
14
16
  if @power_outlet_template.save
15
- redirect_to device_type_url(@power_outlet_template.device_type),
16
- notice: 'New power outlet template was successfully created'
17
+ process_success success_redirect: device_type_url(@power_outlet_template.device_type_id)
17
18
  else
18
19
  process_error object: @power_outlet_template
19
20
  end
@@ -21,21 +22,10 @@ module ForemanDatacenter
21
22
 
22
23
  def destroy
23
24
  if @power_outlet_template.destroy
24
- redirect_to device_type_url(@power_outlet_template.device_type),
25
- notice: 'Power outlet template was successfully destroyed'
25
+ process_success success_redirect: device_type_url(params[:device_type_id])
26
26
  else
27
27
  process_error object: @power_outlet_template
28
28
  end
29
29
  end
30
-
31
- private
32
-
33
- def set_power_outlet_template
34
- @power_outlet_template = PowerOutletTemplate.find(params[:id])
35
- end
36
-
37
- def power_outlet_template_params
38
- params[:power_outlet_template].permit(:device_type_id, :name)
39
- end
40
30
  end
41
31
  end
@@ -1,7 +1,10 @@
1
1
  module ForemanDatacenter
2
- class PowerOutletsController < ApplicationController
3
- before_action :set_power_outlet, only: [:edit, :update, :destroy, :new_connection,
4
- :connect, :disconnect]
2
+ class PowerOutletsController < ForemanDatacenter::ApplicationController
3
+ include ForemanDatacenter::Controller::Parameters::PowerOutlet
4
+
5
+ before_action :find_resource, only: [:edit, :update, :destroy,
6
+ :new_connection,
7
+ :connect, :disconnect]
5
8
 
6
9
  def new
7
10
  device = Device.find(params[:device_id])
@@ -12,7 +15,7 @@ module ForemanDatacenter
12
15
  end
13
16
 
14
17
  def create
15
- @power_outlet = PowerOutlet.new(power_outlet_params)
18
+ @power_outlet = PowerOutlet.new(power_outlet_params.merge(device_id: params[:device_id]))
16
19
 
17
20
  if @power_outlet.save
18
21
  redirect_to device_url(id: @power_outlet.device_id),
@@ -63,15 +66,5 @@ module ForemanDatacenter
63
66
  @device = Device.find(params[:device_id])
64
67
  render partial: 'for_device'
65
68
  end
66
-
67
- private
68
-
69
- def set_power_outlet
70
- @power_outlet = PowerOutlet.find(params[:id])
71
- end
72
-
73
- def power_outlet_params
74
- params[:power_outlet].permit(:device_id, :name)
75
- end
76
69
  end
77
70
  end
@@ -1,19 +1,20 @@
1
1
  module ForemanDatacenter
2
- class PowerPortTemplatesController < ApplicationController
3
- before_action :set_power_port_template, only: [:destroy]
2
+ class PowerPortTemplatesController < ForemanDatacenter::ApplicationController
3
+ include ForemanDatacenter::Controller::Parameters::PowerPortTemplate
4
+
5
+ before_action :find_resource, only: [:destroy]
4
6
 
5
7
  def new
6
- @power_port_template = PowerPortTemplate.new(
7
- device_type: DeviceType.find(params[:device_type_id]),
8
+ @power_port_template = ForemanDatacenter::PowerPortTemplate.new(
9
+ device_type: ForemanDatacenter::DeviceType.find(params[:device_type_id]),
8
10
  )
9
11
  end
10
12
 
11
13
  def create
12
- @power_port_template = PowerPortTemplate.new(power_port_template_params)
14
+ @power_port_template = ForemanDatacenter::PowerPortTemplate.new(power_port_template_params.merge(device_type_id: params[:device_type_id]))
13
15
 
14
16
  if @power_port_template.save
15
- redirect_to device_type_url(@power_port_template.device_type),
16
- notice: 'New power port template was successfully created'
17
+ process_success success_redirect: device_type_url(@power_port_template.device_type_id)
17
18
  else
18
19
  process_error object: @power_port_template
19
20
  end
@@ -21,21 +22,10 @@ module ForemanDatacenter
21
22
 
22
23
  def destroy
23
24
  if @power_port_template.destroy
24
- redirect_to device_type_url(@power_port_template.device_type),
25
- notice: 'Power port template was successfully destroyed'
25
+ process_success success_redirect: device_type_url(params[:device_type_id])
26
26
  else
27
27
  process_error object: @power_port_template
28
28
  end
29
29
  end
30
-
31
- private
32
-
33
- def set_power_port_template
34
- @power_port_template = PowerPortTemplate.find(params[:id])
35
- end
36
-
37
- def power_port_template_params
38
- params[:power_port_template].permit(:device_type_id, :name)
39
- end
40
30
  end
41
31
  end
@@ -1,16 +1,18 @@
1
1
  module ForemanDatacenter
2
- class PowerPortsController < ApplicationController
3
- before_action :set_power_port, only: [:edit, :update, :destroy, :connected,
2
+ class PowerPortsController < ForemanDatacenter::ApplicationController
3
+ include Foreman::Controller::AutoCompleteSearch
4
+ include ForemanDatacenter::Controller::Parameters::PowerPort
5
+
6
+ before_action :find_resource, only: [:edit, :update, :destroy, :connected,
4
7
  :planned, :new_connection, :connect,
5
8
  :disconnect]
6
9
 
7
10
  def index
8
- @power_ports = PowerPort.where.not(power_outlet_id: nil).
9
- includes(:device, power_outlet: [:device])
11
+ @power_ports = resource_base_search_and_page.where.not(power_outlet_id: nil).includes(:device, power_outlet: [:device])
10
12
  end
11
13
 
12
14
  def new
13
- @power_port = PowerPort.new(
15
+ @power_port = ForemanDatacenter::PowerPort.new(
14
16
  device: Device.find(params[:device_id])
15
17
  )
16
18
  end
@@ -19,7 +21,7 @@ module ForemanDatacenter
19
21
  end
20
22
 
21
23
  def create
22
- @power_port = PowerPort.new(power_port_params)
24
+ @power_port = ForemanDatacenter::PowerPort.new(power_port_params.merge(device_id: params[:device_id]))
23
25
 
24
26
  if @power_port.save
25
27
  redirect_to device_url(id: @power_port.device_id),
@@ -80,15 +82,5 @@ module ForemanDatacenter
80
82
  redirect_to device_url(id: @power_port.device_id),
81
83
  notice: 'Power port was successfully disconnected.'
82
84
  end
83
-
84
- private
85
-
86
- def set_power_port
87
- @power_port = PowerPort.find(params[:id])
88
- end
89
-
90
- def power_port_params
91
- params[:power_port].permit(:device_id, :name)
92
- end
93
85
  end
94
86
  end
@@ -1,23 +1,26 @@
1
1
  module ForemanDatacenter
2
- class RackGroupsController < ApplicationController
3
- before_action :set_rack_group, only: [:show, :edit, :update, :destroy]
2
+ class RackGroupsController < ForemanDatacenter::ApplicationController
3
+ include Foreman::Controller::AutoCompleteSearch
4
+ include ForemanDatacenter::Controller::Parameters::RackGroup
5
+
6
+ before_action :find_resource, only: [:show, :edit, :update, :destroy, :move]
4
7
 
5
8
  def index
6
- @rack_groups = RackGroup.includes(:site, :racks).all
9
+ @rack_groups = resource_base_search_and_page.includes(:site, :racks)
7
10
  end
8
11
 
9
12
  def show
10
13
  end
11
14
 
12
15
  def new
13
- @rack_group = RackGroup.new
16
+ @rack_group = ForemanDatacenter::RackGroup.new
14
17
  end
15
18
 
16
19
  def edit
17
20
  end
18
21
 
19
22
  def create
20
- @rack_group = RackGroup.new(rack_group_params)
23
+ @rack_group = ForemanDatacenter::RackGroup.new(rack_group_params)
21
24
 
22
25
  if @rack_group.save
23
26
  process_success object: @rack_group
@@ -35,21 +38,35 @@ module ForemanDatacenter
35
38
  end
36
39
 
37
40
  def destroy
41
+ unless params['object_only']
42
+ @rack_group.racks.each { |r| r.devices.each { |d| d.destroy } }
43
+ @rack_group.racks.destroy_all
44
+ else
45
+ @rack_group.racks.delete_all(:nullify)
46
+ end
47
+
38
48
  if @rack_group.destroy
39
- process_success object: @rack_group
49
+ process_success success_redirect: "/datacenter/rack_groups"
40
50
  else
41
51
  process_error object: @rack_group
42
52
  end
43
53
  end
44
54
 
45
- private
46
-
47
- def set_rack_group
48
- @rack_group = RackGroup.find(params[:id])
55
+ def move
56
+ @rack_groups = resource_base_search_and_page
57
+ @racks = @rack_group.racks
58
+ process_error object: @rack_group, error_msg: 'Current Rack Group haven\'t any Racks.' if @racks.empty?
49
59
  end
50
60
 
51
- def rack_group_params
52
- params[:rack_group].permit(:name, :site_id)
61
+ def update_associated_objects
62
+ begin
63
+ @rack_group = ForemanDatacenter::RackGroup.find(request.env['HTTP_REFERER'].split('/')[-2])
64
+ @racks = @rack_group.racks
65
+ @racks.update_all(rack_group_id: params[:rack_group_id])
66
+ process_success success_redirect: rack_groups_path, success_msg: 'Associated objects successfully moved.'
67
+ rescue => e
68
+ process_error object: @rack_group, error_msg: "#{e}"
69
+ end
53
70
  end
54
71
  end
55
72
  end
@@ -1,20 +1,22 @@
1
1
  module ForemanDatacenter
2
- class RacksController < ApplicationController
3
- before_action :set_rack, only: [:show, :edit, :update, :destroy, :devices]
2
+ class RacksController < ForemanDatacenter::ApplicationController
3
+ include Foreman::Controller::AutoCompleteSearch
4
+ include ForemanDatacenter::Controller::Parameters::Rack
5
+
6
+ before_action :find_resource, only: [:show, :edit, :update, :destroy, :devices, :move]
4
7
 
5
8
  def index
6
- @racks = ForemanDatacenter::Rack.
7
- includes(:site, :rack_group, :devices).
8
- order(:name).
9
- all
9
+ @racks = resource_base_search_and_page.includes(:site, :rack_group)
10
10
  end
11
11
 
12
+ # action for async selecting rack_group in rack _form
12
13
  def rack_groups
13
- @rack_groups = RackGroup.where(site_id: params[:site_id]).all
14
+ @rack_groups = ForemanDatacenter::RackGroup.where(site_id: params[:site_id]).all
14
15
  render partial: 'rack_groups'
15
16
  end
16
17
 
17
18
  def show
19
+ @rack = resource_base.includes(devices: [:device_role]).find(params[:id])
18
20
  end
19
21
 
20
22
  def new
@@ -43,22 +45,34 @@ module ForemanDatacenter
43
45
  end
44
46
 
45
47
  def destroy
48
+ unless params['object_only']
49
+ @rack.devices.each { |d| d.destroy }
50
+ else
51
+ @rack.devices.delete_all(:nullify)
52
+ end
53
+
46
54
  if @rack.destroy
47
- process_success object: @rack
55
+ process_success success_redirect: racks_path
48
56
  else
49
57
  process_error object: @rack
50
58
  end
51
59
  end
52
60
 
53
- private
54
-
55
- def set_rack
56
- @rack = ForemanDatacenter::Rack.find(params[:id])
61
+ def move
62
+ @racks = resource_base_search_and_page
63
+ @devices = @rack.devices
64
+ process_error object: @rack, error_msg: 'Current Rack haven\'t any Devices.' if @devices.empty?
57
65
  end
58
66
 
59
- def rack_params
60
- params[:rack].
61
- permit(:site_id, :rack_group_id, :name, :facility_id, :height, :comments)
67
+ def update_associated_objects
68
+ begin
69
+ @rack = ForemanDatacenter::Rack.find(request.env['HTTP_REFERER'].split('/')[-2])
70
+ @devices = @rack.devices
71
+ @devices.update_all(rack_id: params[:rack_id])
72
+ process_success success_redirect: racks_path, success_msg: 'Associated objects successfully moved.'
73
+ rescue => e
74
+ process_error object: @rack, error_msg: "#{e}"
75
+ end
62
76
  end
63
77
  end
64
78
  end