add volume metadata sync function
Change-Id: Iff0a0f5c319014d4a69ef84b614711eaa7868c0e
This commit is contained in:
@@ -60,8 +60,9 @@ from cinderclient.v2 import client as cinder_client
|
|||||||
from cinderclient import exceptions as cinder_exception
|
from cinderclient import exceptions as cinder_exception
|
||||||
|
|
||||||
from eventlet.greenpool import GreenPool
|
from eventlet.greenpool import GreenPool
|
||||||
from keystoneclient import exceptions as keystone_exception
|
|
||||||
from keystoneclient.v2_0 import client as kc
|
from keystoneclient.v2_0 import client as kc
|
||||||
|
from keystoneclient import exceptions as keystone_exception
|
||||||
|
|
||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
@@ -546,6 +547,8 @@ class CinderProxy(manager.SchedulerDependentManager):
|
|||||||
'attach_time': None,
|
'attach_time': None,
|
||||||
'bootable': bootable_vl
|
'bootable': bootable_vl
|
||||||
})
|
})
|
||||||
|
metadata = volume._info['metadata']
|
||||||
|
self._update_volume_metada(context, volume_id, metadata)
|
||||||
elif volume_status == "in-use":
|
elif volume_status == "in-use":
|
||||||
self.db.volume_update(context, volume_id,
|
self.db.volume_update(context, volume_id,
|
||||||
{'status': volume._info['status'],
|
{'status': volume._info['status'],
|
||||||
@@ -558,6 +561,20 @@ class CinderProxy(manager.SchedulerDependentManager):
|
|||||||
LOG.info(_('cascade ino: updated the volume %s status from'
|
LOG.info(_('cascade ino: updated the volume %s status from'
|
||||||
'cinder-proxy'), volume_id)
|
'cinder-proxy'), volume_id)
|
||||||
|
|
||||||
|
def _update_volume_metada(self, context, volume_id, ccded_volume_metadata):
|
||||||
|
ccding_vol_metadata = self.db.volume_metadata_get(context, volume_id)
|
||||||
|
ccded_vol_metadata_keys = ccded_volume_metadata.keys()
|
||||||
|
if 'logicalVolumeId' in ccded_vol_metadata_keys:
|
||||||
|
ccded_vol_metadata_keys.remove('logicalVolumeId')
|
||||||
|
for temp_key in ccded_vol_metadata_keys:
|
||||||
|
if temp_key not in ccding_vol_metadata:
|
||||||
|
ccding_vol_metadata[temp_key] =\
|
||||||
|
ccded_volume_metadata.get(temp_key, None)
|
||||||
|
else:
|
||||||
|
continue
|
||||||
|
self.db.volume_metadata_update(context, volume_id,
|
||||||
|
ccding_vol_metadata, True)
|
||||||
|
|
||||||
def _update_volume_types(self, context, volumetypes):
|
def _update_volume_types(self, context, volumetypes):
|
||||||
vol_types = self.db.volume_type_get_all(context, inactive=False)
|
vol_types = self.db.volume_type_get_all(context, inactive=False)
|
||||||
LOG.debug(_("cascade ino:, vol_types cascading :%s"), vol_types)
|
LOG.debug(_("cascade ino:, vol_types cascading :%s"), vol_types)
|
||||||
|
|||||||
Reference in New Issue
Block a user