No SQL parameter establish error

It seems nova removed 'instance.instance_type_id'
by which we were getting flavor.
Now instance has 'instance.flavor'.
Direct access of flavor.

Closes-Bug: #1707628

Change-Id: I128d8adb0754c5b5313fc3e5ed7c521afa0df508
Signed-off-by: Prabhat Ranjan <pranjank@in.ibm.com>
This commit is contained in:
Prabhat Ranjan 2017-08-01 19:04:59 +05:30
parent 4af5c380ec
commit 8749bda96e
3 changed files with 17 additions and 25 deletions

View File

@ -113,11 +113,13 @@ class VmPartitionInstanceTestCase(TestCase):
self.client = zhmcclient.Client(self.session)
self.cpc = self.client.cpcs.find(**{"name": "cpc_1"})
self.flags(host="foo")
flavor = flavor_obj.Flavor()
flavor.vcpus = 1
flavor.memory_mb = 512
self.instance = instance_obj.Instance()
self.instance.uuid = '6511ee0f-0d64-4392-b9e0-aaaaaaaaaaaa'
self.flavor = flavor_obj.Flavor()
self.flavor.vcpus = 1
self.flavor.memory_mb = 512
self.instance.flavor = flavor
self.part_name = "OpenStack-foo-" + self.instance.uuid
self.part_description = 'OpenStack CPCSubset=foo'
@ -154,7 +156,7 @@ class VmPartitionInstanceTestCase(TestCase):
# to hbas except hba_create
partition.hbas.create(dpm_hba_dict)
self.partition_inst = vm.PartitionInstance(
self.instance, self.cpc, self.flavor)
self.instance, self.cpc)
def test_properties(self):
properties = self.partition_inst.properties()
@ -170,9 +172,9 @@ class VmPartitionInstanceTestCase(TestCase):
properties = {
'name': partition_name,
'description': self.part_description,
'ifl-processors': self.flavor.vcpus,
'initial-memory': self.flavor.memory_mb,
'maximum-memory': self.flavor.memory_mb}
'ifl-processors': self.instance.flavor.vcpus,
'initial-memory': self.instance.flavor.memory_mb,
'maximum-memory': self.instance.flavor.memory_mb}
self.partition_inst.create(properties)
partition = self.cpc.partitions.find(**{"name": partition_name})

View File

@ -20,10 +20,8 @@ Supports DPM APIs for virtualization in z Systems
import nova_dpm.conf
from nova import context as context_object
from nova import exception
from nova.i18n import _
from nova.objects import flavor as flavor_object
from nova.virt import driver
from nova_dpm.virt.dpm import client_proxy
from nova_dpm.virt.dpm import constants
@ -318,14 +316,7 @@ class DPMDriver(driver.ComputeDriver):
if instance.image_ref != '':
raise exceptions.BootFromImageNotSupported()
if not flavor:
context = context_object.get_admin_context(read_deleted='yes')
flavor = (
flavor_object.Flavor.get_by_id(context,
instance.instance_type_id))
LOG.debug("Flavor = %s", flavor)
inst = vm.PartitionInstance(instance, self._cpc, flavor)
inst = vm.PartitionInstance(instance, self._cpc)
inst.create(inst.properties())
inst.attach_hbas()

View File

@ -108,16 +108,15 @@ def cpcsubset_partition_list(cpc):
class PartitionInstance(object):
def __init__(self, instance, cpc, flavor=None):
def __init__(self, instance, cpc):
self.instance = instance
self.flavor = flavor
self.cpc = cpc
self.partition = self.get_partition()
@staticmethod
def create_object(instance, cpc, flavor=None):
"""Generator method. Simplifies things in unittests"""
return PartitionInstance(instance, cpc, flavor=None)
return PartitionInstance(instance, cpc)
@property
def partition_name(self):
@ -139,10 +138,10 @@ class PartitionInstance(object):
properties = {}
properties['name'] = self.partition_name
properties['description'] = self.partition_description
if self.flavor is not None:
properties['ifl-processors'] = self.flavor.vcpus
properties['initial-memory'] = self.flavor.memory_mb
properties['maximum-memory'] = self.flavor.memory_mb
if self.instance.flavor is not None:
properties['ifl-processors'] = self.instance.flavor.vcpus
properties['initial-memory'] = self.instance.flavor.memory_mb
properties['maximum-memory'] = self.instance.flavor.memory_mb
return properties
def create(self, properties):
@ -386,7 +385,7 @@ class PartitionInstanceInfo(object):
self.partition = None
partition_manager = self.cpc.partitions
partition_lists = partition_manager.list(full_properties=False)
inst = PartitionInstance(self.instance, self.cpc, None)
inst = PartitionInstance(self.instance, self.cpc)
for partition in partition_lists:
if partition.properties['name'] == inst.partition_name:
self.partition = partition