def setup_nova_quotas(self, project_id, instances=None, cores=None,
ram_mb=None, floating_ips=None):
self._get_nova_client()
updated = False
msg = "Updating nova quota %s for project id '%s' from %s to %s"
qs = self.nova.quotas.get(project_id).to_dict()
if instances is not None and qs['instances'] != instances:
self.logger.debug(msg % (
'instances', project_id, qs['instances'], instances))
qs['instances'] = instances
updated = True
if cores is not None and qs['cores'] != cores:
self.logger.debug(msg % ('cores', project_id, qs['cores'], cores))
qs['cores'] = cores
updated = True
if ram_mb is not None and qs['ram'] != ram_mb:
self.logger.debug(msg % (
'ram_mb', project_id, qs['ram'], ram_mb))
qs['ram'] = ram_mb
updated = True
if floating_ips is not None and qs['floating_ips'] != floating_ips:
self.logger.debug(msg % (
'floating_ips', project_id, qs['floating_ips'], floating_ips))
qs['floating_ips'] = floating_ips
updated = True
if updated:
try:
self.nova.quotas.update(
project_id, instances=qs['instances'],
cores=qs['cores'], ram=qs['ram'],
floating_ips=qs['floating_ips'])
except nova_exceptions.ClientException as e:
msg = "Unable to setup new Nova quotas for project id '%s': %s"
self.logger.error(msg % (project_id, e))
raise
msg = "Nova quotas updated successfully for project id '%s'"
self.logger.info(msg % project_id)
else:
msg = "Nova quotas update not needed for project id '%s'"
self.logger.debug(msg % project_id)
return updated
评论列表
文章目录