Skip to content

Commit

Permalink
Add server's firmware to the inventory
Browse files Browse the repository at this point in the history
  • Loading branch information
Tadej Borovšak committed Jul 11, 2019
1 parent 91741ac commit 55f7879
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,9 @@ def physical_racks
def physical_chassis
rf_client.Chassis.Members.reject { |c| c.ChassisType == "Rack" }
end

def firmware_inventory
rf_client.UpdateService.FirmwareInventory&.Members || []
end
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ def parse
physical_racks
physical_chassis
physical_chassis_details
firmwares
end

private
Expand Down Expand Up @@ -121,6 +122,23 @@ def hardwares
end
end

def firmwares
collector.firmware_inventory.each do |firmware|
# RelatedItem is actually an array and is not a typo.
(firmware.RelatedItem || []).each do |item|
server = persister.physical_servers.lazy_find(item["@odata.id"])
computer = persister.physical_server_computer_systems.lazy_find(server)
hardware = persister.physical_server_hardwares.lazy_find(computer)
persister.physical_server_firmwares.build(
:resource => hardware,
:build => firmware.SoftwareId,
:name => firmware.Name,
:version => firmware.Version
)
end
end
end

def get_server_memory_mb(server)
(server.MemorySummary&.TotalSystemMemoryGiB || 0) * 1024
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ def initialize_physical_infra_collections
physical_server_hardwares
physical_server_network_devices
physical_server_storage_adapters
physical_server_firmwares

physical_racks
physical_chassis
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@
:disk_capacity => 6_017_150_230_528,
:memory_mb => 32_768,
},
:firmware => {
:build => "IVE1",
:name => "Bios",
:version => "1.20",
},
:nic => {
:device_name => "Intel X722 LOM (onboard)",
:manufacturer => "Intel",
Expand Down Expand Up @@ -66,6 +71,11 @@
:disk_capacity => 412_316_860_416,
:memory_mb => 32_768,
},
:firmware => {
:build => "MyGTH-76",
:name => "UEFI",
:version => "2.50.4a",
},
:nic => {},
:storage => {},
},
Expand Down Expand Up @@ -187,6 +197,7 @@
assert_physical_servers
assert_physical_server_details
assert_hardwares
assert_firmwares
assert_nics
assert_storage_adapters
assert_racks
Expand Down Expand Up @@ -241,6 +252,13 @@ def assert_hardwares
end
end

def assert_firmwares
servers.each do |server_ems_ref, attrs|
server = PhysicalServer.find_by!(:ems_ref => server_ems_ref)
check_attributes(server.hardware.firmwares.first, attrs, :firmware)
end
end

def assert_nics
servers.each do |server_ems_ref, attrs|
server = PhysicalServer.find_by!(:ems_ref => server_ems_ref)
Expand Down

0 comments on commit 55f7879

Please sign in to comment.