Ironic: report node.resource_class
Bump API microversion and expose this up to the resource tracker. Change-Id: Ie0f1e7b04cefc0d4656dce7ade81b5148f528dc5 Partial-Bug: #1604916
This commit is contained in:
parent
c1e739c607
commit
7b8195a8a8
@ -74,7 +74,7 @@ class IronicClientWrapperTestCase(test.NoDBTestCase):
|
|||||||
'ironic_url': CONF.ironic.api_endpoint,
|
'ironic_url': CONF.ironic.api_endpoint,
|
||||||
'max_retries': CONF.ironic.api_max_retries,
|
'max_retries': CONF.ironic.api_max_retries,
|
||||||
'retry_interval': CONF.ironic.api_retry_interval,
|
'retry_interval': CONF.ironic.api_retry_interval,
|
||||||
'os_ironic_api_version': '1.20'}
|
'os_ironic_api_version': '1.21'}
|
||||||
mock_ir_cli.assert_called_once_with(1, **expected)
|
mock_ir_cli.assert_called_once_with(1, **expected)
|
||||||
|
|
||||||
@mock.patch.object(ironic_client, 'get_client')
|
@mock.patch.object(ironic_client, 'get_client')
|
||||||
@ -87,7 +87,7 @@ class IronicClientWrapperTestCase(test.NoDBTestCase):
|
|||||||
'ironic_url': CONF.ironic.api_endpoint,
|
'ironic_url': CONF.ironic.api_endpoint,
|
||||||
'max_retries': CONF.ironic.api_max_retries,
|
'max_retries': CONF.ironic.api_max_retries,
|
||||||
'retry_interval': CONF.ironic.api_retry_interval,
|
'retry_interval': CONF.ironic.api_retry_interval,
|
||||||
'os_ironic_api_version': '1.20'}
|
'os_ironic_api_version': '1.21'}
|
||||||
mock_ir_cli.assert_called_once_with(1, **expected)
|
mock_ir_cli.assert_called_once_with(1, **expected)
|
||||||
|
|
||||||
@mock.patch.object(ironic_client, 'get_client')
|
@mock.patch.object(ironic_client, 'get_client')
|
||||||
@ -101,7 +101,7 @@ class IronicClientWrapperTestCase(test.NoDBTestCase):
|
|||||||
'ironic_url': CONF.ironic.api_endpoint,
|
'ironic_url': CONF.ironic.api_endpoint,
|
||||||
'max_retries': CONF.ironic.api_max_retries,
|
'max_retries': CONF.ironic.api_max_retries,
|
||||||
'retry_interval': CONF.ironic.api_retry_interval,
|
'retry_interval': CONF.ironic.api_retry_interval,
|
||||||
'os_ironic_api_version': '1.20',
|
'os_ironic_api_version': '1.21',
|
||||||
'os_cacert': 'fake-cafile',
|
'os_cacert': 'fake-cafile',
|
||||||
'ca_file': 'fake-cafile'}
|
'ca_file': 'fake-cafile'}
|
||||||
mock_ir_cli.assert_called_once_with(1, **expected)
|
mock_ir_cli.assert_called_once_with(1, **expected)
|
||||||
|
@ -254,7 +254,8 @@ class IronicDriverTestCase(test.NoDBTestCase):
|
|||||||
node = ironic_utils.get_test_node(uuid=node_uuid,
|
node = ironic_utils.get_test_node(uuid=node_uuid,
|
||||||
instance_uuid=self.instance_uuid,
|
instance_uuid=self.instance_uuid,
|
||||||
instance_info=instance_info,
|
instance_info=instance_info,
|
||||||
properties=props)
|
properties=props,
|
||||||
|
resource_class='foo')
|
||||||
|
|
||||||
result = self.driver._node_resource(node)
|
result = self.driver._node_resource(node)
|
||||||
|
|
||||||
@ -266,7 +267,7 @@ class IronicDriverTestCase(test.NoDBTestCase):
|
|||||||
"disk_available_least",
|
"disk_available_least",
|
||||||
"supported_instances",
|
"supported_instances",
|
||||||
"stats",
|
"stats",
|
||||||
"numa_topology"]
|
"numa_topology", "resource_class"]
|
||||||
wantkeys.sort()
|
wantkeys.sort()
|
||||||
gotkeys = result.keys()
|
gotkeys = result.keys()
|
||||||
gotkeys.sort()
|
gotkeys.sort()
|
||||||
@ -287,6 +288,7 @@ class IronicDriverTestCase(test.NoDBTestCase):
|
|||||||
|
|
||||||
self.assertEqual(node_uuid, result['hypervisor_hostname'])
|
self.assertEqual(node_uuid, result['hypervisor_hostname'])
|
||||||
self.assertEqual(stats, result['stats'])
|
self.assertEqual(stats, result['stats'])
|
||||||
|
self.assertEqual('foo', result['resource_class'])
|
||||||
self.assertIsNone(result['numa_topology'])
|
self.assertIsNone(result['numa_topology'])
|
||||||
|
|
||||||
def test__node_resource(self):
|
def test__node_resource(self):
|
||||||
|
@ -46,6 +46,7 @@ def get_test_node(**kw):
|
|||||||
'reservation': kw.get('reservation'),
|
'reservation': kw.get('reservation'),
|
||||||
'maintenance': kw.get('maintenance', False),
|
'maintenance': kw.get('maintenance', False),
|
||||||
'network_interface': kw.get('network_interface'),
|
'network_interface': kw.get('network_interface'),
|
||||||
|
'resource_class': kw.get('resource_class'),
|
||||||
'extra': kw.get('extra', {}),
|
'extra': kw.get('extra', {}),
|
||||||
'updated_at': kw.get('created_at'),
|
'updated_at': kw.get('created_at'),
|
||||||
'created_at': kw.get('updated_at')})()
|
'created_at': kw.get('updated_at')})()
|
||||||
|
@ -29,7 +29,7 @@ CONF = cfg.CONF
|
|||||||
ironic = None
|
ironic = None
|
||||||
|
|
||||||
# The API version required by the Ironic driver
|
# The API version required by the Ironic driver
|
||||||
IRONIC_API_VERSION = (1, 20)
|
IRONIC_API_VERSION = (1, 21)
|
||||||
|
|
||||||
|
|
||||||
class IronicClientWrapper(object):
|
class IronicClientWrapper(object):
|
||||||
|
@ -322,6 +322,7 @@ class IronicDriver(virt_driver.ComputeDriver):
|
|||||||
'hypervisor_hostname': str(node.uuid),
|
'hypervisor_hostname': str(node.uuid),
|
||||||
'hypervisor_type': self._get_hypervisor_type(),
|
'hypervisor_type': self._get_hypervisor_type(),
|
||||||
'hypervisor_version': self._get_hypervisor_version(),
|
'hypervisor_version': self._get_hypervisor_version(),
|
||||||
|
'resource_class': node.resource_class,
|
||||||
# The Ironic driver manages multiple hosts, so there are
|
# The Ironic driver manages multiple hosts, so there are
|
||||||
# likely many different CPU models in use. As such it is
|
# likely many different CPU models in use. As such it is
|
||||||
# impossible to provide any meaningful info on the CPU
|
# impossible to provide any meaningful info on the CPU
|
||||||
|
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
upgrade:
|
||||||
|
- The ironic driver now requires python-ironicclient>=1.6.0,
|
||||||
|
and requires the ironic service to support API version 1.21.
|
Loading…
x
Reference in New Issue
Block a user