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.
- checksums.yaml +7 -0
- data/LICENSE +619 -0
- data/README.md +38 -0
- data/Rakefile +47 -0
- data/app/assets/javascripts/foreman_datacenter/ajax.js +18 -0
- data/app/assets/javascripts/foreman_datacenter/console_ports.js +2 -0
- data/app/assets/javascripts/foreman_datacenter/device_interface_connections.js +16 -0
- data/app/assets/javascripts/foreman_datacenter/devices.js +33 -0
- data/app/assets/javascripts/foreman_datacenter/racks.js +16 -0
- data/app/assets/javascripts/foreman_datacenter/shared.js +19 -0
- data/app/assets/stylesheets/foreman_datacenter/device_interface_connections.css +3 -0
- data/app/controllers/foreman_datacenter/console_port_templates_controller.rb +41 -0
- data/app/controllers/foreman_datacenter/console_ports_controller.rb +94 -0
- data/app/controllers/foreman_datacenter/console_server_port_templates_controller.rb +41 -0
- data/app/controllers/foreman_datacenter/console_server_ports_controller.rb +78 -0
- data/app/controllers/foreman_datacenter/device_bay_templates_controller.rb +41 -0
- data/app/controllers/foreman_datacenter/device_bays_controller.rb +74 -0
- data/app/controllers/foreman_datacenter/device_interface_connections_controller.rb +65 -0
- data/app/controllers/foreman_datacenter/device_interfaces_controller.rb +65 -0
- data/app/controllers/foreman_datacenter/device_modules_controller.rb +53 -0
- data/app/controllers/foreman_datacenter/device_roles_controller.rb +55 -0
- data/app/controllers/foreman_datacenter/device_types_controller.rb +60 -0
- data/app/controllers/foreman_datacenter/devices_controller.rb +82 -0
- data/app/controllers/foreman_datacenter/interface_templates_controller.rb +52 -0
- data/app/controllers/foreman_datacenter/manufacturers_controller.rb +55 -0
- data/app/controllers/foreman_datacenter/platforms_controller.rb +55 -0
- data/app/controllers/foreman_datacenter/power_outlet_templates_controller.rb +41 -0
- data/app/controllers/foreman_datacenter/power_outlets_controller.rb +77 -0
- data/app/controllers/foreman_datacenter/power_port_templates_controller.rb +41 -0
- data/app/controllers/foreman_datacenter/power_ports_controller.rb +94 -0
- data/app/controllers/foreman_datacenter/rack_groups_controller.rb +55 -0
- data/app/controllers/foreman_datacenter/racks_controller.rb +63 -0
- data/app/controllers/foreman_datacenter/sites_controller.rb +56 -0
- data/app/helpers/foreman_datacenter/console_ports_helper.rb +11 -0
- data/app/helpers/foreman_datacenter/console_server_ports_helper.rb +11 -0
- data/app/helpers/foreman_datacenter/device_bays_helper.rb +12 -0
- data/app/helpers/foreman_datacenter/device_interface_connections_helper.rb +10 -0
- data/app/helpers/foreman_datacenter/device_interfaces_helper.rb +4 -0
- data/app/helpers/foreman_datacenter/device_roles_helper.rb +7 -0
- data/app/helpers/foreman_datacenter/device_types_helper.rb +7 -0
- data/app/helpers/foreman_datacenter/devices_helper.rb +54 -0
- data/app/helpers/foreman_datacenter/interface_templates_helper.rb +7 -0
- data/app/helpers/foreman_datacenter/platforms_helper.rb +7 -0
- data/app/helpers/foreman_datacenter/power_outlets_helper.rb +11 -0
- data/app/helpers/foreman_datacenter/power_ports_helper.rb +11 -0
- data/app/helpers/foreman_datacenter/racks_helper.rb +8 -0
- data/app/helpers/foreman_datacenter/shared_helper.rb +29 -0
- data/app/models/foreman_datacenter/console_port.rb +19 -0
- data/app/models/foreman_datacenter/console_port_template.rb +12 -0
- data/app/models/foreman_datacenter/console_server_port.rb +9 -0
- data/app/models/foreman_datacenter/console_server_port_template.rb +12 -0
- data/app/models/foreman_datacenter/device.rb +136 -0
- data/app/models/foreman_datacenter/device_bay.rb +15 -0
- data/app/models/foreman_datacenter/device_bay_template.rb +12 -0
- data/app/models/foreman_datacenter/device_interface.rb +36 -0
- data/app/models/foreman_datacenter/device_interface_connection.rb +43 -0
- data/app/models/foreman_datacenter/device_module.rb +10 -0
- data/app/models/foreman_datacenter/device_role.rb +14 -0
- data/app/models/foreman_datacenter/device_type.rb +43 -0
- data/app/models/foreman_datacenter/interface_template.rb +17 -0
- data/app/models/foreman_datacenter/manufacturer.rb +7 -0
- data/app/models/foreman_datacenter/platform.rb +16 -0
- data/app/models/foreman_datacenter/power_outlet.rb +9 -0
- data/app/models/foreman_datacenter/power_outlet_template.rb +12 -0
- data/app/models/foreman_datacenter/power_port.rb +19 -0
- data/app/models/foreman_datacenter/power_port_template.rb +12 -0
- data/app/models/foreman_datacenter/rack.rb +13 -0
- data/app/models/foreman_datacenter/rack_group.rb +9 -0
- data/app/models/foreman_datacenter/site.rb +22 -0
- data/app/views/foreman_datacenter/console_port_templates/_form.html.erb +15 -0
- data/app/views/foreman_datacenter/console_port_templates/new.html.erb +3 -0
- data/app/views/foreman_datacenter/console_ports/_for_device.html.erb +5 -0
- data/app/views/foreman_datacenter/console_ports/_form.html.erb +15 -0
- data/app/views/foreman_datacenter/console_ports/edit.html.erb +3 -0
- data/app/views/foreman_datacenter/console_ports/index.html.erb +29 -0
- data/app/views/foreman_datacenter/console_ports/new.html.erb +3 -0
- data/app/views/foreman_datacenter/console_ports/new_connection.html.erb +22 -0
- data/app/views/foreman_datacenter/console_server_port_templates/_form.html.erb +15 -0
- data/app/views/foreman_datacenter/console_server_port_templates/new.html.erb +3 -0
- data/app/views/foreman_datacenter/console_server_ports/_for_device.html.erb +5 -0
- data/app/views/foreman_datacenter/console_server_ports/_form.html.erb +15 -0
- data/app/views/foreman_datacenter/console_server_ports/edit.html.erb +3 -0
- data/app/views/foreman_datacenter/console_server_ports/new.html.erb +3 -0
- data/app/views/foreman_datacenter/console_server_ports/new_connection.html.erb +22 -0
- data/app/views/foreman_datacenter/device_bay_templates/_form.html.erb +15 -0
- data/app/views/foreman_datacenter/device_bay_templates/new.html.erb +3 -0
- data/app/views/foreman_datacenter/device_bays/_form.html.erb +15 -0
- data/app/views/foreman_datacenter/device_bays/edit.html.erb +3 -0
- data/app/views/foreman_datacenter/device_bays/new.html.erb +3 -0
- data/app/views/foreman_datacenter/device_bays/populate_new.html.erb +21 -0
- data/app/views/foreman_datacenter/device_interface_connections/_form.html.erb +72 -0
- data/app/views/foreman_datacenter/device_interface_connections/_interfaces.html.erb +5 -0
- data/app/views/foreman_datacenter/device_interface_connections/index.html.erb +32 -0
- data/app/views/foreman_datacenter/device_interface_connections/new.html.erb +7 -0
- data/app/views/foreman_datacenter/device_interfaces/_form.html.erb +22 -0
- data/app/views/foreman_datacenter/device_interfaces/edit.html.erb +3 -0
- data/app/views/foreman_datacenter/device_interfaces/new.html.erb +3 -0
- data/app/views/foreman_datacenter/device_modules/_form.html.erb +17 -0
- data/app/views/foreman_datacenter/device_modules/edit.html.erb +3 -0
- data/app/views/foreman_datacenter/device_modules/new.html.erb +3 -0
- data/app/views/foreman_datacenter/device_roles/_form.html.erb +11 -0
- data/app/views/foreman_datacenter/device_roles/edit.html.erb +3 -0
- data/app/views/foreman_datacenter/device_roles/index.html.erb +36 -0
- data/app/views/foreman_datacenter/device_roles/new.html.erb +3 -0
- data/app/views/foreman_datacenter/device_roles/show.html.erb +56 -0
- data/app/views/foreman_datacenter/device_types/_form.html.erb +26 -0
- data/app/views/foreman_datacenter/device_types/edit.html.erb +3 -0
- data/app/views/foreman_datacenter/device_types/index.html.erb +36 -0
- data/app/views/foreman_datacenter/device_types/new.html.erb +3 -0
- data/app/views/foreman_datacenter/device_types/show.html.erb +357 -0
- data/app/views/foreman_datacenter/devices/_console_port.html.erb +60 -0
- data/app/views/foreman_datacenter/devices/_console_server_port.html.erb +64 -0
- data/app/views/foreman_datacenter/devices/_device_bay.html.erb +46 -0
- data/app/views/foreman_datacenter/devices/_device_module.html.erb +16 -0
- data/app/views/foreman_datacenter/devices/_device_types.html.erb +5 -0
- data/app/views/foreman_datacenter/devices/_for_rack.html.erb +9 -0
- data/app/views/foreman_datacenter/devices/_form.html.erb +80 -0
- data/app/views/foreman_datacenter/devices/_interface.html.erb +67 -0
- data/app/views/foreman_datacenter/devices/_management_interface.html.erb +67 -0
- data/app/views/foreman_datacenter/devices/_power_outlet.html.erb +60 -0
- data/app/views/foreman_datacenter/devices/_power_port.html.erb +60 -0
- data/app/views/foreman_datacenter/devices/_racks.html.erb +5 -0
- data/app/views/foreman_datacenter/devices/edit.html.erb +5 -0
- data/app/views/foreman_datacenter/devices/index.html.erb +51 -0
- data/app/views/foreman_datacenter/devices/inventory.html.erb +66 -0
- data/app/views/foreman_datacenter/devices/new.html.erb +5 -0
- data/app/views/foreman_datacenter/devices/show.html.erb +303 -0
- data/app/views/foreman_datacenter/hosts/hosts/new_action.html.erb +1 -0
- data/app/views/foreman_datacenter/hosts/new_action.html.erb +1 -0
- data/app/views/foreman_datacenter/interface_templates/_form.html.erb +19 -0
- data/app/views/foreman_datacenter/interface_templates/new.html.erb +3 -0
- data/app/views/foreman_datacenter/layouts/layouts/new_layout.html.erb +0 -0
- data/app/views/foreman_datacenter/layouts/new_layout.html.erb +0 -0
- data/app/views/foreman_datacenter/manufacturers/_form.html.erb +7 -0
- data/app/views/foreman_datacenter/manufacturers/edit.html.erb +3 -0
- data/app/views/foreman_datacenter/manufacturers/index.html.erb +34 -0
- data/app/views/foreman_datacenter/manufacturers/new.html.erb +3 -0
- data/app/views/foreman_datacenter/manufacturers/show.html.erb +52 -0
- data/app/views/foreman_datacenter/platforms/_form.html.erb +11 -0
- data/app/views/foreman_datacenter/platforms/edit.html.erb +3 -0
- data/app/views/foreman_datacenter/platforms/index.html.erb +34 -0
- data/app/views/foreman_datacenter/platforms/new.html.erb +3 -0
- data/app/views/foreman_datacenter/platforms/show.html.erb +56 -0
- data/app/views/foreman_datacenter/power_outlet_templates/_form.html.erb +15 -0
- data/app/views/foreman_datacenter/power_outlet_templates/new.html.erb +3 -0
- data/app/views/foreman_datacenter/power_outlets/_for_device.html.erb +5 -0
- data/app/views/foreman_datacenter/power_outlets/_form.html.erb +15 -0
- data/app/views/foreman_datacenter/power_outlets/edit.html.erb +3 -0
- data/app/views/foreman_datacenter/power_outlets/new.html.erb +3 -0
- data/app/views/foreman_datacenter/power_outlets/new_connection.html.erb +22 -0
- data/app/views/foreman_datacenter/power_port_templates/_form.html.erb +15 -0
- data/app/views/foreman_datacenter/power_port_templates/new.html.erb +3 -0
- data/app/views/foreman_datacenter/power_ports/_for_device.html.erb +5 -0
- data/app/views/foreman_datacenter/power_ports/_form.html.erb +15 -0
- data/app/views/foreman_datacenter/power_ports/edit.html.erb +3 -0
- data/app/views/foreman_datacenter/power_ports/index.html.erb +29 -0
- data/app/views/foreman_datacenter/power_ports/new.html.erb +3 -0
- data/app/views/foreman_datacenter/power_ports/new_connection.html.erb +22 -0
- data/app/views/foreman_datacenter/rack_groups/_form.html.erb +11 -0
- data/app/views/foreman_datacenter/rack_groups/edit.html.erb +3 -0
- data/app/views/foreman_datacenter/rack_groups/index.html.erb +36 -0
- data/app/views/foreman_datacenter/rack_groups/new.html.erb +3 -0
- data/app/views/foreman_datacenter/rack_groups/show.html.erb +56 -0
- data/app/views/foreman_datacenter/racks/_form.html.erb +25 -0
- data/app/views/foreman_datacenter/racks/_rack_groups.html.erb +8 -0
- data/app/views/foreman_datacenter/racks/edit.html.erb +5 -0
- data/app/views/foreman_datacenter/racks/index.html.erb +50 -0
- data/app/views/foreman_datacenter/racks/new.html.erb +5 -0
- data/app/views/foreman_datacenter/racks/show.html.erb +67 -0
- data/app/views/foreman_datacenter/shared/_rack_device_select.html.erb +22 -0
- data/app/views/foreman_datacenter/sites/_form.html.erb +12 -0
- data/app/views/foreman_datacenter/sites/edit.html.erb +3 -0
- data/app/views/foreman_datacenter/sites/index.html.erb +40 -0
- data/app/views/foreman_datacenter/sites/new.html.erb +3 -0
- data/app/views/foreman_datacenter/sites/show.html.erb +98 -0
- data/config/routes.rb +92 -0
- data/db/migrate/20160727161914_create_sites.rb +16 -0
- data/db/migrate/20160728123353_create_rack_groups.rb +12 -0
- data/db/migrate/20160728143149_create_racks.rb +16 -0
- data/db/migrate/20160728161636_create_platforms.rb +12 -0
- data/db/migrate/20160728162635_create_device_roles.rb +12 -0
- data/db/migrate/20160728163815_create_manufacturers.rb +12 -0
- data/db/migrate/20160728164858_create_device_types.rb +18 -0
- data/db/migrate/20160728171422_create_devices.rb +31 -0
- data/db/migrate/20160728194401_create_device_interfaces.rb +17 -0
- data/db/migrate/20160728195242_create_device_interface_connections.rb +18 -0
- data/db/migrate/20160804104103_create_interface_templates.rb +15 -0
- data/db/migrate/20160804142618_create_console_port_templates.rb +13 -0
- data/db/migrate/20160804164301_create_power_port_templates.rb +13 -0
- data/db/migrate/20160805080626_create_console_server_port_templates.rb +13 -0
- data/db/migrate/20160805084726_create_power_outlet_templates.rb +13 -0
- data/db/migrate/20160805100411_create_device_bay_templates.rb +13 -0
- data/db/migrate/20160809091611_create_device_bays.rb +16 -0
- data/db/migrate/20160809103211_create_power_outlets.rb +13 -0
- data/db/migrate/20160809104325_create_power_ports.rb +17 -0
- data/db/migrate/20160809112815_create_console_server_ports.rb +13 -0
- data/db/migrate/20160809113846_create_console_ports.rb +17 -0
- data/db/migrate/20160816224805_create_device_modules.rb +15 -0
- data/lib/foreman_datacenter.rb +4 -0
- data/lib/foreman_datacenter/engine.rb +70 -0
- data/lib/foreman_datacenter/version.rb +3 -0
- data/lib/tasks/foreman_datacenter_tasks.rake +45 -0
- data/locale/Makefile +60 -0
- data/locale/en/foreman_datacenter.po +19 -0
- data/locale/foreman_datacenter.pot +19 -0
- data/locale/gemspec.rb +2 -0
- data/test/factories/foreman_datacenter_factories.rb +5 -0
- data/test/test_plugin_helper.rb +6 -0
- data/test/unit/foreman_datacenter_test.rb +11 -0
- metadata +310 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
module ForemanDatacenter
|
|
2
|
+
class DeviceBayTemplatesController < ApplicationController
|
|
3
|
+
before_action :set_device_bay_template, only: [:destroy]
|
|
4
|
+
|
|
5
|
+
def new
|
|
6
|
+
@device_bay_template = DeviceBayTemplate.new(
|
|
7
|
+
device_type: DeviceType.find(params[:device_type_id])
|
|
8
|
+
)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def create
|
|
12
|
+
@device_bay_template = DeviceBayTemplate.new(device_bay_template_params)
|
|
13
|
+
|
|
14
|
+
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
|
+
else
|
|
18
|
+
process_error object: @device_bay_template
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def destroy
|
|
23
|
+
if @device_bay_template.destroy
|
|
24
|
+
redirect_to device_type_url(@device_bay_template.device_type),
|
|
25
|
+
notice: 'Device bay template was successfully destroyed'
|
|
26
|
+
else
|
|
27
|
+
process_error object: @device_bay_template
|
|
28
|
+
end
|
|
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
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
module ForemanDatacenter
|
|
2
|
+
class DeviceBaysController < ApplicationController
|
|
3
|
+
before_action :set_device_bay, only: [:depopulate, :populate,
|
|
4
|
+
:populate_new, :edit, :update, :destroy]
|
|
5
|
+
|
|
6
|
+
def new
|
|
7
|
+
@device_bay = DeviceBay.new(device: Device.find(params[:device_id]))
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def edit
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def create
|
|
14
|
+
@device_bay = DeviceBay.new(device_bay_params)
|
|
15
|
+
|
|
16
|
+
if @device_bay.save
|
|
17
|
+
redirect_to device_url(@device_bay.device),
|
|
18
|
+
notice: 'New device bay was successfully created'
|
|
19
|
+
else
|
|
20
|
+
process_error object: @device_bay
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def update
|
|
25
|
+
if @device_bay.update(device_bay_params)
|
|
26
|
+
redirect_to device_url(@device_bay.device),
|
|
27
|
+
notice: 'Device bay was successfully updated'
|
|
28
|
+
else
|
|
29
|
+
process_error object: @device_bay
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def destroy
|
|
34
|
+
if @device_bay.destroy
|
|
35
|
+
redirect_to device_url(@device_bay.device),
|
|
36
|
+
notice: 'Device bay was successfully destroyed'
|
|
37
|
+
else
|
|
38
|
+
process_error object: @device_bay
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def populate_new
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def populate
|
|
46
|
+
device_id = params[:device_bay][:installed_device_id]
|
|
47
|
+
if @device_bay.update(installed_device_id: device_id)
|
|
48
|
+
redirect_to device_url(@device_bay.device),
|
|
49
|
+
notice: 'Device bay was successfully populated'
|
|
50
|
+
else
|
|
51
|
+
process_error object: @device_bay
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def depopulate
|
|
56
|
+
if @device_bay.update(installed_device_id: nil)
|
|
57
|
+
redirect_to device_url(@device_bay.device),
|
|
58
|
+
notice: 'Device bay was successfully depopulated'
|
|
59
|
+
else
|
|
60
|
+
process_error object: @device_bay
|
|
61
|
+
end
|
|
62
|
+
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
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
module ForemanDatacenter
|
|
2
|
+
class DeviceInterfaceConnectionsController < ApplicationController
|
|
3
|
+
before_action :set_device_interface_connection,
|
|
4
|
+
only: [:destroy, :planned, :connected]
|
|
5
|
+
|
|
6
|
+
def index
|
|
7
|
+
@device_interface_connections = DeviceInterfaceConnection.includes(
|
|
8
|
+
:second_interface, first_interface: [:device]
|
|
9
|
+
)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def new
|
|
13
|
+
@device_interface_connection = DeviceInterfaceConnection.connected.new(
|
|
14
|
+
first_interface: get_device_interface
|
|
15
|
+
)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def create
|
|
19
|
+
@device_interface_connection = DeviceInterfaceConnection.new(device_interface_connection_params)
|
|
20
|
+
@device_interface_connection.first_interface = get_device_interface
|
|
21
|
+
|
|
22
|
+
if @device_interface_connection.save
|
|
23
|
+
redirect_to device_url(@device_interface_connection.first_interface.device),
|
|
24
|
+
notice: 'Connection was successfully created.'
|
|
25
|
+
else
|
|
26
|
+
process_error object: @device_interface_connection
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def destroy
|
|
31
|
+
@device_interface_connection.destroy
|
|
32
|
+
head :ok
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def planned
|
|
36
|
+
@device_interface_connection.planned!
|
|
37
|
+
head :ok
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def connected
|
|
41
|
+
@device_interface_connection.connected!
|
|
42
|
+
head :ok
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def interfaces
|
|
46
|
+
@interfaces = Device.find(params[:device_id]).free_interfaces
|
|
47
|
+
render partial: 'interfaces'
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
private
|
|
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
|
+
def get_device_interface
|
|
62
|
+
DeviceInterface.find(params[:device_interface_id])
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
module ForemanDatacenter
|
|
2
|
+
class DeviceInterfacesController < ApplicationController
|
|
3
|
+
before_action :set_device_interface, only: [:edit, :update, :destroy]
|
|
4
|
+
|
|
5
|
+
def new
|
|
6
|
+
device = Device.find(params[:device_id])
|
|
7
|
+
@device_interface = DeviceInterface.new(
|
|
8
|
+
device: device,
|
|
9
|
+
form_factor: DeviceInterface::DEFAULT_FORM_FACTOR
|
|
10
|
+
)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def new_management
|
|
14
|
+
@device_interface = DeviceInterface.new(
|
|
15
|
+
device: Device.find(params[:device_id]),
|
|
16
|
+
form_factor: DeviceInterface::DEFAULT_FORM_FACTOR,
|
|
17
|
+
mgmt_only: true
|
|
18
|
+
)
|
|
19
|
+
render :new
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def edit
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def create
|
|
26
|
+
@device_interface = DeviceInterface.new(device_interface_params)
|
|
27
|
+
|
|
28
|
+
if @device_interface.save
|
|
29
|
+
redirect_to device_url(id: @device_interface.device_id),
|
|
30
|
+
notice: 'Device interface was successfully created.'
|
|
31
|
+
else
|
|
32
|
+
process_error object: @device_interface
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def update
|
|
37
|
+
if @device_interface.update(device_interface_params)
|
|
38
|
+
redirect_to device_url(id: @device_interface.device_id),
|
|
39
|
+
notice: 'Device interface was successfully updated.'
|
|
40
|
+
else
|
|
41
|
+
process_error object: @device_interface
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def destroy
|
|
46
|
+
if @device_interface.destroy
|
|
47
|
+
redirect_to device_url(id: @device_interface.device_id),
|
|
48
|
+
notice: 'Device interface was successfully destroyed.'
|
|
49
|
+
else
|
|
50
|
+
process_error object: @device_interface
|
|
51
|
+
end
|
|
52
|
+
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)
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
module ForemanDatacenter
|
|
2
|
+
class DeviceModulesController < ApplicationController
|
|
3
|
+
before_action :set_device_module, only: [:edit, :update, :destroy]
|
|
4
|
+
|
|
5
|
+
def new
|
|
6
|
+
@device_module = DeviceModule.new(
|
|
7
|
+
device: Device.find(params[:device_id])
|
|
8
|
+
)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def edit
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def create
|
|
15
|
+
@device_module = DeviceModule.new(device_module_params)
|
|
16
|
+
|
|
17
|
+
if @device_module.save
|
|
18
|
+
redirect_to inventory_device_url(id: @device_module.device_id),
|
|
19
|
+
notice: 'Device module was successfully created.'
|
|
20
|
+
else
|
|
21
|
+
process_error object: @device_module
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def update
|
|
26
|
+
if @device_module.update(device_module_params)
|
|
27
|
+
redirect_to inventory_device_url(id: @device_module.device_id),
|
|
28
|
+
notice: 'Device module was successfully updated.'
|
|
29
|
+
else
|
|
30
|
+
process_error object: @device_module
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def destroy
|
|
35
|
+
if @device_module.destroy
|
|
36
|
+
redirect_to inventory_device_url(id: @device_module.device_id),
|
|
37
|
+
notice: 'Device module was successfully destroyed.'
|
|
38
|
+
else
|
|
39
|
+
process_error object: @device_module
|
|
40
|
+
end
|
|
41
|
+
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
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
module ForemanDatacenter
|
|
2
|
+
class DeviceRolesController < ApplicationController
|
|
3
|
+
before_action :set_device_role, only: [:show, :edit, :update, :destroy]
|
|
4
|
+
|
|
5
|
+
def index
|
|
6
|
+
@device_roles = DeviceRole.includes(:devices).all
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def show
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def new
|
|
13
|
+
@device_role = DeviceRole.new
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def edit
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def create
|
|
20
|
+
@device_role = DeviceRole.new(device_role_params)
|
|
21
|
+
|
|
22
|
+
if @device_role.save
|
|
23
|
+
process_success object: @device_role
|
|
24
|
+
else
|
|
25
|
+
process_error object: @device_role
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def update
|
|
30
|
+
if @device_role.update(device_role_params)
|
|
31
|
+
process_success object: @device_role
|
|
32
|
+
else
|
|
33
|
+
process_error object: @device_role
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def destroy
|
|
38
|
+
if @device_role.destroy
|
|
39
|
+
process_success object: @device_role
|
|
40
|
+
else
|
|
41
|
+
process_error object: @device_role
|
|
42
|
+
end
|
|
43
|
+
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
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
module ForemanDatacenter
|
|
2
|
+
class DeviceTypesController < ApplicationController
|
|
3
|
+
before_action :set_device_type, only: [:show, :edit, :update, :destroy]
|
|
4
|
+
|
|
5
|
+
def index
|
|
6
|
+
@device_types = DeviceType.includes(:manufacturer).all
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def show
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def new
|
|
13
|
+
@device_type = DeviceType.new(u_height: 1, is_full_depth: true,
|
|
14
|
+
is_console_server: false, is_pdu: false,
|
|
15
|
+
is_network_device: true)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def edit
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def create
|
|
22
|
+
@device_type = DeviceType.new(device_type_params)
|
|
23
|
+
|
|
24
|
+
if @device_type.save
|
|
25
|
+
process_success object: @device_type
|
|
26
|
+
else
|
|
27
|
+
process_error object: @device_type
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def update
|
|
32
|
+
if @device_type.update(device_type_params)
|
|
33
|
+
redirect_to device_type_url(@device_type),
|
|
34
|
+
notice: 'Device type was successfully updated'
|
|
35
|
+
else
|
|
36
|
+
process_error object: @device_type
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def destroy
|
|
41
|
+
if @device_type.destroy
|
|
42
|
+
process_success object: @device_type
|
|
43
|
+
else
|
|
44
|
+
process_error object: @device_type
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
private
|
|
49
|
+
|
|
50
|
+
def set_device_type
|
|
51
|
+
@device_type = DeviceType.find(params[:id])
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def device_type_params
|
|
55
|
+
params[:device_type].permit(:manufacturer_id, :model, :u_height,
|
|
56
|
+
:is_full_depth, :is_console_server,
|
|
57
|
+
:is_pdu, :is_network_device, :subdevice_role)
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
module ForemanDatacenter
|
|
2
|
+
class DevicesController < ApplicationController
|
|
3
|
+
before_action :set_device, only: [:edit, :update, :destroy, :inventory]
|
|
4
|
+
|
|
5
|
+
def index
|
|
6
|
+
@devices = Device.includes(:device_role, :device_type, rack: [:site]).all
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def show
|
|
10
|
+
@device = Device.includes(
|
|
11
|
+
device_bays: [:installed_device],
|
|
12
|
+
console_server_ports: [:console_port],
|
|
13
|
+
power_outlets: [:power_port],
|
|
14
|
+
console_ports: [:console_server_port],
|
|
15
|
+
power_ports: [:power_outlet]
|
|
16
|
+
).find(params[:id])
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def inventory
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def new
|
|
23
|
+
@device = Device.new
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def edit
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def create
|
|
30
|
+
@device = Device.new(device_params)
|
|
31
|
+
|
|
32
|
+
if @device.save
|
|
33
|
+
process_success object: @device
|
|
34
|
+
else
|
|
35
|
+
process_error object: @device
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def update
|
|
40
|
+
if @device.update(device_params)
|
|
41
|
+
process_success object: @device
|
|
42
|
+
else
|
|
43
|
+
process_error object: @device
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def destroy
|
|
48
|
+
if @device.destroy
|
|
49
|
+
process_success object: @device
|
|
50
|
+
else
|
|
51
|
+
process_error object: @device
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def device_types
|
|
56
|
+
@manufacturer_id = params[:manufacturer_id]
|
|
57
|
+
render partial: 'device_types'
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def racks
|
|
61
|
+
@site_id = params[:site_id]
|
|
62
|
+
render partial: 'racks'
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def for_rack
|
|
66
|
+
@rack = ForemanDatacenter::Rack.find(params[:rack_id])
|
|
67
|
+
render partial: 'for_rack'
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
private
|
|
71
|
+
|
|
72
|
+
def set_device
|
|
73
|
+
@device = Device.find(params[:id])
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def device_params
|
|
77
|
+
params[:device].permit(:device_type_id, :device_role_id, :platform_id,
|
|
78
|
+
:name, :serial, :rack_id, :position, :face,
|
|
79
|
+
:status, :primary_ip4, :primary_ip6, :comments)
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|