Skip to content
Snippets Groups Projects
Verified Commit 1176f193 authored by Alexander Olofsson's avatar Alexander Olofsson
Browse files

Update API against mac handling changes

parent 08d836a4
No related branches found
No related tags found
No related merge requests found
Pipeline #99256 failed
...@@ -14,7 +14,7 @@ module LiudeskCMDB ...@@ -14,7 +14,7 @@ module LiudeskCMDB
self.class.fields.each do |field, _| self.class.fields.each do |field, _|
@data[field] = fields[field] if fields.key? field @data[field] = fields[field] if fields.key? field
end end
@old_data = @data.dup @old_data = @data.deep_clone
@unknown = nil @unknown = nil
end end
...@@ -146,7 +146,7 @@ module LiudeskCMDB ...@@ -146,7 +146,7 @@ module LiudeskCMDB
def create def create
data = client.post(self.class.api_url, self.class.model_version, data_for_write(all: true)) data = client.post(self.class.api_url, self.class.model_version, data_for_write(all: true))
load_data(JSON.parse(data)) load_data(JSON.parse(data))
@old_data = @data.dup @old_data = @data.deep_clone
self self
end end
...@@ -154,13 +154,13 @@ module LiudeskCMDB ...@@ -154,13 +154,13 @@ module LiudeskCMDB
def refresh def refresh
data = client.get(api_url, self.class.model_version) data = client.get(api_url, self.class.model_version)
load_data(JSON.parse(data)) load_data(JSON.parse(data))
@old_data = @data.dup @old_data = @data.deep_clone
self self
end end
def reset! def reset!
@data = @old_data.dup @data = @old_data.deep_clone
self self
end end
...@@ -174,7 +174,7 @@ module LiudeskCMDB ...@@ -174,7 +174,7 @@ module LiudeskCMDB
def update def update
data = client.patch(api_url, self.class.model_version, data_for_write.transform_values { |v| v.nil? ? "" : v }) data = client.patch(api_url, self.class.model_version, data_for_write.transform_values { |v| v.nil? ? "" : v })
load_data(JSON.parse(data), merge: true) load_data(JSON.parse(data), merge: true)
@old_data = @data.dup @old_data = @data.deep_clone
self self
end end
......
...@@ -15,7 +15,7 @@ module LiudeskCMDB::Models ...@@ -15,7 +15,7 @@ module LiudeskCMDB::Models
:capital_equipment_id, :capital_object_id, :supplier, :supplier_article_number, :capital_equipment_id, :capital_object_id, :supplier, :supplier_article_number,
:purchase_date, :purchase_order, :purchase_order_reference, :purchase_price, :purchase_date, :purchase_order, :purchase_order_reference, :purchase_price,
:delivery_date, :supplier_asset_id, :warranty_enddate, :service_agreement_enddate, :delivery_date, :supplier_asset_id, :warranty_enddate, :service_agreement_enddate,
:mac, :network_access_role, :make, :model, :serial_number, :description, :hostname :mac_and_network_access_roles, :make, :model, :serial_number, :description, :hostname
field_attributes :hostname, name: "hostName" field_attributes :hostname, name: "hostName"
field_attributes :created_date, convert: Time field_attributes :created_date, convert: Time
...@@ -28,5 +28,21 @@ module LiudeskCMDB::Models ...@@ -28,5 +28,21 @@ module LiudeskCMDB::Models
def to_s def to_s
name name
end end
def mac_addresses
mac_and_network_access_roles.map { |map| map["mac"] }
end
def network_access_roles
mac_and_network_access_roles.map { |map| map["networkAccessRole"] }
end
def mac
mac_addresses.first
end
def network_access_role
network_access_roles.first
end
end end
end end
...@@ -16,3 +16,9 @@ class String ...@@ -16,3 +16,9 @@ class String
[first, rest.map(&:capitalize)].join [first, rest.map(&:capitalize)].join
end end
end end
class Hash
def deep_clone
Marshal.load(Marshal.dump(self))
end
end
...@@ -15,15 +15,19 @@ ...@@ -15,15 +15,19 @@
"supplierAssetId": "001255", "supplierAssetId": "001255",
"warrantyEnddate": "2025-04-08T14:15:58.368Z", "warrantyEnddate": "2025-04-08T14:15:58.368Z",
"serviceAgreementEnddate": "2023-04-08T14:15:58.368Z", "serviceAgreementEnddate": "2023-04-08T14:15:58.368Z",
"mac": "30:D0:42:E7:2B:DF",
"networkAccessRole": "Guest",
"make": "HP",
"model": "eliteBook G8",
"serialNumber": "dfg54fgh34efg", "serialNumber": "dfg54fgh34efg",
"description": "En valfri beskrivning", "description": "En valfri beskrivning",
"guid": "8e2cbcf0-1c79-4b4e-8813-71f8da3c3d81", "macAndNetworkAccessRoles": [
{
"mac": "30:D0:42:E7:2B:DF",
"networkAccessRole": "Guest"
}
],
"make": "HP",
"model": "eliteBook G8",
"hostName": "lnx00001",
"name": "HP eliteBook G8-0001", "name": "HP eliteBook G8-0001",
"guid": "8e2cbcf0-1c79-4b4e-8813-71f8da3c3d81",
"createdDate": "2023-04-06T14:15:58.368Z", "createdDate": "2023-04-06T14:15:58.368Z",
"updatedDate": "2023-04-06T14:15:58.368Z", "updatedDate": "2023-04-06T14:15:58.368Z"
"hostName": "win00001"
} }
...@@ -16,12 +16,16 @@ ...@@ -16,12 +16,16 @@
"supplierAssetId": "001255", "supplierAssetId": "001255",
"warrantyEnddate": "2025-04-08T14:15:58.368Z", "warrantyEnddate": "2025-04-08T14:15:58.368Z",
"serviceAgreementEnddate": "2023-04-08T14:15:58.368Z", "serviceAgreementEnddate": "2023-04-08T14:15:58.368Z",
"mac": "30:D0:42:E7:2B:DF",
"networkAccessRole": "Guest",
"make": "HP", "make": "HP",
"model": "eliteBook G8", "model": "eliteBook G8",
"serialNumber": "dfg54fgh34efg", "serialNumber": "dfg54fgh34efg",
"description": "En valfri beskrivning", "description": "En valfri beskrivning",
"macAndNetworkAccessRoles": [
{
"mac": "30:D0:42:E7:2B:DF",
"networkAccessRole": "Guest"
}
],
"guid": "8e2cbcf0-1c79-4b4e-8813-71f8da3c3d81", "guid": "8e2cbcf0-1c79-4b4e-8813-71f8da3c3d81",
"name": "HP eliteBook G8-0001", "name": "HP eliteBook G8-0001",
"createdDate": "2023-04-06T14:15:58.368Z", "createdDate": "2023-04-06T14:15:58.368Z",
......
...@@ -62,9 +62,8 @@ class TestV1Models < Minitest::Test ...@@ -62,9 +62,8 @@ class TestV1Models < Minitest::Test
assert_equal "HP eliteBook G8-0001", hardware.name assert_equal "HP eliteBook G8-0001", hardware.name
assert_equal Time.parse("2023-04-06T14:15:58.368Z"), hardware.created_date assert_equal Time.parse("2023-04-06T14:15:58.368Z"), hardware.created_date
assert_equal Time.parse("2023-04-06T14:15:58.368Z"), hardware.updated_date assert_equal Time.parse("2023-04-06T14:15:58.368Z"), hardware.updated_date
assert_equal "win00001", hardware.hostname assert_equal "lnx00001", hardware.hostname
hardware.network_access_role = nil
hardware.supplier = "Dustin" hardware.supplier = "Dustin"
@client.expect( @client.expect(
...@@ -72,7 +71,6 @@ class TestV1Models < Minitest::Test ...@@ -72,7 +71,6 @@ class TestV1Models < Minitest::Test
[ [
"liudesk-cmdb/api/Hardware/8e2cbcf0-1c79-4b4e-8813-71f8da3c3d81", :v1, "liudesk-cmdb/api/Hardware/8e2cbcf0-1c79-4b4e-8813-71f8da3c3d81", :v1,
{ {
"networkAccessRole" => "",
"supplier" => "Dustin" "supplier" => "Dustin"
} }
] ]
...@@ -224,7 +222,7 @@ class TestV1Models < Minitest::Test ...@@ -224,7 +222,7 @@ class TestV1Models < Minitest::Test
assert_equal "HP eliteBook G8-0001", hardware.name assert_equal "HP eliteBook G8-0001", hardware.name
assert_equal Time.parse("2023-04-06T14:15:58.368Z"), hardware.created_date assert_equal Time.parse("2023-04-06T14:15:58.368Z"), hardware.created_date
assert_equal Time.parse("2023-04-06T14:15:58.368Z"), hardware.updated_date assert_equal Time.parse("2023-04-06T14:15:58.368Z"), hardware.updated_date
assert_equal "win00001", hardware.hostname assert_equal "lnx00001", hardware.hostname
end end
def test_handling_of_unexpected_data def test_handling_of_unexpected_data
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment