Fix volume OVO create method

When we create a volume in the DB using the OVO interface we were
missing some fields in the volume present in memory after it has been
created.

This was caused by the create method not passing the expected attributes
to the _from_db_object.

Because of this missing information we have places in the code where we
forcefully a reload of the whole Volume OVO when it shouldn't be
necessary.

This patch fixes the create method of the Volume OVO and removes an
instance of the forceful reload of the volume, reducing our DB calls.

Change-Id: Ia59cbc5a4eb279e56f07ff9f44aa40b582aea829
This commit is contained in:
Gorka Eguileor 2021-02-25 17:40:32 +01:00
parent 9607e2e6e4
commit bea4586635
2 changed files with 2 additions and 4 deletions

View File

@ -351,7 +351,8 @@ class Volume(cleanable.CinderCleanableObject, base.CinderObject,
volume_types.get_default_volume_type()['id']) volume_types.get_default_volume_type()['id'])
db_volume = db.volume_create(self._context, updates) db_volume = db.volume_create(self._context, updates)
self._from_db_object(self._context, self, db_volume) expected_attrs = self._get_expected_attrs(self._context)
self._from_db_object(self._context, self, db_volume, expected_attrs)
def save(self): def save(self):
updates = self.cinder_obj_get_changes() updates = self.cinder_obj_get_changes()

View File

@ -353,9 +353,6 @@ class API(base.Base):
if flow_engine.storage.fetch('refresh_az'): if flow_engine.storage.fetch('refresh_az'):
self.list_availability_zones(enable_cache=True, self.list_availability_zones(enable_cache=True,
refresh_cache=True) refresh_cache=True)
# Refresh the object here, otherwise things ain't right
vref = objects.Volume.get_by_id(
context, vref['id'])
LOG.info("Create volume request issued successfully.", LOG.info("Create volume request issued successfully.",
resource=vref) resource=vref)
return vref return vref