def _validate_volume_size(size): """Validate the various possible errors for volume size""" try: volume_size = float(size) except (ValueError, TypeError) as err: LOG.error(err) msg = ("Required element/key - instance volume 'size' was not " "specified as a number (value was %s)." % size) raise exception.ReddwarfError(msg) if int(volume_size) != volume_size or int(volume_size) < 1: msg = ("Volume 'size' needs to be a positive " "integer value, %s cannot be accepted." % volume_size) raise exception.ReddwarfError(msg) max_size = int(config.Config.get('max_accepted_volume_size', 1)) if int(volume_size) > max_size: msg = ("Volume 'size' cannot exceed maximum " "of %d Gb, %s cannot be accepted." % (max_size, volume_size)) raise exception.VolumeQuotaExceeded(msg)
def _validate_create_body(self, body): try: body['backup'] body['backup']['name'] body['backup']['instance'] except KeyError as e: LOG.error(_("Create Backup Required field(s) " "- %s") % e) raise exception.ReddwarfError( "Required element/key - %s was not specified" % e)
def __init__(self, security_group=None, id=None, context=None): if id is None and security_group is None: msg = "Security Group does not have id defined!" raise exception.InvalidModelError(msg) elif security_group is None: try: client = reddwarf.common.remote.create_nova_client(context) self._data_object = client.security_groups.get(id) except nova_exceptions.NotFound, e: raise exception.NotFound(id=id) except nova_exceptions.ClientException, e: raise exception.ReddwarfError(str(e))
def delete(self, context): try: sec_group_rules = self.get_rules() if sec_group_rules: for rule in sec_group_rules: rule.delete(context) RemoteSecurityGroup.delete(self.id, context) super(SecurityGroup, self).delete() except exception.ReddwarfError: LOG.exception('Failed to delete security group') raise exception.ReddwarfError("Failed to delete Security Group")