Merge "Objectify firmware audit data"
This commit is contained in:
commit
4c3d7fb9c8
@ -34,6 +34,31 @@ from dcmanager.common import consts
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class FirmwareAuditData(object):
|
||||
def __init__(self, uuid, applied, pci_vendor,
|
||||
pci_device, applied_labels):
|
||||
self.uuid = uuid
|
||||
self.applied = applied
|
||||
self.pci_vendor = pci_vendor
|
||||
self.pci_device = pci_device
|
||||
self.applied_labels = applied_labels
|
||||
|
||||
def to_dict(self):
|
||||
return {
|
||||
'uuid': self.uuid,
|
||||
'applied': self.applied,
|
||||
'pci_vendor': self.pci_vendor,
|
||||
'pci_device': self.pci_device,
|
||||
'applied_labels': self.applied_labels,
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, values):
|
||||
if values is None:
|
||||
return None
|
||||
return cls(**values)
|
||||
|
||||
|
||||
class FirmwareAudit(object):
|
||||
"""Manages tasks related to firmware audits."""
|
||||
|
||||
@ -77,7 +102,11 @@ class FirmwareAudit(object):
|
||||
# Filter images which have been applied on RegionOne
|
||||
for image in local_device_images:
|
||||
if image.applied:
|
||||
filtered_images.append(image)
|
||||
filtered_images.append(FirmwareAuditData(image.uuid,
|
||||
image.applied,
|
||||
image.pci_vendor,
|
||||
image.pci_device,
|
||||
image.applied_labels))
|
||||
LOG.debug("RegionOne applied_images: %s" % filtered_images)
|
||||
except Exception:
|
||||
LOG.exception('Cannot retrieve device images for RegionOne, '
|
||||
@ -224,7 +253,10 @@ class FirmwareAudit(object):
|
||||
|
||||
# Check that all device images applied in RegionOne
|
||||
# are applied and installed on this subcloud
|
||||
# The audit_data for region one is a dictionary
|
||||
for image in audit_data:
|
||||
# audit_data will be a dict from passing through RPC, so objectify
|
||||
image = FirmwareAuditData.from_dict(image)
|
||||
proceed = self._check_subcloud_device_has_image(image,
|
||||
enabled_host_device_list,
|
||||
subcloud_device_image_states,
|
||||
|
@ -376,6 +376,13 @@ class TestFirmwareAudit(base.DCManagerTestCase):
|
||||
self.mock_audit_worker_api.return_value = self.fake_audit_worker_api
|
||||
self.addCleanup(p.stop)
|
||||
|
||||
def _rpc_convert(self, object_list):
|
||||
# Convert to dict like what would happen calling via RPC
|
||||
dict_results = []
|
||||
for result in object_list:
|
||||
dict_results.append(result.to_dict())
|
||||
return dict_results
|
||||
|
||||
def test_init(self):
|
||||
fm = firmware_audit.FirmwareAudit(self.ctxt,
|
||||
self.fake_dcmanager_api)
|
||||
@ -406,6 +413,9 @@ class TestFirmwareAudit(base.DCManagerTestCase):
|
||||
patch_audit_data, firmware_audit_data, kubernetes_audit_data = \
|
||||
am._get_audit_data(True, True, True)
|
||||
|
||||
# Convert to dict like what would happen calling via RPC
|
||||
firmware_audit_data = self._rpc_convert(firmware_audit_data)
|
||||
|
||||
for name in ['subcloud1', 'subcloud2']:
|
||||
fm.subcloud_firmware_audit(name, firmware_audit_data)
|
||||
expected_calls = [
|
||||
@ -439,6 +449,9 @@ class TestFirmwareAudit(base.DCManagerTestCase):
|
||||
patch_audit_data, firmware_audit_data, kubernetes_audit_data = \
|
||||
am._get_audit_data(True, True, True)
|
||||
|
||||
# Convert to dict like what would happen calling via RPC
|
||||
firmware_audit_data = self._rpc_convert(firmware_audit_data)
|
||||
|
||||
for name in ['subcloud1', 'subcloud2']:
|
||||
fm.subcloud_firmware_audit(name, firmware_audit_data)
|
||||
expected_calls = [
|
||||
@ -472,6 +485,9 @@ class TestFirmwareAudit(base.DCManagerTestCase):
|
||||
patch_audit_data, firmware_audit_data, kubernetes_audit_data = \
|
||||
am._get_audit_data(True, True, True)
|
||||
|
||||
# Convert to dict like what would happen calling via RPC
|
||||
firmware_audit_data = self._rpc_convert(firmware_audit_data)
|
||||
|
||||
for name in ['subcloud1', 'subcloud2']:
|
||||
fm.subcloud_firmware_audit(name, firmware_audit_data)
|
||||
expected_calls = [
|
||||
@ -505,6 +521,9 @@ class TestFirmwareAudit(base.DCManagerTestCase):
|
||||
patch_audit_data, firmware_audit_data, kubernetes_audit_data = \
|
||||
am._get_audit_data(True, True, True)
|
||||
|
||||
# Convert to dict like what would happen calling via RPC
|
||||
firmware_audit_data = self._rpc_convert(firmware_audit_data)
|
||||
|
||||
for name in ['subcloud1', 'subcloud2']:
|
||||
fm.subcloud_firmware_audit(name, firmware_audit_data)
|
||||
expected_calls = [
|
||||
@ -538,6 +557,9 @@ class TestFirmwareAudit(base.DCManagerTestCase):
|
||||
patch_audit_data, firmware_audit_data, kubernetes_audit_data = \
|
||||
am._get_audit_data(True, True, True)
|
||||
|
||||
# Convert to dict like what would happen calling via RPC
|
||||
firmware_audit_data = self._rpc_convert(firmware_audit_data)
|
||||
|
||||
for name in ['subcloud1', 'subcloud2']:
|
||||
fm.subcloud_firmware_audit(name, firmware_audit_data)
|
||||
expected_calls = [
|
||||
@ -571,6 +593,9 @@ class TestFirmwareAudit(base.DCManagerTestCase):
|
||||
patch_audit_data, firmware_audit_data, kubernetes_audit_data = \
|
||||
am._get_audit_data(True, True, True)
|
||||
|
||||
# Convert to dict like what would happen calling via RPC
|
||||
firmware_audit_data = self._rpc_convert(firmware_audit_data)
|
||||
|
||||
for name in ['subcloud1', 'subcloud2']:
|
||||
fm.subcloud_firmware_audit(name, firmware_audit_data)
|
||||
expected_calls = [
|
||||
@ -604,6 +629,9 @@ class TestFirmwareAudit(base.DCManagerTestCase):
|
||||
patch_audit_data, firmware_audit_data, kubernetes_audit_data = \
|
||||
am._get_audit_data(True, True, True)
|
||||
|
||||
# Convert to dict like what would happen calling via RPC
|
||||
firmware_audit_data = self._rpc_convert(firmware_audit_data)
|
||||
|
||||
for name in ['subcloud1', 'subcloud2']:
|
||||
fm.subcloud_firmware_audit(name, firmware_audit_data)
|
||||
expected_calls = [
|
||||
@ -637,6 +665,9 @@ class TestFirmwareAudit(base.DCManagerTestCase):
|
||||
patch_audit_data, firmware_audit_data, kubernetes_audit_data = \
|
||||
am._get_audit_data(True, True, True)
|
||||
|
||||
# Convert to dict like what would happen calling via RPC
|
||||
firmware_audit_data = self._rpc_convert(firmware_audit_data)
|
||||
|
||||
for name in ['subcloud1', 'subcloud2']:
|
||||
fm.subcloud_firmware_audit(name, firmware_audit_data)
|
||||
expected_calls = [
|
||||
|
Loading…
x
Reference in New Issue
Block a user