foreman_datacenter 1.20.4 → 1.20.6
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 +4 -4
- data/app/assets/javascripts/foreman_datacenter/modal.js +15 -8
- data/app/assets/stylesheets/foreman_datacenter/horizontal-scroll.css +9 -0
- data/app/controllers/api/v2/foreman_datacenter/device_interface_connections_controller.rb +1 -1
- data/app/controllers/api/v2/foreman_datacenter/management_devices_controller.rb +1 -1
- data/app/controllers/api/v2/foreman_datacenter/power_outlets_controller.rb +35 -35
- data/app/controllers/foreman_datacenter/console_ports_controller.rb +2 -4
- data/app/controllers/foreman_datacenter/console_server_ports_controller.rb +5 -10
- data/app/controllers/foreman_datacenter/device_bays_controller.rb +5 -10
- data/app/controllers/foreman_datacenter/device_interface_connections_controller.rb +7 -4
- data/app/controllers/foreman_datacenter/device_interfaces_controller.rb +3 -6
- data/app/controllers/foreman_datacenter/device_modules_controller.rb +3 -7
- data/app/controllers/foreman_datacenter/device_types_controller.rb +1 -2
- data/app/controllers/foreman_datacenter/devices_controller.rb +8 -25
- data/app/controllers/foreman_datacenter/management_devices_controller.rb +3 -6
- data/app/controllers/foreman_datacenter/power_outlets_controller.rb +5 -10
- data/app/controllers/foreman_datacenter/power_ports_controller.rb +5 -10
- data/app/controllers/foreman_datacenter/rack_groups_controller.rb +1 -1
- data/app/controllers/foreman_datacenter/sites_controller.rb +3 -2
- data/app/models/foreman_datacenter/device_interface_connection.rb +2 -2
- data/app/views/foreman_datacenter/console_ports/index.html.erb +27 -5
- data/app/views/foreman_datacenter/device_interface_connections/index.html.erb +23 -3
- data/app/views/foreman_datacenter/devices/_interface.html.erb +17 -3
- data/app/views/foreman_datacenter/devices/show.html.erb +1 -1
- data/app/views/foreman_datacenter/platforms/show.html.erb +8 -8
- data/app/views/foreman_datacenter/rack_groups/racks.html.erb +9 -10
- data/app/views/foreman_datacenter/racks/_device_position.html.erb +1 -1
- data/app/views/foreman_datacenter/sites/racks.html.erb +23 -4
- data/db/migrate/20180725201545_add_location_id_and_organization_id_columns_to_devices.rb +1 -1
- data/lib/foreman_datacenter/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 20a7f019dba7bbd3c87601170d1b877cb427ebce27908572f7b69460c16ee943
|
4
|
+
data.tar.gz: 6850811eb83a4aef513f74e48fa46d3ab68daa6e632ac410b4141515ae901850
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a019cd9673e4896a04c590ca481982cb959c5f50ac44363bbf3fb0813c796fee9f9c5b7912c1a6e9033534d064f27765d13d0fcf40974e627611d95f0506db1e
|
7
|
+
data.tar.gz: 9f2764dda03e07a2653b420d43f247d0db2847870353d522deb3b06b7f4f89c6dfd4ba24d09386ccd52d5d3c71bac4b6129a2fd26338420e3e38f03c4dcdafb3
|
@@ -10,7 +10,8 @@ $(window).click(function(event) {
|
|
10
10
|
var patt = new RegExp(str);
|
11
11
|
var token = $('meta[name="csrf-token"]').attr('content');
|
12
12
|
if (object_type == 'device') {
|
13
|
-
var checkbox_label = 'Delete associated host ONLY and keep current device as UNASSIGNED!'
|
13
|
+
// var checkbox_label = 'Delete associated host ONLY and keep current device as UNASSIGNED!'
|
14
|
+
var checkbox_label = ''
|
14
15
|
} else {
|
15
16
|
var checkbox_label = 'Delete ' + object_type + ' ONLY'
|
16
17
|
}
|
@@ -18,11 +19,18 @@ $(window).click(function(event) {
|
|
18
19
|
if (!(patt.test(pathname))) {
|
19
20
|
pathname = pathname + str
|
20
21
|
}
|
21
|
-
|
22
22
|
var move = "<p></p>"
|
23
|
-
|
23
|
+
var checkbox = ""
|
24
|
+
var text = "You will permanently delete the"
|
25
|
+
text_ao = ""
|
26
|
+
if (object_type == "site" || object_type == "rack" || object_type == "rack_group") {
|
24
27
|
move = '<p>You also can move associated object to another <strong>' + object_type + '</strong> before you destroy it.</p> \
|
25
28
|
<a class="btn btn-block btn-primary modal-btn modal-btn-primary marginbottomsixteen" href="/datacenter/' + object_type + 's/' + object_id + '/move">Move associated objects</a>'
|
29
|
+
checkbox = '<input type="checkbox" name="object_only" id="object_only" value="true" checked="checked">'
|
30
|
+
text = "By unselecting checkbox you will permanently delete the"
|
31
|
+
text_ao = 'with \
|
32
|
+
<strong>ALL</strong> \
|
33
|
+
associated objects' + ao
|
26
34
|
}
|
27
35
|
|
28
36
|
var form = '<div id="myModal" class="modal"> \
|
@@ -37,16 +45,15 @@ $(window).click(function(event) {
|
|
37
45
|
<div class="modal-body"> \
|
38
46
|
<p>This action \
|
39
47
|
<strong>cannot</strong> \
|
40
|
-
be undone.
|
48
|
+
be undone. \
|
49
|
+
' + text + ' \
|
41
50
|
<strong>' + object_name + '</strong> \
|
42
|
-
|
43
|
-
<strong>ALL</strong> \
|
44
|
-
associated objects' + ao + ' \
|
51
|
+
' + text_ao + ' \
|
45
52
|
</p> \
|
46
53
|
<form class="modal-form nonpaddingbottom" action=' + pathname + ' accept-charset="UTF-8" method="post"> \
|
47
54
|
<input type="hidden" name="_method" value="delete"> \
|
48
55
|
<input type="hidden" name="authenticity_token" value=' + token + '> \
|
49
|
-
|
56
|
+
' + checkbox + ' \
|
50
57
|
<label>' + checkbox_label + '</label> \
|
51
58
|
<input type="submit" name="commit" value="I understand the consequences, delete this ' + object_type + '" class="btn btn-block btn-danger modal-btn modal-btn-danger"> \
|
52
59
|
</form> \
|
@@ -34,7 +34,7 @@ module Api
|
|
34
34
|
def create
|
35
35
|
@device_interface_connection = ::ForemanDatacenter::DeviceInterfaceConnection.new(device_interface_connection_params.merge(interface_a: params[:device_interface_id]))
|
36
36
|
@device_interface_connection.first_interface = get_device_interface
|
37
|
-
@device_interface_connection.save
|
37
|
+
process_response @device_interface_connection.save
|
38
38
|
end
|
39
39
|
|
40
40
|
api :DELETE, "/foreman_datacenter/device_interface_connections/:id/", N_("Delete a DeviceInterfaceConnection")
|
@@ -34,7 +34,7 @@ module Api
|
|
34
34
|
|
35
35
|
def create
|
36
36
|
@management_device = ::ForemanDatacenter::ManagementDevice.new(management_device_params)#.merge(device_id: params[]))
|
37
|
-
|
37
|
+
process_response @management_device.save
|
38
38
|
end
|
39
39
|
|
40
40
|
api :PUT, "/foreman_datacenter/management_devices/:id/", N_("Update a management_device")
|
@@ -2,14 +2,14 @@ module Api
|
|
2
2
|
module V2
|
3
3
|
module ForemanDatacenter
|
4
4
|
class PowerOutletsController < ForemanDatacenter::BaseController
|
5
|
-
|
5
|
+
include ::ForemanDatacenter::Controller::Parameters::PowerOutlet
|
6
6
|
|
7
7
|
before_action :find_resource, :only => %w{show update destroy connect disconnect}
|
8
8
|
add_scoped_search_description_for(::ForemanDatacenter::PowerOutletTemplate)
|
9
9
|
param_group :search_and_pagination, ::Api::V2::BaseController
|
10
10
|
|
11
11
|
api :GET, "/foreman_datacenter/power_outlets/", N_("List all PowerOutlets")
|
12
|
-
|
12
|
+
|
13
13
|
def index
|
14
14
|
@power_outlets = resource_scope_for_index
|
15
15
|
end
|
@@ -20,57 +20,57 @@ module Api
|
|
20
20
|
def show
|
21
21
|
end
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
23
|
+
def_param_group :power_outlet do
|
24
|
+
param :power_outlet, Hash, :required => true, :action_aware => true do
|
25
|
+
param :name, String, :required => true
|
26
|
+
param :device_id, :number, :desc => N_("Device ID")
|
27
|
+
end
|
28
|
+
end
|
29
29
|
|
30
|
-
|
31
|
-
|
30
|
+
api :POST, "/foreman_datacenter/power_outlets", N_("Create a PowerOutlet")
|
31
|
+
param_group :power_outlet, :as => :create
|
32
32
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
33
|
+
def create
|
34
|
+
@power_outlet = ::ForemanDatacenter::PowerOutlet.new(power_outlet_params)
|
35
|
+
process_response @power_outlet.save
|
36
|
+
end
|
37
37
|
|
38
|
-
|
39
|
-
|
40
|
-
|
38
|
+
api :PUT, "/foreman_datacenter/power_outlets/:id/", N_("Update a PowerOutlet")
|
39
|
+
param :id, :identifier, :required => true
|
40
|
+
param_group :power_outlet
|
41
41
|
|
42
|
-
|
43
|
-
|
44
|
-
|
42
|
+
def update
|
43
|
+
process_response @power_outlet.update(power_outlet_params)
|
44
|
+
end
|
45
45
|
|
46
|
-
|
47
|
-
|
46
|
+
api :DELETE, "/foreman_datacenter/power_outlets/:id/", N_("Delete a PowerOutlet")
|
47
|
+
param :id, :identifier, :required => true
|
48
48
|
|
49
|
-
|
50
|
-
|
51
|
-
|
49
|
+
def destroy
|
50
|
+
process_response @power_outlet.destroy
|
51
|
+
end
|
52
52
|
|
53
|
-
|
54
|
-
|
55
|
-
|
53
|
+
api :PATCH, "/foreman_datacenter/power_outlets/:id/connect", N_("Connect")
|
54
|
+
param :id, :identifier, :required => true
|
55
|
+
param_group :power_outlet
|
56
56
|
param :console_server_port_id, :number, :desc => N_("ConsoleServerPort ID"), :required => true
|
57
57
|
param :connection_status, :number, :desc => N_("Connections status"), :required => true
|
58
58
|
|
59
|
-
|
59
|
+
def connect
|
60
60
|
power_port = ::ForemanDatacenter::PowerPort.find(params[:power_port_id])
|
61
61
|
power_port.connect(
|
62
62
|
@power_outlet,
|
63
63
|
params[:connection_status]
|
64
64
|
)
|
65
|
-
|
65
|
+
end
|
66
66
|
|
67
|
-
|
68
|
-
|
69
|
-
|
67
|
+
api :PATCH, "/foreman_datacenter/power_outlets/:id/disconnect", N_("Disconnect")
|
68
|
+
param :id, :identifier, :required => true
|
69
|
+
param_group :power_outlet
|
70
70
|
|
71
|
-
|
71
|
+
def disconnect
|
72
72
|
process_response @power_outlet.power_port.disconnect
|
73
|
-
|
73
|
+
end
|
74
74
|
end
|
75
75
|
end
|
76
76
|
end
|
@@ -72,14 +72,12 @@ module ForemanDatacenter
|
|
72
72
|
console_server_port,
|
73
73
|
params[:console_port][:connection_status]
|
74
74
|
)
|
75
|
-
|
76
|
-
notice: 'Console port was successfully connected.'
|
75
|
+
process_success(success_msg: "Console port was successfully connected.", success_redirect: device_url(id: @console_port.device_id))
|
77
76
|
end
|
78
77
|
|
79
78
|
def disconnect
|
80
79
|
@console_port.disconnect
|
81
|
-
|
82
|
-
notice: 'Console port was successfully disconnected.'
|
80
|
+
process_success(success_msg: "Console port was successfully disconnected.", success_redirect: device_url(id: @console_port.device_id))
|
83
81
|
end
|
84
82
|
end
|
85
83
|
end
|
@@ -18,8 +18,7 @@ module ForemanDatacenter
|
|
18
18
|
@console_server_port = ForemanDatacenter::ConsoleServerPort.new(console_server_port_params.merge(device_id: params[:device_id]))
|
19
19
|
|
20
20
|
if @console_server_port.save
|
21
|
-
|
22
|
-
notice: 'Console server port was successfully created.'
|
21
|
+
process_success(success_msg: "Console server port was successfully created.", success_redirect: device_url(id: @console_server_port.device_id))
|
23
22
|
else
|
24
23
|
process_error object: @console_server_port
|
25
24
|
end
|
@@ -27,8 +26,7 @@ module ForemanDatacenter
|
|
27
26
|
|
28
27
|
def update
|
29
28
|
if @console_server_port.update(console_server_port_params)
|
30
|
-
|
31
|
-
notice: 'Console server port was successfully updated.'
|
29
|
+
process_success(success_msg: "Console server port was successfully updated.", success_redirect: device_url(id: @console_server_port.device_id))
|
32
30
|
else
|
33
31
|
process_error object: @console_server_port
|
34
32
|
end
|
@@ -36,8 +34,7 @@ module ForemanDatacenter
|
|
36
34
|
|
37
35
|
def destroy
|
38
36
|
if @console_server_port.destroy
|
39
|
-
|
40
|
-
notice: 'Console server port was successfully destroyed.'
|
37
|
+
process_success(success_msg: "Console server port was successfully destroyed.", success_redirect: device_url(id: @console_server_port.device_id))
|
41
38
|
else
|
42
39
|
process_error object: @console_server_port
|
43
40
|
end
|
@@ -52,14 +49,12 @@ module ForemanDatacenter
|
|
52
49
|
@console_server_port,
|
53
50
|
params[:console_port][:connection_status]
|
54
51
|
)
|
55
|
-
|
56
|
-
notice: 'Console server port was successfully connected.'
|
52
|
+
process_success(success_msg: "Console server port was successfully connected.", success_redirect: device_url(id: @console_server_port.device_id))
|
57
53
|
end
|
58
54
|
|
59
55
|
def disconnect
|
60
56
|
@console_server_port.console_port.disconnect
|
61
|
-
|
62
|
-
notice: 'Console server port was successfully disconnected.'
|
57
|
+
process_success(success_msg: "Console server port was successfully disconnected.", success_redirect: device_url(id: @console_server_port.device_id))
|
63
58
|
end
|
64
59
|
|
65
60
|
def for_device
|
@@ -17,8 +17,7 @@ module ForemanDatacenter
|
|
17
17
|
@device_bay = ForemanDatacenter::DeviceBay.new(device_bay_params.merge(device_id: params[:device_id]))
|
18
18
|
|
19
19
|
if @device_bay.save
|
20
|
-
|
21
|
-
notice: 'New device bay was successfully created'
|
20
|
+
process_success(success_msg: "New device bay was successfully created.", success_redirect: device_url(id: @device_bay.device))
|
22
21
|
else
|
23
22
|
process_error object: @device_bay
|
24
23
|
end
|
@@ -26,8 +25,7 @@ module ForemanDatacenter
|
|
26
25
|
|
27
26
|
def update
|
28
27
|
if @device_bay.update(device_bay_params)
|
29
|
-
|
30
|
-
notice: 'Device bay was successfully updated'
|
28
|
+
process_success(success_msg: "Device bay was successfully updated.", success_redirect: device_url(id: @device_bay.device))
|
31
29
|
else
|
32
30
|
process_error object: @device_bay
|
33
31
|
end
|
@@ -35,8 +33,7 @@ module ForemanDatacenter
|
|
35
33
|
|
36
34
|
def destroy
|
37
35
|
if @device_bay.destroy
|
38
|
-
|
39
|
-
notice: 'Device bay was successfully destroyed'
|
36
|
+
process_success(success_msg: "Device bay was successfully destroyed.", success_redirect: device_url(id: @device_bay.device))
|
40
37
|
else
|
41
38
|
process_error object: @device_bay
|
42
39
|
end
|
@@ -48,8 +45,7 @@ module ForemanDatacenter
|
|
48
45
|
def populate
|
49
46
|
device_id = params[:device_bay][:installed_device_id]
|
50
47
|
if @device_bay.update(installed_device_id: device_id)
|
51
|
-
|
52
|
-
notice: 'Device bay was successfully populated'
|
48
|
+
process_success(success_msg: "Device bay was successfully populated.", success_redirect: device_url(id: @device_bay.device))
|
53
49
|
else
|
54
50
|
process_error object: @device_bay
|
55
51
|
end
|
@@ -57,8 +53,7 @@ module ForemanDatacenter
|
|
57
53
|
|
58
54
|
def depopulate
|
59
55
|
if @device_bay.update(installed_device_id: nil)
|
60
|
-
|
61
|
-
notice: 'Device bay was successfully depopulated'
|
56
|
+
process_success(success_msg: "Device bay was successfully depopulated.", success_redirect: device_url(id: @device_bay.device))
|
62
57
|
else
|
63
58
|
process_error object: @device_bay
|
64
59
|
end
|
@@ -3,10 +3,10 @@ module ForemanDatacenter
|
|
3
3
|
include Foreman::Controller::AutoCompleteSearch
|
4
4
|
include ForemanDatacenter::Controller::Parameters::DeviceInterfaceConnection
|
5
5
|
|
6
|
-
before_action :find_resource, only: [:destroy, :planned, :connected]
|
6
|
+
before_action :find_resource, only: [:destroy, :planned, :connected, :edit]
|
7
7
|
|
8
8
|
def index
|
9
|
-
@device_interface_connections = resource_base_search_and_page.includes(:
|
9
|
+
@device_interface_connections = resource_base_search_and_page.includes(second_interface: [:device], first_interface: [:device])
|
10
10
|
end
|
11
11
|
|
12
12
|
def new
|
@@ -15,13 +15,16 @@ module ForemanDatacenter
|
|
15
15
|
)
|
16
16
|
end
|
17
17
|
|
18
|
+
def edit
|
19
|
+
@device = @device_interface_connection.first_device
|
20
|
+
end
|
21
|
+
|
18
22
|
def create
|
19
23
|
@device_interface_connection = ForemanDatacenter::DeviceInterfaceConnection.new(device_interface_connection_params.merge(interface_a: params[:device_interface_id]))
|
20
24
|
@device_interface_connection.first_interface = get_device_interface
|
21
25
|
|
22
26
|
if @device_interface_connection.save
|
23
|
-
|
24
|
-
notice: 'Connection was successfully created.'
|
27
|
+
process_success(success_msg: "Connection was successfully created.", success_redirect: device_url(id: @device_interface_connection.first_interface.device))
|
25
28
|
else
|
26
29
|
process_error object: @device_interface_connection
|
27
30
|
end
|
@@ -28,8 +28,7 @@ module ForemanDatacenter
|
|
28
28
|
@device_interface = ForemanDatacenter::DeviceInterface.new(device_interface_params.merge(device_id: params[:device_id]))
|
29
29
|
|
30
30
|
if @device_interface.save
|
31
|
-
|
32
|
-
notice: 'Device interface was successfully created.'
|
31
|
+
process_success(success_msg: "Device interface was successfully created.", success_redirect: device_url(id: @device_interface.device.id))
|
33
32
|
else
|
34
33
|
process_error object: @device_interface
|
35
34
|
end
|
@@ -37,8 +36,7 @@ module ForemanDatacenter
|
|
37
36
|
|
38
37
|
def update
|
39
38
|
if @device_interface.update(device_interface_params)
|
40
|
-
|
41
|
-
notice: 'Device interface was successfully updated.'
|
39
|
+
process_success(success_msg: "Device interface was successfully updated.", success_redirect: device_url(id: @device_interface.device.id))
|
42
40
|
else
|
43
41
|
process_error object: @device_interface
|
44
42
|
end
|
@@ -46,8 +44,7 @@ module ForemanDatacenter
|
|
46
44
|
|
47
45
|
def destroy
|
48
46
|
if @device_interface.destroy
|
49
|
-
|
50
|
-
notice: 'Device interface was successfully destroyed.'
|
47
|
+
process_success(success_msg: "Device interface was successfully destroyed.", success_redirect: device_url(id: @device_interface.device.id))
|
51
48
|
else
|
52
49
|
process_error object: @device_interface
|
53
50
|
end
|
@@ -15,10 +15,8 @@ module ForemanDatacenter
|
|
15
15
|
|
16
16
|
def create
|
17
17
|
@device_module = ForemanDatacenter::DeviceModule.new(device_module_params.merge(device_id: params[:device_id]))
|
18
|
-
|
19
18
|
if @device_module.save
|
20
|
-
|
21
|
-
notice: 'Device module was successfully created.'
|
19
|
+
process_success(success_msg: "Device module was successfully created.", success_redirect: inventory_device_url(id: @device_module.device_id))
|
22
20
|
else
|
23
21
|
process_error object: @device_module
|
24
22
|
end
|
@@ -26,8 +24,7 @@ module ForemanDatacenter
|
|
26
24
|
|
27
25
|
def update
|
28
26
|
if @device_module.update(device_module_params)
|
29
|
-
|
30
|
-
notice: 'Device module was successfully updated.'
|
27
|
+
process_success(success_msg: "Device module was successfully updated.", success_redirect: inventory_device_url(id: @device_module.device_id))
|
31
28
|
else
|
32
29
|
process_error object: @device_module
|
33
30
|
end
|
@@ -35,8 +32,7 @@ module ForemanDatacenter
|
|
35
32
|
|
36
33
|
def destroy
|
37
34
|
if @device_module.destroy
|
38
|
-
|
39
|
-
notice: 'Device module was successfully destroyed.'
|
35
|
+
process_success(success_msg: "Device module was successfully destroyed.", success_redirect: inventory_device_url(id: @device_module.device_id))
|
40
36
|
else
|
41
37
|
process_error object: @device_module
|
42
38
|
end
|
@@ -33,8 +33,7 @@ module ForemanDatacenter
|
|
33
33
|
|
34
34
|
def update
|
35
35
|
if @device_type.update(device_type_params)
|
36
|
-
|
37
|
-
notice: 'Device type was successfully updated'
|
36
|
+
process_success object: @device_type
|
38
37
|
else
|
39
38
|
process_error object: @device_type
|
40
39
|
end
|
@@ -17,11 +17,8 @@ module ForemanDatacenter
|
|
17
17
|
|
18
18
|
def show
|
19
19
|
@device = ForemanDatacenter::Device.includes(
|
20
|
-
power_ports: [:power_outlet
|
21
|
-
|
22
|
-
console_ports: [:console_server_port, :device],
|
23
|
-
console_server_ports: [:console_port, :device],
|
24
|
-
device_bays: [:installed_device],
|
20
|
+
power_ports: [:power_outlet],
|
21
|
+
console_ports: [:console_server_port],
|
25
22
|
comments: [:user]
|
26
23
|
).find(params[:id])
|
27
24
|
@comments = @device.comments
|
@@ -63,21 +60,10 @@ module ForemanDatacenter
|
|
63
60
|
end
|
64
61
|
|
65
62
|
def destroy
|
66
|
-
|
67
|
-
|
68
|
-
process_success success_redirect: "/datacenter/devices"
|
69
|
-
else
|
70
|
-
process_error object: @device
|
71
|
-
end
|
63
|
+
if @device.destroy
|
64
|
+
process_success success_redirect: "/datacenter/devices"
|
72
65
|
else
|
73
|
-
|
74
|
-
@device.host.destroy
|
75
|
-
new_device_name = "Unassigned device (former: #{@device.name})"
|
76
|
-
@device.update(name: new_device_name)
|
77
|
-
process_success success_redirect: '/datacenter/devices', success_msg: 'Associated host deleted'
|
78
|
-
else
|
79
|
-
process_error success_redirect: '/datacenter/devices', error_msg: 'Associated host not found'
|
80
|
-
end
|
66
|
+
process_error object: @device
|
81
67
|
end
|
82
68
|
end
|
83
69
|
|
@@ -110,7 +96,7 @@ module ForemanDatacenter
|
|
110
96
|
@device.non_management_interfaces.
|
111
97
|
where(id: params[:interfaces]).
|
112
98
|
destroy_all
|
113
|
-
|
99
|
+
process_success(success_msg: "Selected interfaces were successfully destroyed.", success_redirect: device_url(id: @device))
|
114
100
|
end
|
115
101
|
|
116
102
|
def qr_code
|
@@ -121,11 +107,9 @@ module ForemanDatacenter
|
|
121
107
|
|
122
108
|
def sync_interfaces_with_host
|
123
109
|
if @device.sync_interfaces_with_host
|
124
|
-
|
125
|
-
redirect_to device_url(@device)
|
110
|
+
process_success(success_msg: "Device successfully synchronized.", success_redirect: device_url(id: @device))
|
126
111
|
else
|
127
|
-
|
128
|
-
redirect_to device_url(@device)
|
112
|
+
process_error(error_msg: "Unsuccessfully synchronization.", redirect: device_url(@device))
|
129
113
|
end
|
130
114
|
end
|
131
115
|
|
@@ -154,4 +138,3 @@ module ForemanDatacenter
|
|
154
138
|
end
|
155
139
|
end
|
156
140
|
end
|
157
|
-
|
@@ -16,8 +16,7 @@ module ForemanDatacenter
|
|
16
16
|
@management_device = ManagementDevice.new(management_device_params.merge(device_id: params[:device_id]))
|
17
17
|
|
18
18
|
if @management_device.save
|
19
|
-
|
20
|
-
notice: 'New management device was successfully created'
|
19
|
+
process_success(success_redirect: device_url(id: @management_device.device))
|
21
20
|
else
|
22
21
|
process_error object: @management_device
|
23
22
|
end
|
@@ -25,8 +24,7 @@ module ForemanDatacenter
|
|
25
24
|
|
26
25
|
def update
|
27
26
|
if @management_device.update(management_device_params)
|
28
|
-
|
29
|
-
notice: 'Management device was successfully updated'
|
27
|
+
process_success(success_redirect: device_url(id: @management_device.device))
|
30
28
|
else
|
31
29
|
process_error object: @management_device
|
32
30
|
end
|
@@ -34,8 +32,7 @@ module ForemanDatacenter
|
|
34
32
|
|
35
33
|
def destroy
|
36
34
|
if @management_device.destroy
|
37
|
-
|
38
|
-
notice: 'Management device was successfully destroyed'
|
35
|
+
process_success(success_redirect: device_url(id: @management_device.device))
|
39
36
|
else
|
40
37
|
process_error object: @management_device
|
41
38
|
end
|
@@ -18,8 +18,7 @@ module ForemanDatacenter
|
|
18
18
|
@power_outlet = PowerOutlet.new(power_outlet_params.merge(device_id: params[:device_id]))
|
19
19
|
|
20
20
|
if @power_outlet.save
|
21
|
-
|
22
|
-
notice: 'Power outlet was successfully created.'
|
21
|
+
process_success(success_redirect: device_url(id: @power_outlet.device_id))
|
23
22
|
else
|
24
23
|
process_error object: @power_outlet
|
25
24
|
end
|
@@ -27,8 +26,7 @@ module ForemanDatacenter
|
|
27
26
|
|
28
27
|
def update
|
29
28
|
if @power_outlet.update(power_outlet_params)
|
30
|
-
|
31
|
-
notice: 'Power outlet was successfully updated.'
|
29
|
+
process_success(success_redirect: device_url(id: @power_outlet.device_id))
|
32
30
|
else
|
33
31
|
process_error object: @power_outlet
|
34
32
|
end
|
@@ -36,8 +34,7 @@ module ForemanDatacenter
|
|
36
34
|
|
37
35
|
def destroy
|
38
36
|
if @power_outlet.destroy
|
39
|
-
|
40
|
-
notice: 'Power outlet was successfully destroyed.'
|
37
|
+
process_success(success_redirect: device_url(id: @power_outlet.device_id))
|
41
38
|
else
|
42
39
|
process_error object: @power_outlet
|
43
40
|
end
|
@@ -52,14 +49,12 @@ module ForemanDatacenter
|
|
52
49
|
@power_outlet,
|
53
50
|
params[:power_port][:connection_status]
|
54
51
|
)
|
55
|
-
|
56
|
-
notice: 'Power outlet was successfully connected.'
|
52
|
+
process_success(success_msg: "Power outlet was successfully connected.", success_redirect: device_url(id: @power_outlet.device_id))
|
57
53
|
end
|
58
54
|
|
59
55
|
def disconnect
|
60
56
|
@power_outlet.power_port.disconnect
|
61
|
-
|
62
|
-
notice: 'Power outlet was successfully disconnected.'
|
57
|
+
process_success(success_msg: "Power outlet was successfully disconnected.", success_redirect: device_url(id: @power_outlet.device_id))
|
63
58
|
end
|
64
59
|
|
65
60
|
def for_device
|
@@ -24,8 +24,7 @@ module ForemanDatacenter
|
|
24
24
|
@power_port = ForemanDatacenter::PowerPort.new(power_port_params.merge(device_id: params[:device_id]))
|
25
25
|
|
26
26
|
if @power_port.save
|
27
|
-
|
28
|
-
notice: 'Power port was successfully created.'
|
27
|
+
process_success(success_redirect: device_url(id: @power_port.device_id))
|
29
28
|
else
|
30
29
|
process_error object: @power_port
|
31
30
|
end
|
@@ -33,8 +32,7 @@ module ForemanDatacenter
|
|
33
32
|
|
34
33
|
def update
|
35
34
|
if @power_port.update(power_port_params)
|
36
|
-
|
37
|
-
notice: 'Power port was successfully updated.'
|
35
|
+
process_success(success_redirect: device_url(id: @power_port.device_id))
|
38
36
|
else
|
39
37
|
process_error object: @power_port
|
40
38
|
end
|
@@ -42,8 +40,7 @@ module ForemanDatacenter
|
|
42
40
|
|
43
41
|
def destroy
|
44
42
|
if @power_port.destroy
|
45
|
-
|
46
|
-
notice: 'Power port was successfully destroyed.'
|
43
|
+
process_success(success_redirect: device_url(id: @power_port.device_id))
|
47
44
|
else
|
48
45
|
process_error object: @power_port
|
49
46
|
end
|
@@ -73,14 +70,12 @@ module ForemanDatacenter
|
|
73
70
|
power_outlet,
|
74
71
|
params[:power_port][:connection_status]
|
75
72
|
)
|
76
|
-
|
77
|
-
notice: 'Power port was successfully connected.'
|
73
|
+
process_success(success_msg: "Power port was successfully connected.", success_redirect: device_url(id: @power_port.device_id))
|
78
74
|
end
|
79
75
|
|
80
76
|
def disconnect
|
81
77
|
@power_port.disconnect
|
82
|
-
|
83
|
-
notice: 'Power port was successfully disconnected.'
|
78
|
+
process_success(success_msg: "Power port was successfully disconnected.", success_redirect: device_url(id: @power_port.device_id))
|
84
79
|
end
|
85
80
|
end
|
86
81
|
end
|
@@ -59,7 +59,7 @@ module ForemanDatacenter
|
|
59
59
|
end
|
60
60
|
|
61
61
|
def racks
|
62
|
-
@racks = @rack_group.racks.includes(:
|
62
|
+
@racks = @rack_group.racks.includes(devices: [:device_role])
|
63
63
|
process_error redirect: rack_groups_path(@rack_group), error_msg: 'Current Rack Group haven\'t any Racks.' if @racks.empty?
|
64
64
|
end
|
65
65
|
|
@@ -51,8 +51,9 @@ module ForemanDatacenter
|
|
51
51
|
end
|
52
52
|
|
53
53
|
def racks
|
54
|
-
@
|
55
|
-
|
54
|
+
@rack_groups = @site.rack_groups.includes(racks: [devices: [:device_role]])
|
55
|
+
@ungrouped_racks = @site.racks.where(rack_group_id: nil)#.includes(:device_role)
|
56
|
+
process_error redirect: site_path(@site), error_msg: 'Current site haven\'t any Racks.' if (@rack_groups.empty? && @ungrouped_racks.empty?)
|
56
57
|
end
|
57
58
|
|
58
59
|
def move
|
@@ -23,7 +23,7 @@ module ForemanDatacenter
|
|
23
23
|
scoped_search in: :second_interface, on: :name, complete_value: true, rename: :interface_b
|
24
24
|
|
25
25
|
def first_device
|
26
|
-
first_interface.device
|
26
|
+
self.try(:first_interface).try(:device)
|
27
27
|
end
|
28
28
|
|
29
29
|
def first_rack
|
@@ -35,7 +35,7 @@ module ForemanDatacenter
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def second_device
|
38
|
-
|
38
|
+
self.try(:second_interface).try(:device)
|
39
39
|
end
|
40
40
|
|
41
41
|
def second_rack
|
@@ -14,12 +14,34 @@
|
|
14
14
|
<% for port in @console_ports %>
|
15
15
|
<tr>
|
16
16
|
<td>
|
17
|
-
|
18
|
-
|
17
|
+
<% if port.console_server_port %>
|
18
|
+
<%= link_to port.console_server_port.device.name,
|
19
|
+
device_path(port.console_server_port.device) %>
|
20
|
+
<% else %>
|
21
|
+
<%= muted_text("Device not found", "span") %>
|
22
|
+
<% end %>
|
23
|
+
</td>
|
24
|
+
<td>
|
25
|
+
<% if port.console_server_port %>
|
26
|
+
<%= h port.console_server_port.name %>
|
27
|
+
<% else %>
|
28
|
+
<%= muted_text("Port not found", "span") %>
|
29
|
+
<% end %>
|
30
|
+
</td>
|
31
|
+
<td>
|
32
|
+
<% if port.device %>
|
33
|
+
<%= link_to port.device.name, device_path(port.device) %>
|
34
|
+
<% else %>
|
35
|
+
<%= muted_text("Device not found", "span") %>
|
36
|
+
<% end %>
|
37
|
+
</td>
|
38
|
+
<td>
|
39
|
+
<% if port %>
|
40
|
+
<%= h port.name %>
|
41
|
+
<% else %>
|
42
|
+
<%= muted_text("Port not found", "span") %>
|
43
|
+
<% end %>
|
19
44
|
</td>
|
20
|
-
<td><%= h port.console_server_port.name %></td>
|
21
|
-
<td><%= link_to port.device.name, device_path(port.device) %></td>
|
22
|
-
<td><%= h port.name %></td>
|
23
45
|
</tr>
|
24
46
|
<% end %>
|
25
47
|
</tbody>
|
@@ -15,15 +15,35 @@
|
|
15
15
|
<% for connection in @device_interface_connections %>
|
16
16
|
<tr>
|
17
17
|
<td>
|
18
|
-
|
18
|
+
<% if connection.first_device %>
|
19
|
+
<%= link_to connection.first_device.name,
|
19
20
|
device_path(connection.first_device) %>
|
21
|
+
<% else %>
|
22
|
+
<%= muted_text("Device not found", "span") %>
|
23
|
+
<% end %>
|
20
24
|
</td>
|
21
|
-
<td><%= h connection.first_interface.name %></td>
|
22
25
|
<td>
|
26
|
+
<% if connection.first_device %>
|
27
|
+
<%= h connection.first_interface.name %>
|
28
|
+
<% else %>
|
29
|
+
<%= muted_text("Interface not found", "span") %>
|
30
|
+
<% end %>
|
31
|
+
</td>
|
32
|
+
<td>
|
33
|
+
<% if connection.second_device %>
|
23
34
|
<%= link_to connection.second_device.name,
|
24
35
|
device_path(connection.second_device) %>
|
36
|
+
<% else %>
|
37
|
+
<%= muted_text("Device not found", "span") %>
|
38
|
+
<% end %>
|
39
|
+
</td>
|
40
|
+
<td>
|
41
|
+
<% if connection.second_device %>
|
42
|
+
<%= h connection.second_interface.name %>
|
43
|
+
<% else %>
|
44
|
+
<%= muted_text("Interface not found", "span") %>
|
45
|
+
<% end %>
|
25
46
|
</td>
|
26
|
-
<td><%= h connection.second_interface.name %></td>
|
27
47
|
</tr>
|
28
48
|
<% end %>
|
29
49
|
</tbody>
|
@@ -8,11 +8,24 @@
|
|
8
8
|
<td><%= h interface.mac_address %></td>
|
9
9
|
<td><%= h interface.ip_address %></td>
|
10
10
|
<td>
|
11
|
-
|
12
|
-
|
11
|
+
<% if interface.connected_interface %>
|
12
|
+
<%= link_to interface.connected_interface.device.name,
|
13
|
+
device_path(interface.connected_interface.device) %>
|
14
|
+
<% else %>
|
15
|
+
<%= muted_text("Device not found", "span") %>
|
16
|
+
<% end %>
|
13
17
|
</td>
|
14
18
|
<td>
|
15
|
-
|
19
|
+
<% if interface.connected_interface %>
|
20
|
+
<%= h interface.connected_interface.name %>
|
21
|
+
<% else %>
|
22
|
+
<%= muted_text("Interface not found", "span") %>
|
23
|
+
<% end %>
|
24
|
+
</td>
|
25
|
+
<td>
|
26
|
+
<%= h interface.connection.id %>
|
27
|
+
-
|
28
|
+
<%= h interface.form_factor %>
|
16
29
|
</td>
|
17
30
|
<td></td>
|
18
31
|
<td class="text-right">
|
@@ -56,6 +69,7 @@
|
|
56
69
|
<td></td>
|
57
70
|
<td class="text-muted">Not connected</td>
|
58
71
|
<td></td>
|
72
|
+
<td></td>
|
59
73
|
<td class="text-right">
|
60
74
|
<%= link_to new_device_interface_device_interface_connection_path(interface),
|
61
75
|
class: 'btn btn-success btn-xs', title: 'Connect' do %>
|
@@ -12,14 +12,14 @@
|
|
12
12
|
:class => 'btn btn-warning'
|
13
13
|
),
|
14
14
|
display_fake_delete_if_authorized(
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
15
|
+
hash_for_platform_path(:id => @platform).merge(:auth_object => @platform, :authorizer => authorizer),
|
16
|
+
class: 'btn btn-danger',
|
17
|
+
id: 'init-modal',
|
18
|
+
href: '#',
|
19
|
+
data: { objecttype: 'platform',
|
20
|
+
objectid: @platform.id,
|
21
|
+
objectname: @platform.to_label,
|
22
|
+
associatedobjects: associated_objects('platform') }
|
23
23
|
)
|
24
24
|
help_path %>
|
25
25
|
|
@@ -1,19 +1,18 @@
|
|
1
1
|
<% stylesheet 'foreman_datacenter/datacenter' %>
|
2
2
|
<% stylesheet 'foreman_datacenter/device_roles' %>
|
3
|
+
<% stylesheet 'foreman_datacenter/horizontal-scroll' %>
|
3
4
|
|
4
5
|
<% title h(@rack_group.name) %>
|
5
6
|
|
6
7
|
<%= breadcrumbs(items: [{caption: _('Rack Group %s') % @rack_group.name, url: rack_group_path(@rack_group)}, {caption: _('Racks Overview')}]) %>
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
</div>
|
17
|
-
<% end %>
|
9
|
+
<div class="row horizontal-scroll">
|
10
|
+
<% @racks.each do |rack| %>
|
11
|
+
<div class="col-md-4">
|
12
|
+
<%= render "foreman_datacenter/racks/device_position", rack: rack %>
|
13
|
+
</div>
|
14
|
+
<% end %>
|
15
|
+
</div>
|
16
|
+
|
18
17
|
<div><h6 class="text-right"><%= _("* side is not defined") %></h6></div>
|
19
18
|
<div><h6 class="text-right"><%= _("** size is not defined") %></h6></div>
|
@@ -25,7 +25,7 @@
|
|
25
25
|
<% end %>
|
26
26
|
<% unless rack.unpositioned_devices.empty? %>
|
27
27
|
<tr>
|
28
|
-
<td class="col-md-1">Unpositioned
|
28
|
+
<td class="col-md-1">Unpositioned</br>Devices</td>
|
29
29
|
<td class="col-md-4" style="text-align:center">
|
30
30
|
<% rack.unpositioned_devices.each do |d| %>
|
31
31
|
<div class="<%= "label " + d.device_role.color.downcase.gsub(" ","") %>" style="border-radius:40px;border:0px;"> </div>
|
@@ -1,17 +1,36 @@
|
|
1
1
|
<% stylesheet 'foreman_datacenter/datacenter' %>
|
2
2
|
<% stylesheet 'foreman_datacenter/device_roles' %>
|
3
|
+
<% stylesheet 'foreman_datacenter/horizontal-scroll' %>
|
3
4
|
|
4
5
|
<% title h(@site.name) %>
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
|
7
|
+
<%= breadcrumbs(items: [{caption: _('Site %s') % @site.name, url: site_path(@site)}, {caption: _('Racks Overview')}]) %>
|
8
|
+
|
9
|
+
<% unless @rack_groups.empty? %>
|
10
|
+
<% @rack_groups.each do |rg| %>
|
11
|
+
<h2>
|
12
|
+
<%= rg.name %>
|
13
|
+
</h2>
|
14
|
+
<div class="row horizontal-scroll">
|
15
|
+
<% rg.racks.each do |rack| %>
|
16
|
+
<div class="col-md-4">
|
17
|
+
<%= render "foreman_datacenter/racks/device_position", rack: rack %>
|
18
|
+
</div>
|
19
|
+
<% end %>
|
20
|
+
</div>
|
21
|
+
<% end %>
|
22
|
+
<% end %>
|
23
|
+
|
24
|
+
<% unless @ungrouped_racks.empty? %>
|
25
|
+
<h2>Ungrouped Racks</h2>
|
26
|
+
<div class="row horizontal-scroll">
|
27
|
+
<% @ungrouped_racks.each do |rack| %>
|
9
28
|
<div class="col-md-4">
|
10
|
-
<!-- Devices -->
|
11
29
|
<%= render "foreman_datacenter/racks/device_position", rack: rack %>
|
12
30
|
</div>
|
13
31
|
<% end %>
|
14
32
|
</div>
|
15
33
|
<% end %>
|
34
|
+
|
16
35
|
<div><h6 class="text-right"><%= _("* side is not defined") %></h6></div>
|
17
36
|
<div><h6 class="text-right"><%= _("** size is not defined") %></h6></div>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class AddLocationIdAndOrganizationIdColumnsToDevices < ActiveRecord::Migration
|
1
|
+
class AddLocationIdAndOrganizationIdColumnsToDevices < ActiveRecord::Migration[4.2]
|
2
2
|
def change
|
3
3
|
add_column :devices, :organization_id, :integer
|
4
4
|
add_column :devices, :location_id, :integer
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_datacenter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.20.
|
4
|
+
version: 1.20.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavel Ivanov
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2019-
|
12
|
+
date: 2019-08-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: prawn
|
@@ -90,6 +90,7 @@ files:
|
|
90
90
|
- app/assets/stylesheets/foreman_datacenter/device_interface_connections.css
|
91
91
|
- app/assets/stylesheets/foreman_datacenter/device_roles.css
|
92
92
|
- app/assets/stylesheets/foreman_datacenter/devices.css
|
93
|
+
- app/assets/stylesheets/foreman_datacenter/horizontal-scroll.css
|
93
94
|
- app/assets/stylesheets/foreman_datacenter/modal.css
|
94
95
|
- app/assets/stylesheets/foreman_datacenter/title_filter.css
|
95
96
|
- app/controllers/api/v2/foreman_datacenter/base_controller.rb
|
@@ -593,7 +594,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
593
594
|
- !ruby/object:Gem::Version
|
594
595
|
version: '0'
|
595
596
|
requirements: []
|
596
|
-
rubygems_version: 3.0.
|
597
|
+
rubygems_version: 3.0.3
|
597
598
|
signing_key:
|
598
599
|
specification_version: 4
|
599
600
|
summary: A plugin that lets you document your servers in a datacenter
|