def _get_object(self, *args, **kwargs): filter_id = self.kwargs['filter_id'] try: filter = api.fil_get_filter_metadata(self.request, filter_id) return filter except Exception: redirect = self.success_url msg = _('Unable to retrieve filter details.') exceptions.handle(self.request, msg, redirect=redirect)
def get_data(self, request, id): response = api.fil_get_filter_metadata(request, id) data = json.loads(response.text) filter = Filter(data['id'], data['filter_name'], data['filter_type'], data['dependencies'], data['interface_version'], data['object_metadata'], data['main'], data['has_reverse'], data['execution_server'], data['execution_server_reverse'], data['is_pre_put'], data['is_post_put'], data['is_pre_get'], data['is_post_get'], data['execution_order'], data['enabled'] ) return filter
def update_cell(self, request, datum, id, cell_name, new_cell_value): try: # updating changed value by new value response = api.fil_get_filter_metadata(request, id) data = json.loads(response.text) data[cell_name] = new_cell_value # TODO: Check only the valid keys, delete the rest if 'id' in data: # PUT does not allow this key del data['id'] if 'filter_name' in data: del data['filter_name'] if 'etag' in data: # PUT does not allow this key del data['etag'] if 'content_length' in data: # PUT does not allow this key del data['content_length'] if 'path' in data: # PUT does not allow this key del data['path'] if 'filter_type' in data: # PUT does not allow this key if data['filter_type'] == 'native' or data['filter_type'] == 'storlet': if 'execution_order' in data: del data['execution_order'] if 'enabled' in data: del data['enabled'] del data['filter_type'] api.fil_update_filter_metadata(request, id, data) except Conflict: # Returning a nice error message about name conflict. The message # from exception is not that clear for the user message = _("Can't change value") raise ValidationError(message) except Exception: exceptions.handle(request, ignore=True) return False return True
def get_dsl_filters_data(self): try: response = api.dsl_get_all_filters(self.request) if 200 <= response.status_code < 300: strobj = response.text else: error_message = 'Unable to get filters.' raise ValueError(error_message) except Exception as e: strobj = "[]" exceptions.handle(self.request, _(e.message)) instances = json.loads(strobj) ret = [] for inst in instances: response = api.fil_get_filter_metadata(self.request, inst['identifier']) if 200 <= response.status_code < 300: strobj = response.text else: error_message = 'Unable to get filters.' raise ValueError(error_message) _filter = json.loads(strobj) ret.append(registry_models.Filter(inst['identifier'], inst['name'], inst['activation_url'], inst['valid_parameters'], _filter['filter_name'])) return ret