def update(self, params): """Update a config value.""" if not self.user.is_superuser: raise HandlerPermissionError() if "name" not in params: raise HandlerPKError("Missing name in params") if "value" not in params: raise HandlerValidationError("Missing value in params") name = params["name"] value = params["value"] try: form = get_config_form(name, {name: value}) except ValidationError: raise HandlerDoesNotExistError(name) if form.is_valid(): try: request = HttpRequest() request.user = self.user form.save(ENDPOINT.UI, request) except ValidationError as e: self._fix_validation_error(name, e.error_dict) raise HandlerValidationError(e.error_dict) return self._include_choice( {"name": name, "value": Config.objects.get_config(name)} ) else: self._fix_validation_error(name, form.errors) raise HandlerValidationError(form.errors)
def update(self, params): """Update a config value.""" assert reload_object(self.user).is_superuser, "Permission denied." if 'name' not in params: raise HandlerPKError("Missing name in params") if 'value' not in params: raise HandlerValidationError("Missing value in params") name = params['name'] value = params['value'] form = get_config_form(name, {name: value}) if form.is_valid(): try: form.save() except ValidationError as e: self._fix_validation_error(name, e.error_dict) raise HandlerValidationError(e.error_dict) return self._include_choice({ 'name': name, 'value': Config.objects.get_config(name), }) else: self._fix_validation_error(name, form.errors) raise HandlerValidationError(form.errors)
def get(self, params): """Get a config value.""" if "name" not in params: raise HandlerPKError("Missing name in params") name = params["name"] if name not in get_config_keys(self.user): raise HandlerDoesNotExistError(name) self.cache["loaded_pks"].update({name}) return self.dehydrate_configs([name])[0]
def get_node(self, params): """Get node object from params""" if "node_id" not in params: raise HandlerPKError("Missing node_id in params") node_id = params["node_id"] try: node = Node.objects.get(id=node_id) except Node.DoesNotExist: raise HandlerDoesNotExistError(node_id) return node
def get(self, params): """Get a config value.""" if "name" not in params: raise HandlerPKError("Missing name in params") name = params["name"] if name not in CONFIG_ITEMS: raise HandlerDoesNotExistError(name) self.cache["loaded_pks"].update({name}) return self._include_choice( {"name": name, "value": Config.objects.get_config(name)} )
def get_node(self, params): """Get node object from params.""" if "system_id" not in params: raise HandlerPKError("Missing system_id in params") system_id = params["system_id"] if system_id in self.cache["system_ids"]: return self.cache["system_ids"][system_id] try: node = Node.objects.get(system_id=params["system_id"]) except Node.DoesNotExist: raise HandlerDoesNotExistError(params["system_id"]) self.cache["system_ids"][system_id] = node return node
def list(self, params): """List NodeDevice objects. :param system_id: `Node.system_id` for the NodeDevices. """ if "system_id" not in params: raise HandlerPKError("Missing system_id in params") system_id = params["system_id"] qs = self.get_queryset(for_list=True) qs = qs.filter(node__system_id=system_id) objs = list(qs) getpk = attrgetter(self._meta.pk) self.cache["loaded_pks"].update(getpk(obj) for obj in objs) return [self.full_dehydrate(obj, for_list=True) for obj in objs]