foreman_datacenter 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +619 -0
  3. data/README.md +38 -0
  4. data/Rakefile +47 -0
  5. data/app/assets/javascripts/foreman_datacenter/ajax.js +18 -0
  6. data/app/assets/javascripts/foreman_datacenter/console_ports.js +2 -0
  7. data/app/assets/javascripts/foreman_datacenter/device_interface_connections.js +16 -0
  8. data/app/assets/javascripts/foreman_datacenter/devices.js +33 -0
  9. data/app/assets/javascripts/foreman_datacenter/racks.js +16 -0
  10. data/app/assets/javascripts/foreman_datacenter/shared.js +19 -0
  11. data/app/assets/stylesheets/foreman_datacenter/device_interface_connections.css +3 -0
  12. data/app/controllers/foreman_datacenter/console_port_templates_controller.rb +41 -0
  13. data/app/controllers/foreman_datacenter/console_ports_controller.rb +94 -0
  14. data/app/controllers/foreman_datacenter/console_server_port_templates_controller.rb +41 -0
  15. data/app/controllers/foreman_datacenter/console_server_ports_controller.rb +78 -0
  16. data/app/controllers/foreman_datacenter/device_bay_templates_controller.rb +41 -0
  17. data/app/controllers/foreman_datacenter/device_bays_controller.rb +74 -0
  18. data/app/controllers/foreman_datacenter/device_interface_connections_controller.rb +65 -0
  19. data/app/controllers/foreman_datacenter/device_interfaces_controller.rb +65 -0
  20. data/app/controllers/foreman_datacenter/device_modules_controller.rb +53 -0
  21. data/app/controllers/foreman_datacenter/device_roles_controller.rb +55 -0
  22. data/app/controllers/foreman_datacenter/device_types_controller.rb +60 -0
  23. data/app/controllers/foreman_datacenter/devices_controller.rb +82 -0
  24. data/app/controllers/foreman_datacenter/interface_templates_controller.rb +52 -0
  25. data/app/controllers/foreman_datacenter/manufacturers_controller.rb +55 -0
  26. data/app/controllers/foreman_datacenter/platforms_controller.rb +55 -0
  27. data/app/controllers/foreman_datacenter/power_outlet_templates_controller.rb +41 -0
  28. data/app/controllers/foreman_datacenter/power_outlets_controller.rb +77 -0
  29. data/app/controllers/foreman_datacenter/power_port_templates_controller.rb +41 -0
  30. data/app/controllers/foreman_datacenter/power_ports_controller.rb +94 -0
  31. data/app/controllers/foreman_datacenter/rack_groups_controller.rb +55 -0
  32. data/app/controllers/foreman_datacenter/racks_controller.rb +63 -0
  33. data/app/controllers/foreman_datacenter/sites_controller.rb +56 -0
  34. data/app/helpers/foreman_datacenter/console_ports_helper.rb +11 -0
  35. data/app/helpers/foreman_datacenter/console_server_ports_helper.rb +11 -0
  36. data/app/helpers/foreman_datacenter/device_bays_helper.rb +12 -0
  37. data/app/helpers/foreman_datacenter/device_interface_connections_helper.rb +10 -0
  38. data/app/helpers/foreman_datacenter/device_interfaces_helper.rb +4 -0
  39. data/app/helpers/foreman_datacenter/device_roles_helper.rb +7 -0
  40. data/app/helpers/foreman_datacenter/device_types_helper.rb +7 -0
  41. data/app/helpers/foreman_datacenter/devices_helper.rb +54 -0
  42. data/app/helpers/foreman_datacenter/interface_templates_helper.rb +7 -0
  43. data/app/helpers/foreman_datacenter/platforms_helper.rb +7 -0
  44. data/app/helpers/foreman_datacenter/power_outlets_helper.rb +11 -0
  45. data/app/helpers/foreman_datacenter/power_ports_helper.rb +11 -0
  46. data/app/helpers/foreman_datacenter/racks_helper.rb +8 -0
  47. data/app/helpers/foreman_datacenter/shared_helper.rb +29 -0
  48. data/app/models/foreman_datacenter/console_port.rb +19 -0
  49. data/app/models/foreman_datacenter/console_port_template.rb +12 -0
  50. data/app/models/foreman_datacenter/console_server_port.rb +9 -0
  51. data/app/models/foreman_datacenter/console_server_port_template.rb +12 -0
  52. data/app/models/foreman_datacenter/device.rb +136 -0
  53. data/app/models/foreman_datacenter/device_bay.rb +15 -0
  54. data/app/models/foreman_datacenter/device_bay_template.rb +12 -0
  55. data/app/models/foreman_datacenter/device_interface.rb +36 -0
  56. data/app/models/foreman_datacenter/device_interface_connection.rb +43 -0
  57. data/app/models/foreman_datacenter/device_module.rb +10 -0
  58. data/app/models/foreman_datacenter/device_role.rb +14 -0
  59. data/app/models/foreman_datacenter/device_type.rb +43 -0
  60. data/app/models/foreman_datacenter/interface_template.rb +17 -0
  61. data/app/models/foreman_datacenter/manufacturer.rb +7 -0
  62. data/app/models/foreman_datacenter/platform.rb +16 -0
  63. data/app/models/foreman_datacenter/power_outlet.rb +9 -0
  64. data/app/models/foreman_datacenter/power_outlet_template.rb +12 -0
  65. data/app/models/foreman_datacenter/power_port.rb +19 -0
  66. data/app/models/foreman_datacenter/power_port_template.rb +12 -0
  67. data/app/models/foreman_datacenter/rack.rb +13 -0
  68. data/app/models/foreman_datacenter/rack_group.rb +9 -0
  69. data/app/models/foreman_datacenter/site.rb +22 -0
  70. data/app/views/foreman_datacenter/console_port_templates/_form.html.erb +15 -0
  71. data/app/views/foreman_datacenter/console_port_templates/new.html.erb +3 -0
  72. data/app/views/foreman_datacenter/console_ports/_for_device.html.erb +5 -0
  73. data/app/views/foreman_datacenter/console_ports/_form.html.erb +15 -0
  74. data/app/views/foreman_datacenter/console_ports/edit.html.erb +3 -0
  75. data/app/views/foreman_datacenter/console_ports/index.html.erb +29 -0
  76. data/app/views/foreman_datacenter/console_ports/new.html.erb +3 -0
  77. data/app/views/foreman_datacenter/console_ports/new_connection.html.erb +22 -0
  78. data/app/views/foreman_datacenter/console_server_port_templates/_form.html.erb +15 -0
  79. data/app/views/foreman_datacenter/console_server_port_templates/new.html.erb +3 -0
  80. data/app/views/foreman_datacenter/console_server_ports/_for_device.html.erb +5 -0
  81. data/app/views/foreman_datacenter/console_server_ports/_form.html.erb +15 -0
  82. data/app/views/foreman_datacenter/console_server_ports/edit.html.erb +3 -0
  83. data/app/views/foreman_datacenter/console_server_ports/new.html.erb +3 -0
  84. data/app/views/foreman_datacenter/console_server_ports/new_connection.html.erb +22 -0
  85. data/app/views/foreman_datacenter/device_bay_templates/_form.html.erb +15 -0
  86. data/app/views/foreman_datacenter/device_bay_templates/new.html.erb +3 -0
  87. data/app/views/foreman_datacenter/device_bays/_form.html.erb +15 -0
  88. data/app/views/foreman_datacenter/device_bays/edit.html.erb +3 -0
  89. data/app/views/foreman_datacenter/device_bays/new.html.erb +3 -0
  90. data/app/views/foreman_datacenter/device_bays/populate_new.html.erb +21 -0
  91. data/app/views/foreman_datacenter/device_interface_connections/_form.html.erb +72 -0
  92. data/app/views/foreman_datacenter/device_interface_connections/_interfaces.html.erb +5 -0
  93. data/app/views/foreman_datacenter/device_interface_connections/index.html.erb +32 -0
  94. data/app/views/foreman_datacenter/device_interface_connections/new.html.erb +7 -0
  95. data/app/views/foreman_datacenter/device_interfaces/_form.html.erb +22 -0
  96. data/app/views/foreman_datacenter/device_interfaces/edit.html.erb +3 -0
  97. data/app/views/foreman_datacenter/device_interfaces/new.html.erb +3 -0
  98. data/app/views/foreman_datacenter/device_modules/_form.html.erb +17 -0
  99. data/app/views/foreman_datacenter/device_modules/edit.html.erb +3 -0
  100. data/app/views/foreman_datacenter/device_modules/new.html.erb +3 -0
  101. data/app/views/foreman_datacenter/device_roles/_form.html.erb +11 -0
  102. data/app/views/foreman_datacenter/device_roles/edit.html.erb +3 -0
  103. data/app/views/foreman_datacenter/device_roles/index.html.erb +36 -0
  104. data/app/views/foreman_datacenter/device_roles/new.html.erb +3 -0
  105. data/app/views/foreman_datacenter/device_roles/show.html.erb +56 -0
  106. data/app/views/foreman_datacenter/device_types/_form.html.erb +26 -0
  107. data/app/views/foreman_datacenter/device_types/edit.html.erb +3 -0
  108. data/app/views/foreman_datacenter/device_types/index.html.erb +36 -0
  109. data/app/views/foreman_datacenter/device_types/new.html.erb +3 -0
  110. data/app/views/foreman_datacenter/device_types/show.html.erb +357 -0
  111. data/app/views/foreman_datacenter/devices/_console_port.html.erb +60 -0
  112. data/app/views/foreman_datacenter/devices/_console_server_port.html.erb +64 -0
  113. data/app/views/foreman_datacenter/devices/_device_bay.html.erb +46 -0
  114. data/app/views/foreman_datacenter/devices/_device_module.html.erb +16 -0
  115. data/app/views/foreman_datacenter/devices/_device_types.html.erb +5 -0
  116. data/app/views/foreman_datacenter/devices/_for_rack.html.erb +9 -0
  117. data/app/views/foreman_datacenter/devices/_form.html.erb +80 -0
  118. data/app/views/foreman_datacenter/devices/_interface.html.erb +67 -0
  119. data/app/views/foreman_datacenter/devices/_management_interface.html.erb +67 -0
  120. data/app/views/foreman_datacenter/devices/_power_outlet.html.erb +60 -0
  121. data/app/views/foreman_datacenter/devices/_power_port.html.erb +60 -0
  122. data/app/views/foreman_datacenter/devices/_racks.html.erb +5 -0
  123. data/app/views/foreman_datacenter/devices/edit.html.erb +5 -0
  124. data/app/views/foreman_datacenter/devices/index.html.erb +51 -0
  125. data/app/views/foreman_datacenter/devices/inventory.html.erb +66 -0
  126. data/app/views/foreman_datacenter/devices/new.html.erb +5 -0
  127. data/app/views/foreman_datacenter/devices/show.html.erb +303 -0
  128. data/app/views/foreman_datacenter/hosts/hosts/new_action.html.erb +1 -0
  129. data/app/views/foreman_datacenter/hosts/new_action.html.erb +1 -0
  130. data/app/views/foreman_datacenter/interface_templates/_form.html.erb +19 -0
  131. data/app/views/foreman_datacenter/interface_templates/new.html.erb +3 -0
  132. data/app/views/foreman_datacenter/layouts/layouts/new_layout.html.erb +0 -0
  133. data/app/views/foreman_datacenter/layouts/new_layout.html.erb +0 -0
  134. data/app/views/foreman_datacenter/manufacturers/_form.html.erb +7 -0
  135. data/app/views/foreman_datacenter/manufacturers/edit.html.erb +3 -0
  136. data/app/views/foreman_datacenter/manufacturers/index.html.erb +34 -0
  137. data/app/views/foreman_datacenter/manufacturers/new.html.erb +3 -0
  138. data/app/views/foreman_datacenter/manufacturers/show.html.erb +52 -0
  139. data/app/views/foreman_datacenter/platforms/_form.html.erb +11 -0
  140. data/app/views/foreman_datacenter/platforms/edit.html.erb +3 -0
  141. data/app/views/foreman_datacenter/platforms/index.html.erb +34 -0
  142. data/app/views/foreman_datacenter/platforms/new.html.erb +3 -0
  143. data/app/views/foreman_datacenter/platforms/show.html.erb +56 -0
  144. data/app/views/foreman_datacenter/power_outlet_templates/_form.html.erb +15 -0
  145. data/app/views/foreman_datacenter/power_outlet_templates/new.html.erb +3 -0
  146. data/app/views/foreman_datacenter/power_outlets/_for_device.html.erb +5 -0
  147. data/app/views/foreman_datacenter/power_outlets/_form.html.erb +15 -0
  148. data/app/views/foreman_datacenter/power_outlets/edit.html.erb +3 -0
  149. data/app/views/foreman_datacenter/power_outlets/new.html.erb +3 -0
  150. data/app/views/foreman_datacenter/power_outlets/new_connection.html.erb +22 -0
  151. data/app/views/foreman_datacenter/power_port_templates/_form.html.erb +15 -0
  152. data/app/views/foreman_datacenter/power_port_templates/new.html.erb +3 -0
  153. data/app/views/foreman_datacenter/power_ports/_for_device.html.erb +5 -0
  154. data/app/views/foreman_datacenter/power_ports/_form.html.erb +15 -0
  155. data/app/views/foreman_datacenter/power_ports/edit.html.erb +3 -0
  156. data/app/views/foreman_datacenter/power_ports/index.html.erb +29 -0
  157. data/app/views/foreman_datacenter/power_ports/new.html.erb +3 -0
  158. data/app/views/foreman_datacenter/power_ports/new_connection.html.erb +22 -0
  159. data/app/views/foreman_datacenter/rack_groups/_form.html.erb +11 -0
  160. data/app/views/foreman_datacenter/rack_groups/edit.html.erb +3 -0
  161. data/app/views/foreman_datacenter/rack_groups/index.html.erb +36 -0
  162. data/app/views/foreman_datacenter/rack_groups/new.html.erb +3 -0
  163. data/app/views/foreman_datacenter/rack_groups/show.html.erb +56 -0
  164. data/app/views/foreman_datacenter/racks/_form.html.erb +25 -0
  165. data/app/views/foreman_datacenter/racks/_rack_groups.html.erb +8 -0
  166. data/app/views/foreman_datacenter/racks/edit.html.erb +5 -0
  167. data/app/views/foreman_datacenter/racks/index.html.erb +50 -0
  168. data/app/views/foreman_datacenter/racks/new.html.erb +5 -0
  169. data/app/views/foreman_datacenter/racks/show.html.erb +67 -0
  170. data/app/views/foreman_datacenter/shared/_rack_device_select.html.erb +22 -0
  171. data/app/views/foreman_datacenter/sites/_form.html.erb +12 -0
  172. data/app/views/foreman_datacenter/sites/edit.html.erb +3 -0
  173. data/app/views/foreman_datacenter/sites/index.html.erb +40 -0
  174. data/app/views/foreman_datacenter/sites/new.html.erb +3 -0
  175. data/app/views/foreman_datacenter/sites/show.html.erb +98 -0
  176. data/config/routes.rb +92 -0
  177. data/db/migrate/20160727161914_create_sites.rb +16 -0
  178. data/db/migrate/20160728123353_create_rack_groups.rb +12 -0
  179. data/db/migrate/20160728143149_create_racks.rb +16 -0
  180. data/db/migrate/20160728161636_create_platforms.rb +12 -0
  181. data/db/migrate/20160728162635_create_device_roles.rb +12 -0
  182. data/db/migrate/20160728163815_create_manufacturers.rb +12 -0
  183. data/db/migrate/20160728164858_create_device_types.rb +18 -0
  184. data/db/migrate/20160728171422_create_devices.rb +31 -0
  185. data/db/migrate/20160728194401_create_device_interfaces.rb +17 -0
  186. data/db/migrate/20160728195242_create_device_interface_connections.rb +18 -0
  187. data/db/migrate/20160804104103_create_interface_templates.rb +15 -0
  188. data/db/migrate/20160804142618_create_console_port_templates.rb +13 -0
  189. data/db/migrate/20160804164301_create_power_port_templates.rb +13 -0
  190. data/db/migrate/20160805080626_create_console_server_port_templates.rb +13 -0
  191. data/db/migrate/20160805084726_create_power_outlet_templates.rb +13 -0
  192. data/db/migrate/20160805100411_create_device_bay_templates.rb +13 -0
  193. data/db/migrate/20160809091611_create_device_bays.rb +16 -0
  194. data/db/migrate/20160809103211_create_power_outlets.rb +13 -0
  195. data/db/migrate/20160809104325_create_power_ports.rb +17 -0
  196. data/db/migrate/20160809112815_create_console_server_ports.rb +13 -0
  197. data/db/migrate/20160809113846_create_console_ports.rb +17 -0
  198. data/db/migrate/20160816224805_create_device_modules.rb +15 -0
  199. data/lib/foreman_datacenter.rb +4 -0
  200. data/lib/foreman_datacenter/engine.rb +70 -0
  201. data/lib/foreman_datacenter/version.rb +3 -0
  202. data/lib/tasks/foreman_datacenter_tasks.rake +45 -0
  203. data/locale/Makefile +60 -0
  204. data/locale/en/foreman_datacenter.po +19 -0
  205. data/locale/foreman_datacenter.pot +19 -0
  206. data/locale/gemspec.rb +2 -0
  207. data/test/factories/foreman_datacenter_factories.rb +5 -0
  208. data/test/test_plugin_helper.rb +6 -0
  209. data/test/unit/foreman_datacenter_test.rb +11 -0
  210. metadata +310 -0
data/README.md ADDED
@@ -0,0 +1,38 @@
1
+ # ForemanDatacenter
2
+
3
+ *Introdction here*
4
+
5
+ ## Installation
6
+
7
+ See [How_to_Install_a_Plugin](http://projects.theforeman.org/projects/foreman/wiki/How_to_Install_a_Plugin)
8
+ for how to install Foreman plugins
9
+
10
+ ## Usage
11
+
12
+ *Usage here*
13
+
14
+ ## TODO
15
+
16
+ *Todo list here*
17
+
18
+ ## Contributing
19
+
20
+ Fork and send a Pull Request. Thanks!
21
+
22
+ ## Copyright
23
+
24
+ Copyright (c) *year* *your name*
25
+
26
+ This program is free software: you can redistribute it and/or modify
27
+ it under the terms of the GNU General Public License as published by
28
+ the Free Software Foundation, either version 3 of the License, or
29
+ (at your option) any later version.
30
+
31
+ This program is distributed in the hope that it will be useful,
32
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
33
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
34
+ GNU General Public License for more details.
35
+
36
+ You should have received a copy of the GNU General Public License
37
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
38
+
data/Rakefile ADDED
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env rake
2
+ begin
3
+ require 'bundler/setup'
4
+ rescue LoadError
5
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
+ end
7
+ begin
8
+ require 'rdoc/task'
9
+ rescue LoadError
10
+ require 'rdoc/rdoc'
11
+ require 'rake/rdoctask'
12
+ RDoc::Task = Rake::RDocTask
13
+ end
14
+
15
+ RDoc::Task.new(:rdoc) do |rdoc|
16
+ rdoc.rdoc_dir = 'rdoc'
17
+ rdoc.title = 'ForemanDatacenter'
18
+ rdoc.options << '--line-numbers'
19
+ rdoc.rdoc_files.include('README.rdoc')
20
+ rdoc.rdoc_files.include('lib/**/*.rb')
21
+ end
22
+
23
+ APP_RAKEFILE = File.expand_path('../test/dummy/Rakefile', __FILE__)
24
+
25
+ Bundler::GemHelper.install_tasks
26
+
27
+ require 'rake/testtask'
28
+
29
+ Rake::TestTask.new(:test) do |t|
30
+ t.libs << 'lib'
31
+ t.libs << 'test'
32
+ t.pattern = 'test/**/*_test.rb'
33
+ t.verbose = false
34
+ end
35
+
36
+ task default: :test
37
+
38
+ begin
39
+ require 'rubocop/rake_task'
40
+ RuboCop::RakeTask.new
41
+ rescue => _
42
+ puts 'Rubocop not loaded.'
43
+ end
44
+
45
+ task :default do
46
+ Rake::Task['rubocop'].execute
47
+ end
@@ -0,0 +1,18 @@
1
+ $(function () {
2
+ function onSend() {
3
+ foreman.tools.showSpinner();
4
+ }
5
+
6
+ function onSuccess() {
7
+ window.location.reload();
8
+ }
9
+
10
+ function onComplete() {
11
+ foreman.tools.hideSpinner();
12
+ }
13
+
14
+ var selectors = 'a[data-action="connected"], a[data-action="planned"], a[data-action="destroy"]';
15
+ $(selectors).on('ajax:send', onSend)
16
+ .on('ajax:success', onSuccess)
17
+ .on('ajax:complete', onComplete);
18
+ });
@@ -0,0 +1,2 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
@@ -0,0 +1,16 @@
1
+ function connectionsNewRackSelected(item) {
2
+ var $item = $(item);
3
+ var rack = $item.val();
4
+ if (rack === '') {
5
+ return false;
6
+ } else {
7
+ foreman.tools.showSpinner();
8
+ var url = $item.data('url');
9
+ var params = $.param({ rack_id: rack });
10
+ var $container = $('#devices-container');
11
+ $container.load(url, params, function () {
12
+ $container.find('select').select2({allowClear: true});
13
+ foreman.tools.hideSpinner();
14
+ });
15
+ }
16
+ }
@@ -0,0 +1,33 @@
1
+ function devicesNewManufacturerSelected(item) {
2
+ var $item = $(item);
3
+ var manufacturer = $item.val();
4
+ if (manufacturer === '') {
5
+ return false;
6
+ } else {
7
+ foreman.tools.showSpinner();
8
+ var url = $item.data('url');
9
+ var params = $.param({ manufacturer_id: manufacturer });
10
+ var $container = $('#device-types-container');
11
+ $container.load(url + ' #device-types', params, function () {
12
+ $container.find('select').select2({allowClear: true});
13
+ foreman.tools.hideSpinner();
14
+ });
15
+ }
16
+ }
17
+
18
+ function devicesNewSiteSelected(item) {
19
+ var $item = $(item);
20
+ var site = $item.val();
21
+ if (site === '') {
22
+ return false;
23
+ } else {
24
+ foreman.tools.showSpinner();
25
+ var url = $item.data('url');
26
+ var params = $.param({ site_id: site });
27
+ var $container = $('#sites-container');
28
+ $container.load(url + ' #sites', params, function () {
29
+ $container.find('select').select2({allowClear: true});
30
+ foreman.tools.hideSpinner();
31
+ });
32
+ }
33
+ }
@@ -0,0 +1,16 @@
1
+ function racksNewSiteSelected(item) {
2
+ var $item = $(item);
3
+ var site = $item.val();
4
+ if (site === '') {
5
+ return false;
6
+ } else {
7
+ foreman.tools.showSpinner();
8
+ var url = $item.data('url');
9
+ var params = $.param({ site_id: site });
10
+ var $container = $('#rack-groups-container');
11
+ $container.load(url + ' #rack-groups', params, function () {
12
+ $container.find('select').select2({allowClear: true});
13
+ foreman.tools.hideSpinner();
14
+ });
15
+ }
16
+ }
@@ -0,0 +1,19 @@
1
+ function newDeviceSelected(item) {
2
+ var $item = $(item);
3
+ var $mainContainer = $item.closest('#devices-container');
4
+ var id = $item.val();
5
+ if (id === '') {
6
+ return false;
7
+ } else {
8
+ var url = $mainContainer.data('url');
9
+ var fragment = $mainContainer.data('fragment');
10
+ if (fragment) url += ' ' + fragment;
11
+ var params = $.param({device_id: id});
12
+ var $targetContainer = $($mainContainer.data('target'));
13
+ foreman.tools.showSpinner();
14
+ $targetContainer.load(url, params, function () {
15
+ $targetContainer.find('select').select2({allowClear: true});
16
+ foreman.tools.hideSpinner();
17
+ });
18
+ }
19
+ }
@@ -0,0 +1,3 @@
1
+ .glyphicon-4x {
2
+ font-size: 400%;
3
+ }
@@ -0,0 +1,41 @@
1
+ module ForemanDatacenter
2
+ class ConsolePortTemplatesController < ApplicationController
3
+ before_action :set_console_port_template, only: [:destroy]
4
+
5
+ def new
6
+ @console_port_template = ConsolePortTemplate.new(
7
+ device_type: DeviceType.find(params[:device_type_id])
8
+ )
9
+ end
10
+
11
+ def create
12
+ @console_port_template = ConsolePortTemplate.new(console_port_template_params)
13
+
14
+ if @console_port_template.save
15
+ redirect_to device_type_url(@console_port_template.device_type),
16
+ notice: 'New console port template was successfully created'
17
+ else
18
+ process_error object: @console_port_template
19
+ end
20
+ end
21
+
22
+ def destroy
23
+ if @console_port_template.destroy
24
+ redirect_to device_type_url(@console_port_template.device_type),
25
+ notice: 'Console port template was successfully destroyed'
26
+ else
27
+ process_error object: @console_port_template
28
+ end
29
+ end
30
+
31
+ private
32
+
33
+ def set_console_port_template
34
+ @console_port_template = ConsolePortTemplate.find(params[:id])
35
+ end
36
+
37
+ def console_port_template_params
38
+ params[:console_port_template].permit(:device_type_id, :name)
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,94 @@
1
+ module ForemanDatacenter
2
+ class ConsolePortsController < ApplicationController
3
+ before_action :set_console_port, only: [:edit, :update, :destroy,
4
+ :connected, :planned, :new_connection,
5
+ :connect, :disconnect]
6
+
7
+ def index
8
+ @console_ports = ConsolePort.where.not(console_server_port_id: nil).
9
+ includes(:device, console_server_port: [:device])
10
+ end
11
+
12
+ def new
13
+ @console_port = ConsolePort.new(
14
+ device: Device.find(params[:device_id])
15
+ )
16
+ end
17
+
18
+ def edit
19
+ end
20
+
21
+ def create
22
+ @console_port = ConsolePort.new(console_port_params)
23
+
24
+ if @console_port.save
25
+ redirect_to device_url(id: @console_port.device_id),
26
+ notice: 'Console port was successfully created.'
27
+ else
28
+ process_error object: @console_port
29
+ end
30
+ end
31
+
32
+ def update
33
+ if @console_port.update(console_port_params)
34
+ redirect_to device_url(id: @console_port.device_id),
35
+ notice: 'Console port was successfully updated.'
36
+ else
37
+ process_error object: @console_port
38
+ end
39
+ end
40
+
41
+ def destroy
42
+ if @console_port.destroy
43
+ redirect_to device_url(id: @console_port.device_id),
44
+ notice: 'Console port was successfully destroyed.'
45
+ else
46
+ process_error object: @console_port
47
+ end
48
+ end
49
+
50
+ def for_device
51
+ @device = Device.find(params[:device_id])
52
+ render partial: 'for_device'
53
+ end
54
+
55
+ def connected
56
+ @console_port.connected!
57
+ head :ok
58
+ end
59
+
60
+ def planned
61
+ @console_port.planned!
62
+ head :ok
63
+ end
64
+
65
+ def new_connection
66
+ end
67
+
68
+ def connect
69
+ console_server_port = ConsoleServerPort.find(params[:console_server_port][:id])
70
+ @console_port.connect(
71
+ console_server_port,
72
+ params[:console_port][:connection_status]
73
+ )
74
+ redirect_to device_url(id: @console_port.device_id),
75
+ notice: 'Console port was successfully connected.'
76
+ end
77
+
78
+ def disconnect
79
+ @console_port.disconnect
80
+ redirect_to device_url(id: @console_port.device_id),
81
+ notice: 'Console port was successfully disconnected.'
82
+ end
83
+
84
+ private
85
+
86
+ def set_console_port
87
+ @console_port = ConsolePort.find(params[:id])
88
+ end
89
+
90
+ def console_port_params
91
+ params[:console_port].permit(:device_id, :name)
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,41 @@
1
+ module ForemanDatacenter
2
+ class ConsoleServerPortTemplatesController < ApplicationController
3
+ before_action :set_console_server_port_template, only: [:destroy]
4
+
5
+ def new
6
+ @console_server_port_template = ConsoleServerPortTemplate.new(
7
+ device_type: DeviceType.find(params[:device_type_id])
8
+ )
9
+ end
10
+
11
+ def create
12
+ @console_server_port_template = ConsoleServerPortTemplate.new(console_server_port_template_params)
13
+
14
+ if @console_server_port_template.save
15
+ redirect_to device_type_url(@console_server_port_template.device_type),
16
+ notice: 'New console server port template was successfully created'
17
+ else
18
+ process_error object: @console_server_port_template
19
+ end
20
+ end
21
+
22
+ def destroy
23
+ if @console_server_port_template.destroy
24
+ redirect_to device_type_url(@console_server_port_template.device_type),
25
+ notice: 'Console server port template was successfully destroyed'
26
+ else
27
+ process_error object: @console_server_port_template
28
+ end
29
+ end
30
+
31
+ private
32
+
33
+ def set_console_server_port_template
34
+ @console_server_port_template = ConsoleServerPortTemplate.find(params[:id])
35
+ end
36
+
37
+ def console_server_port_template_params
38
+ params[:console_server_port_template].permit(:device_type_id, :name)
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,78 @@
1
+ module ForemanDatacenter
2
+ class ConsoleServerPortsController < ApplicationController
3
+ before_action :set_console_server_port, only: [:edit, :update, :destroy,
4
+ :new_connection, :connect,
5
+ :disconnect]
6
+
7
+ def new
8
+ device = Device.find(params[:device_id])
9
+ @console_server_port = ConsoleServerPort.new(device: device)
10
+ end
11
+
12
+ def edit
13
+ end
14
+
15
+ def create
16
+ @console_server_port = ConsoleServerPort.new(console_server_port_params)
17
+
18
+ if @console_server_port.save
19
+ redirect_to device_url(id: @console_server_port.device_id),
20
+ notice: 'Console server port was successfully created.'
21
+ else
22
+ process_error object: @console_server_port
23
+ end
24
+ end
25
+
26
+ def update
27
+ if @console_server_port.update(console_server_port_params)
28
+ redirect_to device_url(id: @console_server_port.device_id),
29
+ notice: 'Console server port was successfully updated.'
30
+ else
31
+ process_error object: @console_server_port
32
+ end
33
+ end
34
+
35
+ def destroy
36
+ if @console_server_port.destroy
37
+ redirect_to device_url(id: @console_server_port.device_id),
38
+ notice: 'Console server port was successfully destroyed.'
39
+ else
40
+ process_error object: @console_server_port
41
+ end
42
+ end
43
+
44
+ def new_connection
45
+ end
46
+
47
+ def connect
48
+ console_port = ConsolePort.find(params[:console_port][:id])
49
+ console_port.connect(
50
+ @console_server_port,
51
+ params[:console_port][:connection_status]
52
+ )
53
+ redirect_to device_url(id: @console_server_port.device_id),
54
+ notice: 'Console server port was successfully connected.'
55
+ end
56
+
57
+ def disconnect
58
+ @console_server_port.console_port.disconnect
59
+ redirect_to device_url(id: @console_server_port.device_id),
60
+ notice: 'Console server port was successfully disconnected.'
61
+ end
62
+
63
+ def for_device
64
+ @device = Device.find(params[:device_id])
65
+ render partial: 'for_device'
66
+ end
67
+
68
+ private
69
+
70
+ def set_console_server_port
71
+ @console_server_port = ConsoleServerPort.find(params[:id])
72
+ end
73
+
74
+ def console_server_port_params
75
+ params[:console_server_port].permit(:device_id, :name)
76
+ end
77
+ end
78
+ end