Skip to content
This repository has been archived by the owner on Oct 19, 2020. It is now read-only.

Commit

Permalink
MGMT-1890 - assisted-service client should be backwards compatible (#18)
Browse files Browse the repository at this point in the history
  • Loading branch information
yevgeny-shnaidman authored Aug 23, 2020
1 parent 4000740 commit e9292b2
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 21 deletions.
2 changes: 2 additions & 0 deletions installer_dir/test_env.txt
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE=quay.io/openshift-release-dev/ocp-release@sha256:029d56f7cf4a0de420f84f9178e030a3cfb83a480f3d086a7f5ed31b62bc08d0
CLUSTER_ID=36f9da71-dbed-4cba-a974-7e103285fe55
DHCP_ALLOCATION_FILE=whatever
2 changes: 1 addition & 1 deletion tests/test_annotation_host3.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
"name": "eth0",
"model": "0x0001",
"mac": "41:68:00:0e:ce:82",
"ip": "192.168.126.13",
"ip": "fe80::5054:ff:fe0e:ce92",
"speed": -1
},
{
Expand Down
40 changes: 20 additions & 20 deletions utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,50 +3,50 @@
from assisted_service_client import ApiClient, Configuration, api, models



class InventoryHost:

def __init__(self, host_dict):
self._host = models.Host(**host_dict)
self._inventory = models.Inventory(**json.loads(self._host.inventory))

self._host = host_dict
self._inventory = json.loads(host_dict['inventory'])

def get_inventory_host_nics_data(self):
interfaces_list = [models.Interface(**interface) for interface in self._inventory.interfaces]
return [{'name': interface.name, 'model': interface.product, 'mac': interface.mac_address, 'ip': self._get_network_interface_ip(interface), 'speed': interface.speed_mbps} for interface in interfaces_list]
interfaces_list = self._inventory['interfaces']
return [{'name': interface.get('name', ''), 'model': interface.get('product', ''), 'mac': interface.get('mac_address'), 'ip': self._get_network_interface_ip(interface), 'speed': interface.get('speed_mbps', 0)} for interface in interfaces_list]


def get_inventory_host_cpu_data(self):
cpu = models.Cpu(**self._inventory.cpu)
return {'model': cpu.model_name, 'arch': cpu.architecture, 'flags': cpu.flags, 'clockMegahertz': cpu.frequency, 'count': cpu.count}
cpu = self._inventory['cpu']
return {'model': cpu.get('model_name', ''), 'arch': cpu.get('architecture', ''), 'flags': cpu.get('flags', ''), 'clockMegahertz': cpu.get('frequency', 0.0), 'count': cpu.get('count', 0)}


def get_inventory_host_storage_data(self):
disks_list = [models.Disk(**disk) for disk in self._inventory.disks]
return [{'name': disk.name, 'vendor': disk.vendor, 'sizeBytes': disk.size_bytes, 'model': disk.model, 'wwn': disk.wwn, 'hctl': disk.hctl, 'serialNumber': disk.serial, 'rotational': True if disk.drive_type == 'HDD' else False} for disk in disks_list]
disks_list = self._inventory['disks']
return [{'name': disk.get('name', ''), 'vendor': disk.get('vendor', ''), 'sizeBytes': disk.get('size_bytes', 0), 'model': disk.get('model', ''), 'wwn': disk.get('wwn', ''), 'hctl': disk.get('hctl', None), 'serialNumber': disk.get('serial', ''), 'rotational': True if disk.get('drive_type', '') == 'HDD' else False} for disk in disks_list]


def get_inventory_host_memory(self):
memory = models.Memory(**self._inventory.memory)
return int(memory.physical_bytes / 1024 / 1024)
memory = self._inventory['memory']
return int(memory.get('physical_bytes', 0) / 1024 / 1024)


def get_inventory_host_name(self):
return self._host.requested_hostname
return self._host.get('requested_hostname', '')


def get_inventory_host_system_vendor(self):
system_vendor = models.SystemVendor(**self._inventory.system_vendor)
return {'manufacturer': system_vendor.manufacturer, 'productName': system_vendor.product_name, 'serialNumber': system_vendor.serial_number}
system_vendor =self._inventory['system_vendor']
return {'manufacturer': system_vendor.get('manufacturer', ''), 'productName': system_vendor.get('product_name', ''), 'serialNumber': system_vendor.get('serial_number', None)}

def is_role(self, role):
return self._host.role == role
return self._host['role'] == role

def _get_network_interface_ip(self, interface):
if len(interface.ipv4_addresses) > 0:
return interface.ipv4_addresses[0].split("/")[0]
if len(interface.ipv6_addresses) > 0:
return interface.ipv6_addresses[0].split("/")[0]
ipv4_addresses = interface.get('ipv4_addresses', [])
if len(ipv4_addresses) > 0:
return ipv4_addresses[0].split("/")[0]
ipv6_addresses = interface.get('ipv6_addresses', [])
if len(ipv6_addresses) > 0:
return ipv6_addresses[0].split("/")[0]
return " "


Expand Down

0 comments on commit e9292b2

Please sign in to comment.