Skip to content

Commit 85ef2d8

Browse files
author
Dan Clarizio
authored
Merge pull request #3398 from skovic/network-device-ui-redesign
Change the way that network device details are displayed
2 parents 4e2c43b + f6043e3 commit 85ef2d8

File tree

18 files changed

+271
-37
lines changed

18 files changed

+271
-37
lines changed

app/controllers/application_controller.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ def pp_choices
137137
:emscluster => "grid",
138138
:emscontainer => "grid",
139139
:filesystem => "list",
140+
:guestdevice => "list",
140141
:flavor => "list",
141142
:host => "grid",
142143
:job => "list",
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
class GuestDeviceController < ApplicationController
2+
include Mixins::GenericListMixin
3+
include Mixins::GenericShowMixin
4+
include Mixins::GenericSessionMixin
5+
include Mixins::MoreShowActions
6+
7+
before_action :check_privileges
8+
before_action :session_data
9+
after_action :cleanup_action
10+
after_action :set_session_data
11+
12+
def self.model
13+
@model ||= "GuestDevice".safe_constantize
14+
end
15+
16+
def title
17+
_('Guest Devices')
18+
end
19+
20+
def model
21+
self.class.model
22+
end
23+
24+
def self.table_name
25+
@table_name ||= "guest_devices"
26+
end
27+
28+
def session_data
29+
@title = _("Guest Devices")
30+
@layout = "guest_device"
31+
@lastaction = session[:guest_device_lastaction]
32+
end
33+
34+
def set_session_data
35+
session[:layout] = @layout
36+
session[:guest_device_lastaction] = @lastaction
37+
end
38+
39+
def textual_group_list
40+
[
41+
%i(properties ports firmware),
42+
]
43+
end
44+
helper_method(:textual_group_list)
45+
end

app/controllers/physical_server_controller.rb

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@ class PhysicalServerController < ApplicationController
99
after_action :cleanup_action
1010
after_action :set_session_data
1111

12+
def self.display_methods
13+
%w(guest_devices)
14+
end
15+
16+
def display_guest_devices
17+
nested_list(GuestDevice, :named_scope => :with_ethernet_type)
18+
end
19+
1220
def self.table_name
1321
@table_name ||= "physical_servers"
1422
end
@@ -36,7 +44,7 @@ def show_list
3644

3745
def textual_group_list
3846
[
39-
%i(properties networks relationships power_management assets firmware_details network_adapters smart_management),
47+
%i(properties networks relationships power_management assets firmware_details smart_management),
4048
]
4149
end
4250
helper_method(:textual_group_list)

app/helpers/application_helper.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1341,6 +1341,7 @@ def pdf_page_size_style
13411341
floating_ip
13421342
generic_object
13431343
generic_object_definition
1344+
guest_device
13441345
host
13451346
host_aggregate
13461347
load_balancer
@@ -1441,6 +1442,7 @@ def render_listnav_filename
14411442
flavor
14421443
floating_ip
14431444
generic_object_definition
1445+
guest_device
14441446
host
14451447
load_balancer
14461448
middleware_deployment
@@ -1509,6 +1511,7 @@ def render_listnav_filename
15091511
flavor
15101512
floating_ip
15111513
generic_object_definition
1514+
guest_device
15121515
host
15131516
host_aggregate
15141517
load_balancer
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
class ApplicationHelper::Toolbar::GuestDeviceCenter < ApplicationHelper::Toolbar::Basic
2+
end
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
class ApplicationHelper::Toolbar::GuestDevicesCenter < ApplicationHelper::Toolbar::Basic
2+
end

app/helpers/application_helper/toolbar_chooser.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,7 @@ def center_toolbar_filename_classic
441441
load_balancers network_ports network_routers orchestration_stacks resource_pools
442442
security_groups storages middleware_deployments
443443
middleware_servers)
444-
to_display_center = %w(stack_orchestration_template topology cloud_object_store_objects generic_objects physical_servers)
444+
to_display_center = %w(stack_orchestration_template topology cloud_object_store_objects generic_objects physical_servers guest_devices)
445445
performance_layouts = %w(vm host ems_container)
446446
if @lastaction == 'show' && (@view || @display != 'main') && !@layout.starts_with?("miq_request")
447447
if @display == "vms" || @display == "all_vms"
@@ -530,6 +530,7 @@ def center_toolbar_filename_classic
530530
ems_object_storage
531531
timeline
532532
usage
533+
guest_device
533534
generic_object_definition).include?(@layout)
534535
if ["show_list"].include?(@lastaction)
535536
return "#{@layout.pluralize}_center_tb"

app/helpers/guest_device_helper.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module GuestDeviceHelper
2+
include_concern 'TextualSummary'
3+
end
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
module GuestDeviceHelper::TextualSummary
2+
def textual_group_properties
3+
TextualGroup.new(
4+
_("Properties"),
5+
%i(device_name location manufacturer field_replaceable_unit)
6+
)
7+
end
8+
9+
def textual_group_ports
10+
ports = {:labels => [_("Name"), _("MAC Address")]}
11+
ports[:values] = @record.child_devices.collect do |port|
12+
[
13+
port.name,
14+
port.address
15+
]
16+
end
17+
18+
TextualMultilabel.new(
19+
_("Ports"),
20+
ports
21+
)
22+
end
23+
24+
def textual_group_firmware
25+
firmware = {:labels => [_("Name"), _("Version")]}
26+
firmware[:values] = @record.firmwares.collect do |fw|
27+
[
28+
fw.name,
29+
fw.version
30+
]
31+
end
32+
33+
TextualMultilabel.new(
34+
_("Firmware"),
35+
firmware
36+
)
37+
end
38+
39+
def textual_device_name
40+
{:label => _("Name"), :value => @record.device_name}
41+
end
42+
43+
def textual_manufacturer
44+
{:label => _("Manufacturer"), :value => @record.manufacturer}
45+
end
46+
47+
def textual_location
48+
{:label => _("Location"), :value => @record.location}
49+
end
50+
51+
def textual_field_replaceable_unit
52+
{:label => _("FRU"), :value => @record.field_replaceable_unit}
53+
end
54+
end

app/helpers/physical_server_helper/textual_summary.rb

Lines changed: 10 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module PhysicalServerHelper::TextualSummary
22
def textual_group_properties
33
TextualGroup.new(
44
_("Properties"),
5-
%i(name model product_name manufacturer machine_type serial_number ems_ref capacity memory cores health_state loc_led_state)
5+
%i(name model product_name manufacturer machine_type serial_number ems_ref capacity memory cores network_devices health_state loc_led_state)
66
)
77
end
88

@@ -42,14 +42,6 @@ def textual_group_firmware_details
4242
)
4343
end
4444

45-
def textual_group_network_adapters
46-
TextualCustom.new(
47-
_("Network Devices"),
48-
"textual_network_adapter_table",
49-
%i(network_adapter)
50-
)
51-
end
52-
5345
def textual_group_smart_management
5446
TextualTags.new(_("Smart Management"), %i(tags))
5547
end
@@ -163,6 +155,15 @@ def textual_health_state
163155
{:label => _("Health State"), :value => @record.health_state}
164156
end
165157

158+
def textual_network_devices
159+
hardware_nics_count = @record.hardware.nics.count
160+
device = {:label => _("Network Devices"), :value => hardware_nics_count, :icon => "ff ff-network-card"}
161+
if hardware_nics_count.positive?
162+
device[:link] = "/physical_server/show/#{@record.id}?display=guest_devices"
163+
end
164+
device
165+
end
166+
166167
def textual_fw_details
167168
fw_details = []
168169
@record.hardware.firmwares.each do |fw|
@@ -171,29 +172,4 @@ def textual_fw_details
171172

172173
{:value => fw_details}
173174
end
174-
175-
def textual_network_adapter
176-
network_adapters = []
177-
178-
@record.hardware.nics.each do |nic|
179-
port_names = []
180-
mac_addresses = []
181-
182-
child_devices = nic.child_devices.sort_by(&:device_name)
183-
184-
child_devices.each do |child_device|
185-
port_names.push(child_device.device_name)
186-
mac_addresses.push(child_device.address)
187-
end
188-
189-
network_adapters.push(:location => nic.location,
190-
:adapter_name => nic.device_name,
191-
:manufacturer => nic.manufacturer,
192-
:fru => nic.field_replaceable_unit,
193-
:port_names => port_names,
194-
:mac_addresses => mac_addresses)
195-
end
196-
197-
{:value => network_adapters}
198-
end
199175
end

0 commit comments

Comments
 (0)