Merge "Nova review updates for _node_resource"
This commit is contained in:
commit
640890019f
@ -144,9 +144,30 @@ class IronicDriverTestCase(test.NoDBTestCase):
|
||||
self.assertEqual(props['memory_mb'], result['memory_mb_used'])
|
||||
self.assertEqual(props['local_gb'], result['local_gb'])
|
||||
self.assertEqual(props['local_gb'], result['local_gb_used'])
|
||||
self.assertEqual(props['cpu_arch'],
|
||||
jsonutils.loads(result['supported_instances'])[0][0])
|
||||
self.assertEqual(node_uuid, result['hypervisor_hostname'])
|
||||
self.assertEqual(stats, jsonutils.loads(result['stats']))
|
||||
|
||||
def test__node_resource_canonicalizes_arch(self):
|
||||
node_uuid = uuidutils.generate_uuid()
|
||||
props = _get_properties()
|
||||
props['cpu_arch'] = 'i386'
|
||||
node = ironic_utils.get_test_node(uuid=node_uuid, properties=props)
|
||||
|
||||
result = self.driver._node_resource(node)
|
||||
self.assertEqual('i686',
|
||||
jsonutils.loads(result['supported_instances'])[0][0])
|
||||
|
||||
def test__node_resource_unknown_arch(self):
|
||||
node_uuid = uuidutils.generate_uuid()
|
||||
props = _get_properties()
|
||||
del props['cpu_arch']
|
||||
node = ironic_utils.get_test_node(uuid=node_uuid, properties=props)
|
||||
|
||||
result = self.driver._node_resource(node)
|
||||
self.assertEqual([], jsonutils.loads(result['supported_instances']))
|
||||
|
||||
def test__node_resource_exposes_capabilities(self):
|
||||
props = _get_properties()
|
||||
props['capabilities'] = 'test:capability'
|
||||
|
@ -28,9 +28,10 @@ from oslo.config import cfg
|
||||
from ironic.nova.virt.ironic import client_wrapper
|
||||
from ironic.nova.virt.ironic import ironic_states
|
||||
from ironic.nova.virt.ironic import patcher
|
||||
from nova import context as nova_context
|
||||
from nova.compute import arch
|
||||
from nova.compute import power_state
|
||||
from nova.compute import task_states
|
||||
from nova import context as nova_context
|
||||
from nova import exception
|
||||
from nova.objects import flavor as flavor_obj
|
||||
from nova.objects import instance as instance_obj
|
||||
@ -116,8 +117,10 @@ def _validate_instance_and_node(icli, instance):
|
||||
raise exception.InstanceNotFound(instance_id=instance['uuid'])
|
||||
|
||||
|
||||
def _get_nodes_supported_instances(cpu_arch=''):
|
||||
def _get_nodes_supported_instances(cpu_arch=None):
|
||||
"""Return supported instances for a node."""
|
||||
if not cpu_arch:
|
||||
return []
|
||||
return [(cpu_arch, 'baremetal', 'baremetal')]
|
||||
|
||||
|
||||
@ -183,7 +186,12 @@ class IronicDriver(virt_driver.ComputeDriver):
|
||||
vcpus = int(node.properties.get('cpus', 0))
|
||||
memory_mb = int(node.properties.get('memory_mb', 0))
|
||||
local_gb = int(node.properties.get('local_gb', 0))
|
||||
cpu_arch = str(node.properties.get('cpu_arch', 'NotFound'))
|
||||
try:
|
||||
cpu_arch = arch.canonicalize(node.properties.get('cpu_arch', None))
|
||||
except exception.InvalidArchitectureName:
|
||||
cpu_arch = None
|
||||
if not cpu_arch:
|
||||
LOG.warn(_LW("cpu_arch not defined for node '%s'"), node.uuid)
|
||||
|
||||
nodes_extra_specs = self.extra_specs.copy()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user