Merge "Move _check_metadata_properties to cinder/utils"

This commit is contained in:
Jenkins 2016-06-24 22:46:05 +00:00 committed by Gerrit Code Review
commit ebee5c09fb
3 changed files with 28 additions and 46 deletions

View File

@ -160,6 +160,29 @@ def check_ssh_injection(cmd_list):
raise exception.SSHInjectionThreat(command=cmd_list) raise exception.SSHInjectionThreat(command=cmd_list)
def check_metadata_properties(metadata=None):
"""Checks that the volume metadata properties are valid."""
if not metadata:
metadata = {}
for k, v in metadata.items():
if len(k) == 0:
msg = _("Metadata property key blank.")
LOG.warning(msg)
raise exception.InvalidVolumeMetadata(reason=msg)
if len(k) > 255:
msg = _("Metadata property key %s greater than 255 "
"characters.") % k
LOG.warning(msg)
raise exception.InvalidVolumeMetadataSize(reason=msg)
if len(v) > 255:
msg = _("Metadata property key %s value greater than "
"255 characters.") % k
LOG.warning(msg)
raise exception.InvalidVolumeMetadataSize(reason=msg)
def last_completed_audit_period(unit=None): def last_completed_audit_period(unit=None):
"""This method gives you the most recently *completed* audit period. """This method gives you the most recently *completed* audit period.

View File

@ -754,7 +754,7 @@ class API(base.Base):
context, e, context, e,
resource='snapshots', resource='snapshots',
size=volume.size) size=volume.size)
self._check_metadata_properties(metadata) utils.check_metadata_properties(metadata)
snapshot = None snapshot = None
try: try:
@ -960,24 +960,6 @@ class API(base.Base):
LOG.info(_LI("Delete volume metadata completed successfully."), LOG.info(_LI("Delete volume metadata completed successfully."),
resource=volume) resource=volume)
def _check_metadata_properties(self, metadata=None):
if not metadata:
metadata = {}
for k, v in metadata.items():
if len(k) == 0:
msg = _("Metadata property key blank.")
LOG.warning(msg)
raise exception.InvalidVolumeMetadata(reason=msg)
if len(k) > 255:
msg = _("Metadata property key greater than 255 characters.")
LOG.warning(msg)
raise exception.InvalidVolumeMetadataSize(reason=msg)
if len(v) > 255:
msg = _("Metadata property value greater than 255 characters.")
LOG.warning(msg)
raise exception.InvalidVolumeMetadataSize(reason=msg)
@wrap_check_policy @wrap_check_policy
def update_volume_metadata(self, context, volume, def update_volume_metadata(self, context, volume,
metadata, delete=False, metadata, delete=False,
@ -993,7 +975,7 @@ class API(base.Base):
'%s status.') % volume['status'] '%s status.') % volume['status']
LOG.info(msg, resource=volume) LOG.info(msg, resource=volume)
raise exception.InvalidVolume(reason=msg) raise exception.InvalidVolume(reason=msg)
self._check_metadata_properties(metadata) utils.check_metadata_properties(metadata)
db_meta = self.db.volume_metadata_update(context, volume['id'], db_meta = self.db.volume_metadata_update(context, volume['id'],
metadata, metadata,
delete, delete,
@ -1022,7 +1004,7 @@ class API(base.Base):
`metadata` argument will be deleted. `metadata` argument will be deleted.
""" """
self._check_metadata_properties(metadata) utils.check_metadata_properties(metadata)
db_meta = self.db.volume_admin_metadata_update(context, volume['id'], db_meta = self.db.volume_admin_metadata_update(context, volume['id'],
metadata, delete, add, metadata, delete, add,
update) update)
@ -1066,7 +1048,7 @@ class API(base.Base):
_metadata = orig_meta.copy() _metadata = orig_meta.copy()
_metadata.update(metadata) _metadata.update(metadata)
self._check_metadata_properties(_metadata) utils.check_metadata_properties(_metadata)
snapshot.metadata = _metadata snapshot.metadata = _metadata
snapshot.save() snapshot.save()

View File

@ -268,29 +268,6 @@ class ExtractVolumeRequestTask(flow_utils.CinderTask):
'volume_type': volume_type}) 'volume_type': volume_type})
return volume_type return volume_type
@staticmethod
def _check_metadata_properties(metadata=None):
"""Checks that the volume metadata properties are valid."""
if not metadata:
metadata = {}
for (k, v) in metadata.items():
if len(k) == 0:
msg = _("Metadata property key blank")
LOG.warning(msg)
raise exception.InvalidVolumeMetadata(reason=msg)
if len(k) > 255:
msg = _("Metadata property key %s greater than 255 "
"characters") % k
LOG.warning(msg)
raise exception.InvalidVolumeMetadataSize(reason=msg)
if len(v) > 255:
msg = _("Metadata property key %s value greater than"
" 255 characters") % k
LOG.warning(msg)
raise exception.InvalidVolumeMetadataSize(reason=msg)
def _extract_availability_zone(self, availability_zone, snapshot, def _extract_availability_zone(self, availability_zone, snapshot,
source_volume): source_volume):
"""Extracts and returns a validated availability zone. """Extracts and returns a validated availability zone.
@ -464,7 +441,7 @@ class ExtractVolumeRequestTask(flow_utils.CinderTask):
# to make sure we don't pass empty dict # to make sure we don't pass empty dict
specs = None specs = None
self._check_metadata_properties(metadata) utils.check_metadata_properties(metadata)
return { return {
'size': size, 'size': size,