def set_limit(self, user, resource, capacity, force): style = None if capacity != 'default': try: capacity, style = units.parse_with_style(capacity) except: m = "Please specify capacity as a decimal integer or 'default'" raise CommandError(m) try: quota, default_capacity = user.get_resource_policy(resource) except Resource.DoesNotExist: raise CommandError("No such resource: %s" % resource) if not force: s_default = show_resource_value(default_capacity, resource, style) s_current = (show_resource_value(quota.capacity, resource, style) if quota is not None else 'default') s_capacity = (show_resource_value(capacity, resource, style) if capacity != 'default' else capacity) self.stdout.write("user: %s (%s)\n" % (user.uuid, user.username)) self.stdout.write("default capacity: %s\n" % s_default) self.stdout.write("current capacity: %s\n" % s_current) self.stdout.write("new capacity: %s\n" % s_capacity) self.stdout.write("Confirm? (y/n) ") response = raw_input() if string.lower(response) not in ['y', 'yes']: self.stdout.write("Aborted.\n") return if capacity == 'default': try: quotas.remove_base_quota(user, resource) except Exception as e: import traceback traceback.print_exc() raise CommandError("Failed to remove policy: %s" % e) else: try: quotas.add_base_quota(user, resource, capacity) except Exception as e: raise CommandError("Failed to add policy: %s" % e)
def set_limits(self, users, resource, capacity, force=False, exclude=None): try: r = Resource.objects.get(name=resource) except Resource.DoesNotExist: raise CommandError("No such resource '%s'." % resource) style = None if capacity != "default": try: capacity, style = units.parse_with_style(capacity) except: m = ("Please specify capacity as a decimal integer or " "'default'") raise CommandError(m) if not force: if len(users) == 1: self.handle_limits_user(users[0], r, capacity, style) else: self.handle_limits_all(r, capacity, exclude, style) if capacity == "default": capacity = r.uplimit quotas.update_base_quota(users, resource, capacity)