foreman_datacenter 1.20.4 → 1.20.6
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 +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
|