def count_stacks(self, cnxt, filters=None, tenant_safe=True): """ Return the number of stacks that match the given filters :param ctxt: RPC context. :param filters: a dict of ATTR:VALUE to match against stacks :returns: a integer representing the number of matched stacks """ return db_api.stack_count_all(cnxt, filters=filters, tenant_safe=tenant_safe)
def count_stacks(self, cnxt, filters=None, tenant_safe=True, show_deleted=False): """ Return the number of stacks that match the given filters :param ctxt: RPC context. :param filters: a dict of ATTR:VALUE to match against stacks :param tenant_safe: if true, scope the request by the current tenant :param show_deleted: if true, count will include the deleted stacks :returns: a integer representing the number of matched stacks """ return db_api.stack_count_all(cnxt, filters=filters, tenant_safe=tenant_safe, show_deleted=show_deleted)
def _validate_new_stack(self, cnxt, stack_name, parsed_template): if db_api.stack_get_by_name(cnxt, stack_name): raise exception.StackExists(stack_name=stack_name) tenant_limit = cfg.CONF.max_stacks_per_tenant if db_api.stack_count_all(cnxt) >= tenant_limit: message = _("You have reached the maximum stacks per tenant, %d." " Please delete some stacks.") % tenant_limit raise exception.RequestLimitExceeded(message=message) num_resources = len(parsed_template[parsed_template.RESOURCES]) if num_resources > cfg.CONF.max_resources_per_stack: message = exception.StackResourceLimitExceeded.msg_fmt raise exception.RequestLimitExceeded(message=message)
def count_all(cls, context, **kwargs): return db_api.stack_count_all(context, **kwargs)