foreman_datacenter 0.1.54 → 0.1.55
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/foreman_datacenter/modal.js +75 -0
- data/app/assets/javascripts/foreman_datacenter/modal_bck.js +21 -0
- data/app/assets/stylesheets/foreman_datacenter/datacenter.css +3 -2
- data/app/assets/stylesheets/foreman_datacenter/device_roles.css +0 -1
- data/app/assets/stylesheets/foreman_datacenter/devices.css +2 -0
- data/app/assets/stylesheets/foreman_datacenter/modal.css +109 -0
- data/app/assets/stylesheets/foreman_datacenter/title_filter.css +3 -0
- data/app/controllers/api/v2/foreman_datacenter/base_controller.rb +77 -0
- data/app/controllers/api/v2/foreman_datacenter/console_port_templates_controller.rb +48 -0
- data/app/controllers/api/v2/foreman_datacenter/console_ports_controller.rb +95 -0
- data/app/controllers/api/v2/foreman_datacenter/console_server_port_templates_controller.rb +48 -0
- data/app/controllers/api/v2/foreman_datacenter/console_server_ports_controller.rb +77 -0
- data/app/controllers/api/v2/foreman_datacenter/device_bay_templates_controller.rb +49 -0
- data/app/controllers/api/v2/foreman_datacenter/device_bays_controller.rb +75 -0
- data/app/controllers/api/v2/foreman_datacenter/device_interface_connections_controller.rb +71 -0
- data/app/controllers/api/v2/foreman_datacenter/device_interfaces_controller.rb +62 -0
- data/app/controllers/api/v2/foreman_datacenter/device_modules_controller.rb +58 -0
- data/app/controllers/api/v2/foreman_datacenter/device_roles_controller.rb +58 -0
- data/app/controllers/api/v2/foreman_datacenter/device_types_controller.rb +67 -0
- data/app/controllers/api/v2/foreman_datacenter/devices_controller.rb +87 -0
- data/app/controllers/api/v2/foreman_datacenter/devices_controller.rb~ +87 -0
- data/app/controllers/api/v2/foreman_datacenter/interface_templates_controller.rb +50 -0
- data/app/controllers/api/v2/foreman_datacenter/management_devices_controller.rb +58 -0
- data/app/controllers/api/v2/foreman_datacenter/manufacturers_controller.rb +57 -0
- data/app/controllers/api/v2/foreman_datacenter/platforms_controller.rb +58 -0
- data/app/controllers/api/v2/foreman_datacenter/power_outlet_templates_controller.rb +49 -0
- data/app/controllers/api/v2/foreman_datacenter/power_outlets_controller.rb +77 -0
- data/app/controllers/api/v2/foreman_datacenter/power_port_templates_controller.rb +49 -0
- data/app/controllers/api/v2/foreman_datacenter/power_ports_controller.rb +94 -0
- data/app/controllers/api/v2/foreman_datacenter/rack_groups_controller.rb +64 -0
- data/app/controllers/api/v2/foreman_datacenter/racks_controller.rb +62 -0
- data/app/controllers/api/v2/foreman_datacenter/sites_controller.rb +65 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/comment.rb +16 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/console_port.rb +15 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/console_port_template.rb +15 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/console_server_port.rb +15 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/console_server_port_template.rb +15 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/device.rb +18 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/device_bay.rb +15 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/device_bay_template.rb +15 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/device_interface.rb +17 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/device_interface_connection.rb +15 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/device_module.rb +15 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/device_role.rb +15 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/device_type.rb +17 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/interface_template.rb +15 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/management_device.rb +15 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/manufacturer.rb +15 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/platform.rb +15 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/power_outlet.rb +15 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/power_outlet_template.rb +15 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/power_port.rb +15 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/power_port_template.rb +15 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/rack.rb +16 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/rack_group.rb +15 -0
- data/app/controllers/concerns/foreman_datacenter/controller/parameters/site.rb +16 -0
- data/app/controllers/foreman_datacenter/application_controller.rb +99 -0
- data/app/controllers/foreman_datacenter/comments_controller.rb +38 -53
- data/app/controllers/foreman_datacenter/console_port_templates_controller.rb +9 -19
- data/app/controllers/foreman_datacenter/console_ports_controller.rb +14 -23
- data/app/controllers/foreman_datacenter/console_server_port_templates_controller.rb +9 -19
- data/app/controllers/foreman_datacenter/console_server_ports_controller.rb +11 -19
- data/app/controllers/foreman_datacenter/device_bay_templates_controller.rb +9 -19
- data/app/controllers/foreman_datacenter/device_bays_controller.rb +8 -15
- data/app/controllers/foreman_datacenter/device_interface_connections_controller.rb +10 -19
- data/app/controllers/foreman_datacenter/device_interfaces_controller.rb +8 -17
- data/app/controllers/foreman_datacenter/device_modules_controller.rb +6 -14
- data/app/controllers/foreman_datacenter/device_roles_controller.rb +15 -16
- data/app/controllers/foreman_datacenter/device_types_controller.rb +17 -21
- data/app/controllers/foreman_datacenter/devices_controller.rb +35 -45
- data/app/controllers/foreman_datacenter/interface_templates_controller.rb +6 -17
- data/app/controllers/foreman_datacenter/management_devices_controller.rb +5 -14
- data/app/controllers/foreman_datacenter/manufacturers_controller.rb +14 -15
- data/app/controllers/foreman_datacenter/platforms_controller.rb +12 -14
- data/app/controllers/foreman_datacenter/power_outlet_templates_controller.rb +7 -17
- data/app/controllers/foreman_datacenter/power_outlets_controller.rb +7 -14
- data/app/controllers/foreman_datacenter/power_port_templates_controller.rb +9 -19
- data/app/controllers/foreman_datacenter/power_ports_controller.rb +8 -16
- data/app/controllers/foreman_datacenter/rack_groups_controller.rb +29 -12
- data/app/controllers/foreman_datacenter/racks_controller.rb +29 -15
- data/app/controllers/foreman_datacenter/sites_controller.rb +34 -17
- data/app/helpers/foreman_datacenter/application_helper.rb +66 -0
- data/app/helpers/foreman_datacenter/comments_helper.rb +8 -0
- data/app/models/foreman_datacenter/comment.rb +2 -2
- data/app/models/foreman_datacenter/console_port.rb +10 -0
- data/app/models/foreman_datacenter/console_port_template.rb +5 -0
- data/app/models/foreman_datacenter/console_server_port.rb +6 -0
- data/app/models/foreman_datacenter/console_server_port_template.rb +5 -0
- data/app/models/foreman_datacenter/device.rb +20 -26
- data/app/models/foreman_datacenter/device_bay.rb +5 -0
- data/app/models/foreman_datacenter/device_bay_template.rb +5 -0
- data/app/models/foreman_datacenter/device_interface.rb +5 -0
- data/app/models/foreman_datacenter/device_interface_connection.rb +6 -0
- data/app/models/foreman_datacenter/device_module.rb +5 -0
- data/app/models/foreman_datacenter/device_role.rb +14 -0
- data/app/models/foreman_datacenter/device_type.rb +31 -6
- data/app/models/foreman_datacenter/interface_template.rb +5 -0
- data/app/models/foreman_datacenter/management_device.rb +9 -0
- data/app/models/foreman_datacenter/manufacturer.rb +18 -0
- data/app/models/foreman_datacenter/platform.rb +15 -0
- data/app/models/foreman_datacenter/power_outlet.rb +5 -0
- data/app/models/foreman_datacenter/power_outlet_template.rb +5 -0
- data/app/models/foreman_datacenter/power_port.rb +10 -0
- data/app/models/foreman_datacenter/power_port_template.rb +5 -0
- data/app/models/foreman_datacenter/rack.rb +19 -1
- data/app/models/foreman_datacenter/rack_group.rb +21 -0
- data/app/models/foreman_datacenter/site.rb +36 -2
- data/app/views/api/v2/foreman_datacenter/console_port_templates/base.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/console_port_templates/create.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/console_port_templates/index.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/console_port_templates/main.json.rabl +5 -0
- data/app/views/api/v2/foreman_datacenter/console_port_templates/show.json.rabl +7 -0
- data/app/views/api/v2/foreman_datacenter/console_ports/base.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/console_ports/create.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/console_ports/index.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/console_ports/main.json.rabl +5 -0
- data/app/views/api/v2/foreman_datacenter/console_ports/show.json.rabl +11 -0
- data/app/views/api/v2/foreman_datacenter/console_ports/update.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/console_server_port_templates/base.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/console_server_port_templates/create.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/console_server_port_templates/index.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/console_server_port_templates/main.json.rabl +5 -0
- data/app/views/api/v2/foreman_datacenter/console_server_port_templates/show.json.rabl +11 -0
- data/app/views/api/v2/foreman_datacenter/console_server_ports/base.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/console_server_ports/create.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/console_server_ports/index.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/console_server_ports/main.json.rabl +5 -0
- data/app/views/api/v2/foreman_datacenter/console_server_ports/show.json.rabl +7 -0
- data/app/views/api/v2/foreman_datacenter/console_server_ports/update.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_bay_templates/base.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_bay_templates/create.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_bay_templates/index.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_bay_templates/main.json.rabl +5 -0
- data/app/views/api/v2/foreman_datacenter/device_bay_templates/show.json.rabl +7 -0
- data/app/views/api/v2/foreman_datacenter/device_bays/base.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_bays/create.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_bays/index.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_bays/main.json.rabl +5 -0
- data/app/views/api/v2/foreman_datacenter/device_bays/show.json.rabl +7 -0
- data/app/views/api/v2/foreman_datacenter/device_bays/update.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_interface_connections/base.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_interface_connections/create.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_interface_connections/index.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_interface_connections/main.json.rabl +5 -0
- data/app/views/api/v2/foreman_datacenter/device_interface_connections/show.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_interface_connections/update.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_interfaces/base.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_interfaces/create.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_interfaces/index.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_interfaces/main.json.rabl +5 -0
- data/app/views/api/v2/foreman_datacenter/device_interfaces/show.json.rabl +7 -0
- data/app/views/api/v2/foreman_datacenter/device_interfaces/update.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_modules/base.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_modules/create.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_modules/index.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_modules/main.json.rabl +5 -0
- data/app/views/api/v2/foreman_datacenter/device_modules/show.json.rabl +7 -0
- data/app/views/api/v2/foreman_datacenter/device_modules/update.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_roles/base.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_roles/create.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_roles/index.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_roles/main.json.rabl +5 -0
- data/app/views/api/v2/foreman_datacenter/device_roles/show.json.rabl +7 -0
- data/app/views/api/v2/foreman_datacenter/device_roles/update.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_types/base.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_types/create.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_types/index.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/device_types/main.json.rabl +5 -0
- data/app/views/api/v2/foreman_datacenter/device_types/show.json.rabl +31 -0
- data/app/views/api/v2/foreman_datacenter/device_types/update.json.rabl +7 -0
- data/app/views/api/v2/foreman_datacenter/devices/base.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/devices/create.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/devices/index.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/devices/main.json.rabl +5 -0
- data/app/views/api/v2/foreman_datacenter/devices/show.json.rabl +63 -0
- data/app/views/api/v2/foreman_datacenter/devices/update.json.rabl +7 -0
- data/app/views/api/v2/foreman_datacenter/interface_templates/base.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/interface_templates/create.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/interface_templates/index.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/interface_templates/main.json.rabl +5 -0
- data/app/views/api/v2/foreman_datacenter/interface_templates/show.json.rabl +7 -0
- data/app/views/api/v2/foreman_datacenter/management_devices/base.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/management_devices/create.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/management_devices/index.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/management_devices/main.json.rabl +5 -0
- data/app/views/api/v2/foreman_datacenter/management_devices/show.json.rabl +7 -0
- data/app/views/api/v2/foreman_datacenter/management_devices/update.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/manufacturers/base.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/manufacturers/create.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/manufacturers/index.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/manufacturers/main.json.rabl +5 -0
- data/app/views/api/v2/foreman_datacenter/manufacturers/show.json.rabl +7 -0
- data/app/views/api/v2/foreman_datacenter/manufacturers/update.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/platforms/base.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/platforms/create.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/platforms/index.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/platforms/main.json.rabl +5 -0
- data/app/views/api/v2/foreman_datacenter/platforms/show.json.rabl +7 -0
- data/app/views/api/v2/foreman_datacenter/platforms/update.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/power_outlet_templates/base.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/power_outlet_templates/create.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/power_outlet_templates/index.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/power_outlet_templates/main.json.rabl +5 -0
- data/app/views/api/v2/foreman_datacenter/power_outlet_templates/show.json.rabl +7 -0
- data/app/views/api/v2/foreman_datacenter/power_outlets/base.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/power_outlets/create.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/power_outlets/index.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/power_outlets/main.json.rabl +5 -0
- data/app/views/api/v2/foreman_datacenter/power_outlets/show.json.rabl +11 -0
- data/app/views/api/v2/foreman_datacenter/power_outlets/update.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/power_port_templates/base.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/power_port_templates/create.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/power_port_templates/index.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/power_port_templates/main.json.rabl +5 -0
- data/app/views/api/v2/foreman_datacenter/power_port_templates/show.json.rabl +7 -0
- data/app/views/api/v2/foreman_datacenter/power_ports/base.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/power_ports/create.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/power_ports/index.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/power_ports/main.json.rabl +5 -0
- data/app/views/api/v2/foreman_datacenter/power_ports/show.json.rabl +11 -0
- data/app/views/api/v2/foreman_datacenter/power_ports/update.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/rack_groups/base.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/rack_groups/create.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/rack_groups/index.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/rack_groups/main.json.rabl +5 -0
- data/app/views/api/v2/foreman_datacenter/rack_groups/show.json.rabl +7 -0
- data/app/views/api/v2/foreman_datacenter/rack_groups/update.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/racks/base.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/racks/create.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/racks/index.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/racks/main.json.rabl +5 -0
- data/app/views/api/v2/foreman_datacenter/racks/show.json.rabl +11 -0
- data/app/views/api/v2/foreman_datacenter/racks/update.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/sites/base.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/sites/create.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/sites/index.json.rabl +3 -0
- data/app/views/api/v2/foreman_datacenter/sites/main.json.rabl +5 -0
- data/app/views/api/v2/foreman_datacenter/sites/show.json.rabl +11 -0
- data/app/views/api/v2/foreman_datacenter/sites/update.json.rabl +3 -0
- data/app/views/foreman_datacenter/comments/_children.html.erb +2 -2
- data/app/views/foreman_datacenter/comments/_comments.html.erb +8 -10
- data/app/views/foreman_datacenter/comments/_form.html.erb +27 -39
- data/app/views/foreman_datacenter/comments/_item.html.erb +4 -4
- data/app/views/foreman_datacenter/comments/_list.html.erb +26 -0
- data/app/views/foreman_datacenter/comments/edit.html.erb +3 -2
- data/app/views/foreman_datacenter/comments/new.html.erb +3 -2
- data/app/views/foreman_datacenter/common/404.html.erb +10 -0
- data/app/views/foreman_datacenter/console_port_templates/_form.html.erb +4 -3
- data/app/views/foreman_datacenter/console_port_templates/new.html.erb +3 -1
- data/app/views/foreman_datacenter/console_ports/_form.html.erb +4 -3
- data/app/views/foreman_datacenter/console_ports/edit.html.erb +3 -1
- data/app/views/foreman_datacenter/console_ports/index.html.erb +25 -26
- data/app/views/foreman_datacenter/console_ports/new.html.erb +3 -1
- data/app/views/foreman_datacenter/console_ports/new_connection.html.erb +2 -0
- data/app/views/foreman_datacenter/console_ports/welcome.html.erb +15 -0
- data/app/views/foreman_datacenter/console_server_port_templates/_form.html.erb +4 -3
- data/app/views/foreman_datacenter/console_server_port_templates/new.html.erb +3 -1
- data/app/views/foreman_datacenter/console_server_ports/_form.html.erb +4 -3
- data/app/views/foreman_datacenter/console_server_ports/edit.html.erb +3 -1
- data/app/views/foreman_datacenter/console_server_ports/new.html.erb +3 -1
- data/app/views/foreman_datacenter/console_server_ports/new_connection.html.erb +3 -1
- data/app/views/foreman_datacenter/device_bay_templates/_form.html.erb +4 -3
- data/app/views/foreman_datacenter/device_bay_templates/new.html.erb +3 -1
- data/app/views/foreman_datacenter/device_bays/_form.html.erb +4 -3
- data/app/views/foreman_datacenter/device_bays/edit.html.erb +3 -1
- data/app/views/foreman_datacenter/device_bays/new.html.erb +3 -1
- data/app/views/foreman_datacenter/device_bays/populate_new.html.erb +12 -4
- data/app/views/foreman_datacenter/device_interface_connections/_form.html.erb +20 -14
- data/app/views/foreman_datacenter/device_interface_connections/index.html.erb +29 -29
- data/app/views/foreman_datacenter/device_interface_connections/new.html.erb +3 -1
- data/app/views/foreman_datacenter/device_interface_connections/welcome.html.erb +15 -0
- data/app/views/foreman_datacenter/device_interfaces/_form.html.erb +6 -5
- data/app/views/foreman_datacenter/device_interfaces/edit.html.erb +3 -1
- data/app/views/foreman_datacenter/device_interfaces/new.html.erb +3 -1
- data/app/views/foreman_datacenter/device_modules/_form.html.erb +4 -3
- data/app/views/foreman_datacenter/device_modules/edit.html.erb +3 -1
- data/app/views/foreman_datacenter/device_modules/new.html.erb +3 -1
- data/app/views/foreman_datacenter/device_roles/edit.html.erb +3 -1
- data/app/views/foreman_datacenter/device_roles/index.html.erb +26 -16
- data/app/views/foreman_datacenter/device_roles/new.html.erb +3 -1
- data/app/views/foreman_datacenter/device_roles/show.html.erb +42 -16
- data/app/views/foreman_datacenter/device_roles/welcome.html.erb +2 -0
- data/app/views/foreman_datacenter/device_types/_form.html.erb +10 -10
- data/app/views/foreman_datacenter/device_types/edit.html.erb +3 -1
- data/app/views/foreman_datacenter/device_types/index.html.erb +30 -16
- data/app/views/foreman_datacenter/device_types/new.html.erb +3 -1
- data/app/views/foreman_datacenter/device_types/show.html.erb +178 -170
- data/app/views/foreman_datacenter/device_types/welcome.html.erb +2 -0
- data/app/views/foreman_datacenter/devices/_aracks.html.erb +2 -2
- data/app/views/foreman_datacenter/devices/_console_port.html.erb +1 -1
- data/app/views/foreman_datacenter/devices/_console_server_port.html.erb +1 -1
- data/app/views/foreman_datacenter/devices/_device_bay.html.erb +1 -1
- data/app/views/foreman_datacenter/devices/_device_module.html.erb +2 -2
- data/app/views/foreman_datacenter/devices/_device_types.html.erb +3 -3
- data/app/views/foreman_datacenter/devices/_for_rack.html.erb +2 -2
- data/app/views/foreman_datacenter/devices/_form.html.erb +2 -4
- data/app/views/foreman_datacenter/devices/_power_outlet.html.erb +1 -1
- data/app/views/foreman_datacenter/devices/_racks.html.erb +3 -3
- data/app/views/foreman_datacenter/devices/edit.html.erb +3 -1
- data/app/views/foreman_datacenter/devices/index.html.erb +40 -23
- data/app/views/foreman_datacenter/devices/inventory.html.erb +17 -14
- data/app/views/foreman_datacenter/devices/new.html.erb +3 -1
- data/app/views/foreman_datacenter/devices/show.html.erb +132 -114
- data/app/views/foreman_datacenter/devices/welcome.html.erb +2 -0
- data/app/views/foreman_datacenter/interface_templates/_form.html.erb +4 -3
- data/app/views/foreman_datacenter/interface_templates/new.html.erb +3 -1
- data/app/views/foreman_datacenter/management_devices/_form.html.erb +4 -3
- data/app/views/foreman_datacenter/management_devices/edit.html.erb +3 -1
- data/app/views/foreman_datacenter/management_devices/new.html.erb +3 -1
- data/app/views/foreman_datacenter/manufacturers/edit.html.erb +3 -1
- data/app/views/foreman_datacenter/manufacturers/index.html.erb +30 -15
- data/app/views/foreman_datacenter/manufacturers/new.html.erb +3 -1
- data/app/views/foreman_datacenter/manufacturers/show.html.erb +54 -24
- data/app/views/foreman_datacenter/manufacturers/welcome.html.erb +2 -0
- data/app/views/foreman_datacenter/platforms/edit.html.erb +3 -1
- data/app/views/foreman_datacenter/platforms/index.html.erb +27 -15
- data/app/views/foreman_datacenter/platforms/new.html.erb +3 -1
- data/app/views/foreman_datacenter/platforms/show.html.erb +43 -17
- data/app/views/foreman_datacenter/platforms/welcome.html.erb +2 -0
- data/app/views/foreman_datacenter/power_outlet_templates/_form.html.erb +4 -3
- data/app/views/foreman_datacenter/power_outlet_templates/new.html.erb +3 -1
- data/app/views/foreman_datacenter/power_outlets/_form.html.erb +4 -3
- data/app/views/foreman_datacenter/power_outlets/edit.html.erb +3 -1
- data/app/views/foreman_datacenter/power_outlets/new.html.erb +3 -1
- data/app/views/foreman_datacenter/power_outlets/new_connection.html.erb +3 -1
- data/app/views/foreman_datacenter/power_port_templates/_form.html.erb +4 -3
- data/app/views/foreman_datacenter/power_port_templates/new.html.erb +3 -1
- data/app/views/foreman_datacenter/power_ports/_form.html.erb +4 -3
- data/app/views/foreman_datacenter/power_ports/edit.html.erb +3 -1
- data/app/views/foreman_datacenter/power_ports/index.html.erb +26 -26
- data/app/views/foreman_datacenter/power_ports/new.html.erb +3 -1
- data/app/views/foreman_datacenter/power_ports/new_connection.html.erb +2 -0
- data/app/views/foreman_datacenter/power_ports/welcome.html.erb +15 -0
- data/app/views/foreman_datacenter/rack_groups/edit.html.erb +3 -1
- data/app/views/foreman_datacenter/rack_groups/index.html.erb +31 -17
- data/app/views/foreman_datacenter/rack_groups/move.html.erb +24 -0
- data/app/views/foreman_datacenter/rack_groups/new.html.erb +3 -1
- data/app/views/foreman_datacenter/rack_groups/show.html.erb +80 -55
- data/app/views/foreman_datacenter/racks/_device_position.html.erb +2 -2
- data/app/views/foreman_datacenter/racks/_form.html.erb +18 -18
- data/app/views/foreman_datacenter/racks/_rack_groups.html.erb +6 -6
- data/app/views/foreman_datacenter/racks/_unpositioned_devices.html.erb +2 -2
- data/app/views/foreman_datacenter/racks/edit.html.erb +3 -1
- data/app/views/foreman_datacenter/racks/index.html.erb +37 -27
- data/app/views/foreman_datacenter/racks/move.html.erb +24 -0
- data/app/views/foreman_datacenter/racks/new.html.erb +3 -1
- data/app/views/foreman_datacenter/racks/show.html.erb +47 -30
- data/app/views/foreman_datacenter/shared/_aa.html.erb +1 -0
- data/app/views/foreman_datacenter/shared/_modal.html.erb +28 -0
- data/app/views/foreman_datacenter/shared/_rack_device_select.html.erb +4 -4
- data/app/views/foreman_datacenter/sites/_form.html.erb +1 -0
- data/app/views/foreman_datacenter/sites/edit.html.erb +3 -1
- data/app/views/foreman_datacenter/sites/index.html.erb +30 -18
- data/app/views/foreman_datacenter/sites/move.html.erb +27 -0
- data/app/views/foreman_datacenter/sites/new.html.erb +3 -1
- data/app/views/foreman_datacenter/sites/show.html.erb +86 -56
- data/config/routes.rb +12 -1
- data/lib/foreman_datacenter/engine.rb +13 -1
- data/lib/foreman_datacenter/version.rb +1 -1
- data/test/controllers/foreman_datacenter/device_types_contoller_test.rb +91 -0
- data/test/controllers/foreman_datacenter/manufacturers_contoller_test.rb +97 -0
- data/test/controllers/foreman_datacenter/platforms_contoller_test.rb +97 -0
- data/test/controllers/foreman_datacenter/power_port_templates_contoller_test.rb +53 -0
- data/test/controllers/foreman_datacenter/rack_groups_contoller_test.rb +85 -91
- data/test/controllers/foreman_datacenter/racks_contoller_test.rb +65 -72
- data/test/controllers/foreman_datacenter/sites_contoller_test.rb +107 -71
- data/test/datacenter_helper.rb +4 -0
- data/test/factories/device_type.rb +13 -0
- data/test/factories/manufacturer.rb +5 -0
- data/test/factories/platform.rb +5 -0
- data/test/factories/rack.rb +8 -0
- data/test/factories/rack_group.rb +107 -0
- data/test/factories/site.rb +5 -0
- data/test/fixtures/foreman_datacenter/comments.yml +30 -0
- data/test/fixtures/foreman_datacenter/console_port_templates.yml +42 -0
- data/test/fixtures/foreman_datacenter/console_ports.yml +108 -0
- data/test/fixtures/foreman_datacenter/console_server_port_templates.yml +42 -0
- data/test/fixtures/foreman_datacenter/console_server_ports.yml +84 -0
- data/test/fixtures/foreman_datacenter/device_bay_templates.yml +14 -0
- data/test/fixtures/foreman_datacenter/device_bays.yml +32 -0
- data/test/fixtures/foreman_datacenter/device_interface_connections.yml +96 -0
- data/test/fixtures/foreman_datacenter/device_interfaces.yml +240 -0
- data/test/fixtures/foreman_datacenter/device_modules.yml +54 -0
- data/test/fixtures/foreman_datacenter/device_roles.yml +22 -0
- data/test/fixtures/foreman_datacenter/device_types.yml +54 -0
- data/test/fixtures/foreman_datacenter/devices.yml +126 -0
- data/test/fixtures/foreman_datacenter/interface_templates.yml +54 -0
- data/test/fixtures/foreman_datacenter/management_devices.yml +27 -0
- data/test/fixtures/foreman_datacenter/manufacturers.yml +24 -0
- data/test/fixtures/foreman_datacenter/platforms.yml +28 -0
- data/test/fixtures/foreman_datacenter/power_outlet_templates.yml +42 -0
- data/test/fixtures/foreman_datacenter/power_outlets.yml +84 -0
- data/test/fixtures/foreman_datacenter/power_port_templates.yml +42 -0
- data/test/fixtures/foreman_datacenter/power_ports.yml +108 -0
- data/test/fixtures/foreman_datacenter/rack_groups.yml +16 -6
- data/test/fixtures/foreman_datacenter/racks.yml +31 -10
- data/test/fixtures/foreman_datacenter/sites.yml +23 -12
- data/test/integration/foreman_datacenter/rack_group_test.rb +25 -25
- data/test/integration/foreman_datacenter/rack_test.rb +25 -25
- data/test/integration/foreman_datacenter/site_test.rb +29 -29
- data/test/test_plugin_helper.rb +1 -0
- data/test/unit/foreman_datacenter_test.rb +1 -1
- metadata +264 -2
@@ -1,24 +1,23 @@
|
|
1
1
|
module ForemanDatacenter
|
2
|
-
class SitesController < ApplicationController
|
3
|
-
|
2
|
+
class SitesController < ForemanDatacenter::ApplicationController
|
3
|
+
include Foreman::Controller::AutoCompleteSearch
|
4
|
+
include ForemanDatacenter::Controller::Parameters::Site
|
4
5
|
|
5
|
-
|
6
|
-
@sites = Site.all
|
7
|
-
end
|
6
|
+
before_action :find_resource, only: [:show, :edit, :update, :destroy, :move]
|
8
7
|
|
9
|
-
def
|
8
|
+
def index
|
9
|
+
@sites = resource_base_search_and_page
|
10
10
|
end
|
11
11
|
|
12
12
|
def new
|
13
|
-
@site = Site.new
|
13
|
+
@site = ForemanDatacenter::Site.new
|
14
14
|
end
|
15
15
|
|
16
16
|
def edit
|
17
17
|
end
|
18
18
|
|
19
19
|
def create
|
20
|
-
@site = Site.new(site_params)
|
21
|
-
|
20
|
+
@site = ForemanDatacenter::Site.new(site_params)
|
22
21
|
if @site.save
|
23
22
|
process_success object: @site
|
24
23
|
else
|
@@ -35,22 +34,40 @@ module ForemanDatacenter
|
|
35
34
|
end
|
36
35
|
|
37
36
|
def destroy
|
37
|
+
unless params['object_only']
|
38
|
+
@site.racks.each { |r| r.devices.each { |d| d.destroy } }
|
39
|
+
@site.rack_groups.delete_all(:delete_all)
|
40
|
+
@site.racks.delete_all(:delete_all)
|
41
|
+
else
|
42
|
+
@site.rack_groups.delete_all(:nullify)
|
43
|
+
@site.racks.delete_all(:nullify)
|
44
|
+
end
|
45
|
+
|
38
46
|
if @site.destroy
|
39
|
-
process_success
|
47
|
+
process_success success_redirect: sites_path
|
40
48
|
else
|
41
49
|
process_error object: @site
|
42
50
|
end
|
43
51
|
end
|
44
52
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
@
|
53
|
+
def move
|
54
|
+
@sites = resource_base_search_and_page
|
55
|
+
@rack_groups = @site.rack_groups
|
56
|
+
@racks = @site.racks
|
57
|
+
process_error object: @site, error_msg: 'Current site haven\'t any Racks/RackGroups.' if (@racks.empty? && @rack_groups.empty?)
|
49
58
|
end
|
50
59
|
|
51
|
-
def
|
52
|
-
|
53
|
-
|
60
|
+
def update_associated_objects
|
61
|
+
begin
|
62
|
+
@site = ForemanDatacenter::Site.find(request.env['HTTP_REFERER'].split('/')[-2])
|
63
|
+
@rack_groups = @site.rack_groups
|
64
|
+
@racks = @site.racks
|
65
|
+
@racks.update_all(site_id: params[:site_id])
|
66
|
+
@rack_groups.update_all(site_id: params[:site_id])
|
67
|
+
process_success success_redirect: sites_path, success_msg: 'Associated objects successfully moved.'
|
68
|
+
rescue => e
|
69
|
+
process_error object: @site, error_msg: "#{e}"
|
70
|
+
end
|
54
71
|
end
|
55
72
|
end
|
56
73
|
end
|
@@ -22,5 +22,71 @@ module ForemanDatacenter
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
|
+
def display_fake_delete_if_authorized(options = {}, html_options = {}, as = 'button')
|
26
|
+
text = options.delete(:text) || _("Delete")
|
27
|
+
method = options.delete(:method) || :delete
|
28
|
+
options = {:auth_action => :destroy}.merge(options)
|
29
|
+
html_options = {}.merge(html_options)
|
30
|
+
if authorized_for(options)
|
31
|
+
link_to(text, options, html_options)
|
32
|
+
else
|
33
|
+
""
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def recursive_tags(text, tags)
|
38
|
+
return _("#{text}") if tags.empty?
|
39
|
+
ct = tags[0].parameterize.underscore.to_sym
|
40
|
+
if tags.length == 1
|
41
|
+
content_tag(ct, _("#{text}"), class: 'text-muted')
|
42
|
+
else
|
43
|
+
content_tag(ct, recursive_tags(text, tags.drop(1)))
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def muted_text(text, *ct)
|
48
|
+
recursive_tags(text, ct)
|
49
|
+
end
|
50
|
+
|
51
|
+
def associated_objects(object)
|
52
|
+
case object
|
53
|
+
when 'site'
|
54
|
+
'(Racks, RackGroups, Devices, Interfaces, Ports, etc)'
|
55
|
+
when 'rack_group'
|
56
|
+
'(Racks, Devices, Interfaces, Ports, etc)'
|
57
|
+
when 'rack'
|
58
|
+
'(Devices, Interfaces, Ports, etc)'
|
59
|
+
when 'platform'
|
60
|
+
'(Devices, Interfaces, Ports, etc)'
|
61
|
+
when 'device'
|
62
|
+
'(Interfaces, Ports, etc)'
|
63
|
+
when 'device_role'
|
64
|
+
'(Devices)'
|
65
|
+
when 'device_type'
|
66
|
+
'(Devices)'
|
67
|
+
when 'manufacturer'
|
68
|
+
'(DeviceTypes, Templates, Devices, Interfaces, Port)'
|
69
|
+
else
|
70
|
+
'(...)'
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def object_path(object)
|
75
|
+
object_name = object.model_name.plural.gsub("foreman_datacenter_","")
|
76
|
+
"/datacenter/#{object_name}/#{object.id}"
|
77
|
+
end
|
78
|
+
|
79
|
+
def object_name(object)
|
80
|
+
object.model_name.element
|
81
|
+
end
|
82
|
+
|
83
|
+
def search_params(objects, parameter, sp)
|
84
|
+
str = ""
|
85
|
+
objects.each_with_index do |o, i|
|
86
|
+
str += ' or ' if i > 0
|
87
|
+
str += "#{sp}=#{o.send(parameter)}"
|
88
|
+
end
|
89
|
+
return str
|
90
|
+
end
|
25
91
|
end
|
26
92
|
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
module ForemanDatacenter
|
2
|
+
module CommentsHelper
|
3
|
+
def commentable_path(comment)
|
4
|
+
resource = comment.commentable.class.to_s.gsub("ForemanDatacenter::","").pluralize.split(/(?<!\s)(?=[A-Z])/).join('_').downcase
|
5
|
+
"/datacenter/#{resource}/#{comment.commentable.id}#comment-#{comment.id}"
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
@@ -4,7 +4,7 @@ module ForemanDatacenter
|
|
4
4
|
belongs_to :commentable, polymorphic: true
|
5
5
|
belongs_to :user
|
6
6
|
has_ancestry
|
7
|
-
|
8
|
-
|
7
|
+
|
8
|
+
validates :content, presence: true
|
9
9
|
end
|
10
10
|
end
|
@@ -1,5 +1,8 @@
|
|
1
1
|
module ForemanDatacenter
|
2
2
|
class ConsolePort < ActiveRecord::Base
|
3
|
+
include ScopedSearchExtensions
|
4
|
+
include Authorizable
|
5
|
+
|
3
6
|
belongs_to :device, :class_name => 'ForemanDatacenter::Device'
|
4
7
|
belongs_to :console_server_port, :class_name => 'ForemanDatacenter::ConsoleServerPort'
|
5
8
|
|
@@ -8,6 +11,13 @@ module ForemanDatacenter
|
|
8
11
|
validates :device_id, presence: true
|
9
12
|
validates :name, presence: true, length: { maximum: 30 }
|
10
13
|
|
14
|
+
scoped_search on: :name, complete_value: true, default_order: true, rename: :console_port
|
15
|
+
scoped_search on: :connection_status, default_order: true, complete_value: {connected: 0, planned: 1}
|
16
|
+
scoped_search in: :device, on: :name, complete_value: true, rename: :device
|
17
|
+
scoped_search in: :console_server_port, on: :name, complete_value: true, rename: :port
|
18
|
+
scoped_search on: :created_at, complete_value: true, default_order: true
|
19
|
+
scoped_search on: :updated_at, complete_value: true, default_order: true
|
20
|
+
|
11
21
|
def connect(port, connection_status)
|
12
22
|
update(console_server_port: port, connection_status: connection_status)
|
13
23
|
end
|
@@ -1,10 +1,15 @@
|
|
1
1
|
module ForemanDatacenter
|
2
2
|
class ConsolePortTemplate < ActiveRecord::Base
|
3
|
+
include ScopedSearchExtensions
|
4
|
+
include Authorizable
|
5
|
+
|
3
6
|
belongs_to :device_type, :class_name => 'ForemanDatacenter::DeviceType'
|
4
7
|
|
5
8
|
validates :device_type_id, presence: true
|
6
9
|
validates :name, presence: true, length: { maximum: 30 }
|
7
10
|
|
11
|
+
scoped_search on: :name, complete_value: true, default_order: true
|
12
|
+
|
8
13
|
def attrs_to_copy
|
9
14
|
attributes.slice('name')
|
10
15
|
end
|
@@ -1,9 +1,15 @@
|
|
1
1
|
module ForemanDatacenter
|
2
2
|
class ConsoleServerPort < ActiveRecord::Base
|
3
|
+
include ScopedSearchExtensions
|
4
|
+
include Authorizable
|
5
|
+
|
3
6
|
belongs_to :device, :class_name => 'ForemanDatacenter::Device'
|
4
7
|
has_one :console_port, :class_name => 'ForemanDatacenter::ConsolePort'
|
5
8
|
|
6
9
|
validates :device_id, presence: true
|
7
10
|
validates :name, presence: true, length: { maximum: 30 }
|
11
|
+
|
12
|
+
scoped_search on: :name, complete_value: true, default_order: true
|
13
|
+
|
8
14
|
end
|
9
15
|
end
|
@@ -1,10 +1,15 @@
|
|
1
1
|
module ForemanDatacenter
|
2
2
|
class ConsoleServerPortTemplate < ActiveRecord::Base
|
3
|
+
include ScopedSearchExtensions
|
4
|
+
include Authorizable
|
5
|
+
|
3
6
|
belongs_to :device_type, :class_name => 'ForemanDatacenter::DeviceType'
|
4
7
|
|
5
8
|
validates :device_type_id, presence: true
|
6
9
|
validates :name, presence: true, length: { maximum: 30 }
|
7
10
|
|
11
|
+
scoped_search on: :name, complete_value: true, default_order: true
|
12
|
+
|
8
13
|
def attrs_to_copy
|
9
14
|
attributes.slice('name')
|
10
15
|
end
|
@@ -2,34 +2,27 @@ module ForemanDatacenter
|
|
2
2
|
class Device < ActiveRecord::Base
|
3
3
|
include ScopedSearchExtensions
|
4
4
|
|
5
|
-
belongs_to :device_type, :
|
6
|
-
belongs_to :device_role, :
|
7
|
-
belongs_to :platform, :
|
8
|
-
belongs_to :rack, :
|
9
|
-
has_many :device_bays, :
|
10
|
-
has_one :parent_device_bay, :
|
11
|
-
|
12
|
-
has_many :
|
13
|
-
has_many :
|
14
|
-
has_many :
|
15
|
-
has_many :
|
16
|
-
has_many :
|
17
|
-
|
18
|
-
has_many :
|
19
|
-
|
20
|
-
|
21
|
-
:class_name => 'ForemanDatacenter::DeviceInterface'
|
22
|
-
has_many :modules, :class_name => 'ForemanDatacenter::DeviceModule'
|
23
|
-
has_one :ipmi_interface, -> { where(name: 'ipmi', mgmt_only: true) },
|
24
|
-
:class_name => 'ForemanDatacenter::DeviceInterface'
|
25
|
-
has_one :mgmt_interface, -> { where(name: 'mgmt', mgmt_only: true) },
|
26
|
-
:class_name => 'ForemanDatacenter::DeviceInterface'
|
5
|
+
belongs_to :device_type, class_name: 'ForemanDatacenter::DeviceType'
|
6
|
+
belongs_to :device_role, class_name: 'ForemanDatacenter::DeviceRole'
|
7
|
+
belongs_to :platform, class_name: 'ForemanDatacenter::Platform'
|
8
|
+
belongs_to :rack, class_name: 'ForemanDatacenter::Rack'
|
9
|
+
has_many :device_bays, class_name: 'ForemanDatacenter::DeviceBay', dependent: :destroy
|
10
|
+
has_one :parent_device_bay, class_name: 'ForemanDatacenter::DeviceBay', foreign_key: 'installed_device_id'#, dependent: :destroy
|
11
|
+
has_many :power_outlets, class_name: 'ForemanDatacenter::PowerOutlet', dependent: :destroy
|
12
|
+
has_many :power_ports, class_name: 'ForemanDatacenter::PowerPort', dependent: :destroy
|
13
|
+
has_many :console_server_ports, class_name: 'ForemanDatacenter::ConsoleServerPort', dependent: :destroy
|
14
|
+
has_many :console_ports, class_name: 'ForemanDatacenter::ConsolePort', dependent: :destroy
|
15
|
+
has_many :interfaces, class_name: 'ForemanDatacenter::DeviceInterface', dependent: :destroy
|
16
|
+
has_many :management_interfaces, -> { where(mgmt_only: true) }, class_name: 'ForemanDatacenter::DeviceInterface', dependent: :destroy
|
17
|
+
has_many :non_management_interfaces, -> { where(mgmt_only: false) }, class_name: 'ForemanDatacenter::DeviceInterface', dependent: :destroy
|
18
|
+
has_many :modules, class_name: 'ForemanDatacenter::DeviceModule', dependent: :destroy
|
19
|
+
has_one :ipmi_interface, -> { where(name: 'ipmi', mgmt_only: true) }, class_name: 'ForemanDatacenter::DeviceInterface', dependent: :destroy
|
20
|
+
has_one :mgmt_interface, -> { where(name: 'mgmt', mgmt_only: true) }, class_name: 'ForemanDatacenter::DeviceInterface', dependent: :destroy
|
27
21
|
belongs_to_host
|
28
|
-
has_one :management_device, :
|
29
|
-
has_one :site, :
|
22
|
+
has_one :management_device, class_name: 'ForemanDatacenter::ManagementDevice', dependent: :destroy
|
23
|
+
has_one :site, through: :rack
|
30
24
|
|
31
|
-
has_many :comments, :
|
32
|
-
dependent: :destroy, as: :commentable
|
25
|
+
has_many :comments, class_name: 'ForemanDatacenter::Comment', dependent: :destroy, as: :commentable
|
33
26
|
|
34
27
|
enum face: [:front, :rear]
|
35
28
|
enum side: [:left, :right, :full]
|
@@ -57,6 +50,7 @@ module ForemanDatacenter
|
|
57
50
|
scoped_search in: :rack, on: :name, complete_value: true, rename: :rack
|
58
51
|
scoped_search in: :device_role, on: :name, complete_value: true, rename: :role
|
59
52
|
scoped_search in: :device_type, on: :model, complete_value: true, rename: :type
|
53
|
+
scoped_search in: :platform, on: :name, complete_value: true, rename: :platform
|
60
54
|
|
61
55
|
delegate :site_id, to: :rack, allow_nil: true
|
62
56
|
delegate :manufacturer_id, :is_console_server, :is_pdu, :is_network_device,
|
@@ -1,11 +1,16 @@
|
|
1
1
|
module ForemanDatacenter
|
2
2
|
class DeviceBay < ActiveRecord::Base
|
3
|
+
include ScopedSearchExtensions
|
4
|
+
include Authorizable
|
5
|
+
|
3
6
|
belongs_to :device, :class_name => 'ForemanDatacenter::Device'
|
4
7
|
belongs_to :installed_device, :class_name => 'ForemanDatacenter::Device'
|
5
8
|
|
6
9
|
validates :name, presence: true, length: {maximum: 50}
|
7
10
|
validates :device_id, presence: true
|
8
11
|
|
12
|
+
scoped_search on: :name, complete_value: true, default_order: true
|
13
|
+
|
9
14
|
def available_child_devices
|
10
15
|
Device.joins(:device_type).
|
11
16
|
joins('LEFT JOIN device_bays ON devices.id = device_bays.installed_device_id').
|
@@ -1,10 +1,15 @@
|
|
1
1
|
module ForemanDatacenter
|
2
2
|
class DeviceBayTemplate < ActiveRecord::Base
|
3
|
+
include ScopedSearchExtensions
|
4
|
+
include Authorizable
|
5
|
+
|
3
6
|
belongs_to :device_type, :class_name => 'ForemanDatacenter::DeviceType'
|
4
7
|
|
5
8
|
validates :device_type_id, presence: true
|
6
9
|
validates :name, presence: true, length: { maximum: 30 }
|
7
10
|
|
11
|
+
scoped_search on: :name, complete_value: true, default_order: true
|
12
|
+
|
8
13
|
def attrs_to_copy
|
9
14
|
attributes.slice('name')
|
10
15
|
end
|
@@ -1,5 +1,8 @@
|
|
1
1
|
module ForemanDatacenter
|
2
2
|
class DeviceInterface < ActiveRecord::Base
|
3
|
+
include ScopedSearchExtensions
|
4
|
+
include Authorizable
|
5
|
+
|
3
6
|
FORM_FACTORS = ['Virtual', '10/100M (100BASE-TX)',
|
4
7
|
'1GE (1000BASE-T)', '1GE (SFP)', '10GE (10GBASE-T)',
|
5
8
|
'10GE (SFP+)', '10GE (XFP)', '40GE (QSFP+)']
|
@@ -14,6 +17,8 @@ module ForemanDatacenter
|
|
14
17
|
validates :ip_address, length: {maximum: 128}
|
15
18
|
validates :description, length: {maximum: 100}
|
16
19
|
|
20
|
+
scoped_search on: :name, complete_value: true, default_order: true
|
21
|
+
|
17
22
|
def connection
|
18
23
|
@connection ||= DeviceInterfaceConnection.
|
19
24
|
where(['interface_a = ? OR interface_b = ?', id, id]).
|
@@ -1,5 +1,8 @@
|
|
1
1
|
module ForemanDatacenter
|
2
2
|
class DeviceInterfaceConnection < ActiveRecord::Base
|
3
|
+
include ScopedSearchExtensions
|
4
|
+
include Authorizable
|
5
|
+
|
3
6
|
belongs_to :first_interface, class_name: 'ForemanDatacenter::DeviceInterface',
|
4
7
|
foreign_key: 'interface_a'
|
5
8
|
belongs_to :second_interface, class_name: 'ForemanDatacenter::DeviceInterface',
|
@@ -16,6 +19,9 @@ module ForemanDatacenter
|
|
16
19
|
end
|
17
20
|
end
|
18
21
|
|
22
|
+
scoped_search in: :first_interface, on: :name, complete_value: true, rename: :interface_a
|
23
|
+
scoped_search in: :second_interface, on: :name, complete_value: true, rename: :interface_b
|
24
|
+
|
19
25
|
def first_device
|
20
26
|
first_interface.device
|
21
27
|
end
|
@@ -1,10 +1,15 @@
|
|
1
1
|
module ForemanDatacenter
|
2
2
|
class DeviceModule < ActiveRecord::Base
|
3
|
+
include ScopedSearchExtensions
|
4
|
+
include Authorizable
|
5
|
+
|
3
6
|
belongs_to :device, :class_name => 'ForemanDatacenter::Device'
|
4
7
|
|
5
8
|
validates :device_id, presence: true
|
6
9
|
validates :name, presence: true, length: { maximum: 50 }
|
7
10
|
validates :part_id, length: { maximum: 50 }
|
8
11
|
validates :serial, length: { maximum: 50 }
|
12
|
+
|
13
|
+
scoped_search on: :name, complete_value: true, default_order: true
|
9
14
|
end
|
10
15
|
end
|
@@ -1,5 +1,8 @@
|
|
1
1
|
module ForemanDatacenter
|
2
2
|
class DeviceRole < ActiveRecord::Base
|
3
|
+
include ScopedSearchExtensions
|
4
|
+
include Authorizable
|
5
|
+
|
3
6
|
COLORS = [
|
4
7
|
'Teal', 'Green', 'Blue', 'Purple', 'Yellow', 'Orange', 'Red',
|
5
8
|
'Light Gray', 'Medium Gray', 'Dark Gray'
|
@@ -11,6 +14,17 @@ module ForemanDatacenter
|
|
11
14
|
validates :color, presence: true, length: { maximum: 30 },
|
12
15
|
inclusion: { in: COLORS, message: "Color must be one of #{COLORS.join(', ')}"}
|
13
16
|
|
17
|
+
scoped_search on: :name, complete_value: true, default_order: true
|
18
|
+
scoped_search on: :color, complete_value: true, default_order: true
|
19
|
+
scoped_search on: :created_at, complete_value: true, default_order: true
|
20
|
+
scoped_search on: :updated_at, complete_value: true, default_order: true
|
21
|
+
|
22
|
+
def devices_count
|
23
|
+
@devices_count ||= self.class.where(id: id).
|
24
|
+
joins(:devices).
|
25
|
+
count
|
26
|
+
end
|
27
|
+
|
14
28
|
def self.for_host
|
15
29
|
role = find_by_name('Server')
|
16
30
|
if role
|
@@ -1,15 +1,18 @@
|
|
1
1
|
module ForemanDatacenter
|
2
2
|
class DeviceType < ActiveRecord::Base
|
3
|
+
include ScopedSearchExtensions
|
4
|
+
include Authorizable
|
5
|
+
|
3
6
|
SUBDEVICE_ROLES = ['None', 'Parent', 'Child'].freeze
|
4
7
|
|
5
8
|
belongs_to :manufacturer, :class_name => 'ForemanDatacenter::Manufacturer'
|
6
9
|
has_many :devices, :class_name => 'ForemanDatacenter::Device'
|
7
|
-
has_many :interface_templates, :class_name => 'ForemanDatacenter::InterfaceTemplate'
|
8
|
-
has_many :console_port_templates, :class_name => 'ForemanDatacenter::ConsolePortTemplate'
|
9
|
-
has_many :power_port_templates, :class_name => 'ForemanDatacenter::PowerPortTemplate'
|
10
|
-
has_many :console_server_port_templates, :class_name => 'ForemanDatacenter::ConsoleServerPortTemplate'
|
11
|
-
has_many :power_outlet_templates, :class_name => 'ForemanDatacenter::PowerOutletTemplate'
|
12
|
-
has_many :device_bay_templates, :class_name => 'ForemanDatacenter::DeviceBayTemplate'
|
10
|
+
has_many :interface_templates, :class_name => 'ForemanDatacenter::InterfaceTemplate', dependent: :destroy
|
11
|
+
has_many :console_port_templates, :class_name => 'ForemanDatacenter::ConsolePortTemplate', dependent: :destroy
|
12
|
+
has_many :power_port_templates, :class_name => 'ForemanDatacenter::PowerPortTemplate', dependent: :destroy
|
13
|
+
has_many :console_server_port_templates, :class_name => 'ForemanDatacenter::ConsoleServerPortTemplate', dependent: :destroy
|
14
|
+
has_many :power_outlet_templates, :class_name => 'ForemanDatacenter::PowerOutletTemplate', dependent: :destroy
|
15
|
+
has_many :device_bay_templates, :class_name => 'ForemanDatacenter::DeviceBayTemplate', dependent: :destroy
|
13
16
|
|
14
17
|
validates :manufacturer_id, presence: true
|
15
18
|
validates :model, presence: true, length: { maximum: 50 }
|
@@ -17,6 +20,18 @@ module ForemanDatacenter
|
|
17
20
|
validates :subdevice_role, inclusion: { in: SUBDEVICE_ROLES },
|
18
21
|
allow_blank: true
|
19
22
|
|
23
|
+
scoped_search on: :model, complete_value: true, default_order: true
|
24
|
+
scoped_search on: :u_height, complete_value: true, default_order: true
|
25
|
+
# scoped_search on: :is_full_depth, complete_value: true, default_order: true
|
26
|
+
# scoped_search on: :is_console_server, complete_value: true, default_order: true
|
27
|
+
# scoped_search on: :is_pdu, complete_value: true, default_order: true
|
28
|
+
# scoped_search on: :is_network_device, complete_value: true, default_order: true
|
29
|
+
scoped_search on: :subdevice_role, complete_value: true, default_order: true
|
30
|
+
scoped_search on: :created_at, complete_value: true, default_order: true
|
31
|
+
scoped_search on: :updated_at, complete_value: true, default_order: true
|
32
|
+
|
33
|
+
scoped_search in: :manufacturer, on: :name, complete_value: true, rename: :manufacturer
|
34
|
+
|
20
35
|
# Ensure that child devices have 0U height
|
21
36
|
validate do
|
22
37
|
if child? && u_height != 0
|
@@ -24,6 +39,12 @@ module ForemanDatacenter
|
|
24
39
|
end
|
25
40
|
end
|
26
41
|
|
42
|
+
def devices_count
|
43
|
+
@devices_count ||= self.class.where(id: id).
|
44
|
+
joins(:devices).
|
45
|
+
count
|
46
|
+
end
|
47
|
+
|
27
48
|
def self.for_host(host)
|
28
49
|
fact = host.fact_value_by_name('productname')
|
29
50
|
if fact
|
@@ -57,5 +78,9 @@ module ForemanDatacenter
|
|
57
78
|
def management_interfaces
|
58
79
|
interface_templates.select(&:mgmt_only)
|
59
80
|
end
|
81
|
+
|
82
|
+
def to_label
|
83
|
+
model
|
84
|
+
end
|
60
85
|
end
|
61
86
|
end
|