Interfaces detailed info added into nodes report

Interfaces info changes:

- interfaces details added
- offloading modes added
- interface properties added: SR-IOV, mtu, dpdk, numa_node

Meta info about numa topology added: numa nodes, hugepages, distances
Node error_type field removed. This field doesn't reflect actual
node state.

Check that all node attributes were exported added into test.

Change-Id: I9b5f45dad43fefb0e60a563123dab833293e4332
Closes-Bug: #1575669
Closes-Bug: #1575666
This commit is contained in:
Alexander Kislitsky 2016-04-27 15:47:32 +03:00
parent 51da64b7db
commit 85178d53c1
2 changed files with 120 additions and 4 deletions

View File

@ -89,7 +89,6 @@ INSTALLATION_INFO_SKELETON = {
{
'bond_interfaces': count,
'nic_interfaces': count,
'error_type': None,
'group_id': None,
'id': None,
'manufacturer': None,
@ -141,7 +140,54 @@ INSTALLATION_INFO_SKELETON = {
'version': None,
'manufacturer': None
},
'interfaces': count
'interfaces': [
{
'pxe': None,
'name': None,
'driver': None,
'state': None,
'max_speed': None,
'current_speed': None,
'offloading_modes': [
{
'state': None,
'name': None,
'sub': [
{
'state': None,
'name': None,
}
]
}
],
'interface_properties': {
'mtu': None,
'numa_node': None,
'disable_offloading': None,
'sriov': {
'available': None,
'enabled': None,
'physnet': None,
'sriov_numvfs': None,
'sriov_totalvfs': None
},
'dpdk': {
'enabled': None
}
}
}
],
'numa_topology': {
'numa_nodes': [
{
'memory': None,
'id': None,
'cpus': count
}
],
'supported_hugepages': [None],
'distances': [None]
}
}
}
],

View File

@ -34,17 +34,87 @@ class NodesToCsvExportTest(InstStructureTest, DbTest):
def test_get_node_keys_paths(self):
exporter = StatsToCsv()
_, _, _, csv_keys_paths = exporter.get_node_keys_paths()
self.assertTrue(['cluster_id'] in csv_keys_paths)
self.assertTrue(['id'] in csv_keys_paths)
self.assertTrue(['group_id'] in csv_keys_paths)
self.assertTrue(['cluster_fuel_version'] in csv_keys_paths)
self.assertTrue(['master_node_uid'] in csv_keys_paths)
self.assertTrue(['os'] in csv_keys_paths)
self.assertTrue(['roles', 0] in csv_keys_paths)
self.assertTrue(['pending_addition'] in csv_keys_paths)
self.assertTrue(['pending_deletion'] in csv_keys_paths)
self.assertTrue(['pending_roles', 0] in csv_keys_paths)
self.assertTrue(['status'] in csv_keys_paths)
self.assertTrue(['online'] in csv_keys_paths)
self.assertTrue(['platform_name'] in csv_keys_paths)
self.assertTrue(['manufacturer'] in csv_keys_paths)
self.assertTrue(['error_type'] in csv_keys_paths)
self.assertTrue(['meta', 'cpu', 'real'] in csv_keys_paths)
self.assertTrue(['meta', 'cpu', 'total'] in csv_keys_paths)
self.assertTrue(['meta', 'cpu', 'spec', 0, 'frequency']
in csv_keys_paths)
self.assertTrue(['meta', 'cpu', 'spec', 0, 'model']
in csv_keys_paths)
self.assertTrue(['meta', 'memory', 'slots'] in csv_keys_paths)
self.assertTrue(['meta', 'memory', 'total'] in csv_keys_paths)
self.assertTrue(['meta', 'memory', 'maximum_capacity']
in csv_keys_paths)
self.assertTrue(['meta', 'memory', 'devices', 0, 'frequency']
in csv_keys_paths)
self.assertTrue(['meta', 'memory', 'devices', 0, 'type']
in csv_keys_paths)
self.assertTrue(['meta', 'memory', 'devices', 0, 'size']
in csv_keys_paths)
self.assertTrue(['meta', 'disks', 0, 'name'] in csv_keys_paths)
self.assertTrue(['meta', 'disks', 0, 'removable'] in csv_keys_paths)
self.assertTrue(['meta', 'disks', 0, 'model'] in csv_keys_paths)
self.assertTrue(['meta', 'disks', 0, 'size'] in csv_keys_paths)
self.assertTrue(['meta', 'system', 'product'] in csv_keys_paths)
self.assertTrue(['meta', 'system', 'family'] in csv_keys_paths)
self.assertTrue(['meta', 'system', 'version'] in csv_keys_paths)
self.assertTrue(['meta', 'system', 'manufacturer'] in csv_keys_paths)
self.assertTrue(['meta', 'numa_topology', 'numa_nodes', 0, 'memory']
in csv_keys_paths)
self.assertTrue(['meta', 'numa_topology', 'numa_nodes', 0, 'id']
in csv_keys_paths)
self.assertTrue(['meta', 'numa_topology', 'supported_hugepages', 0]
in csv_keys_paths)
self.assertTrue(['meta', 'numa_topology', 'distances', 0]
in csv_keys_paths)
self.assertTrue(['meta', 'interfaces', 0, 'name'] in csv_keys_paths)
self.assertTrue(['meta', 'interfaces', 0, 'pxe'] in csv_keys_paths)
self.assertTrue(['meta', 'interfaces', 0, 'driver'] in csv_keys_paths)
self.assertTrue(['meta', 'interfaces', 0, 'max_speed']
in csv_keys_paths)
self.assertTrue(['meta', 'interfaces', 0, 'offloading_modes',
0, 'state'] in csv_keys_paths)
self.assertTrue(['meta', 'interfaces', 0, 'offloading_modes',
0, 'name'] in csv_keys_paths)
self.assertTrue(['meta', 'interfaces', 0, 'offloading_modes',
0, 'sub', 0, 'name'] in csv_keys_paths)
self.assertTrue(['meta', 'interfaces', 0, 'interface_properties',
'sriov', 'available'] in csv_keys_paths)
self.assertTrue(['meta', 'interfaces', 0, 'interface_properties',
'sriov', 'enabled'] in csv_keys_paths)
self.assertTrue(['meta', 'interfaces', 0, 'interface_properties',
'sriov', 'physnet'] in csv_keys_paths)
self.assertTrue(['meta', 'interfaces', 0, 'interface_properties',
'sriov', 'sriov_numvfs'] in csv_keys_paths)
self.assertTrue(['meta', 'interfaces', 0, 'interface_properties',
'sriov', 'sriov_totalvfs'] in csv_keys_paths)
self.assertTrue(['meta', 'interfaces', 0, 'interface_properties',
'dpdk', 'enabled'] in csv_keys_paths)
self.assertTrue(['meta', 'interfaces', 0, 'interface_properties',
'mtu'] in csv_keys_paths)
self.assertTrue(['meta', 'interfaces', 0, 'interface_properties',
'disable_offloading'] in csv_keys_paths)
self.assertTrue(['meta', 'interfaces', 0, 'interface_properties',
'numa_node'] in csv_keys_paths)
def test_get_flatten_nodes(self):
installations_num = 10