def handle(self, request, data): metric_module_file = data['metric_module_file'] del data['metric_module_file'] metric_module_id = self.initial['id'] try: response = api.update_metric_module_metadata( request, metric_module_id, data) if 200 <= response.status_code < 300: try: if metric_module_file is not None: response = api.update_metric_module_data( request, metric_module_id, metric_module_file) if response.status_code > 300: # error raise sdsexception.SdsException(response.text) except Exception as ex: pass messages.success(request, _('Successfully metric module updated.')) return data else: raise sdsexception.SdsException(response.text) except Exception as ex: redirect = reverse("horizon:crystal:metrics:index") error_message = "Unable to update metric module.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)
def handle(self, request, data): controller_file = data['controller_file'] del data['controller_file'] try: response = api.update_controller_metadata(request, self.initial['id'], data) if 200 <= response.status_code < 300: try: if controller_file is not None: response = api.update_controller_data( request, self.initial['id'], controller_file) if response.status_code > 300: # error raise sdsexception.SdsException(response.text) except: pass messages.success( request, _('Successfully updated controller: %s') % self.initial['id']) return data else: raise sdsexception.SdsException(response.text) except Exception as ex: redirect = reverse("horizon:crystal:controllers:index") error_message = "Unable to update controller.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)
def get_storagenodes_data(self): ret = [] try: if not self.response: self.response = api.swift_get_all_nodes(self.request) if 200 <= self.response.status_code < 300: strobj = self.response.text else: error_message = 'Unable to get nodes.' raise sdsexception.SdsException(error_message) except Exception as e: strobj = '[]' exceptions.handle(self.request, e.message) nodes = json.loads(strobj) for node in nodes: if node['type'] == 'object': ret.append( nodes_models.StorageNode(node['name'], node['ip'], node['region_name'], node['zone_name'], node['ssh_access'], node['last_ping'], node['devices'])) return ret
def get_metric_modules_data(self): try: response = api.get_all_metric_modules(self.request) if 200 <= response.status_code < 300: strobj = response.text else: error_message = 'Unable to get metric modules.' raise sdsexception.SdsException(error_message) except Exception as e: strobj = '[]' exceptions.handle(self.request, e.message) instances = json.loads(strobj) ret = [] for inst in instances: if inst['execution_server'] == 'proxy': inst['execution_server'] = 'Proxy Node' elif inst['execution_server'] == 'object': inst['execution_server'] = 'Storage Node' elif inst['execution_server'] == 'proxy/object': inst['execution_server'] = 'Proxy & Storage Nodes' ret.append( wm_models.MetricModule(inst['id'], inst['metric_name'], inst['class_name'], inst['put'], inst['get'], inst['replicate'], inst['execution_server'], inst['status'])) return ret
def get_storlet_filters_data(self): try: if not self.response: self.response = api.list_filters(self.request) if 200 <= self.response.status_code < 300: strobj = self.response.text else: error_message = 'Unable to get filters.' raise sdsexception.SdsException(error_message) except Exception as e: strobj = "[]" exceptions.handle(self.request, e.message) instances = json.loads(strobj) ret = [] for inst in instances: if inst['filter_type'] == 'storlet': if inst['execution_server'] == 'proxy': inst['execution_server'] = 'Proxy Node' elif inst['execution_server'] == 'object': inst['execution_server'] = 'Storage Node' if inst['reverse'] == 'proxy': inst['reverse'] = 'Proxy Node' elif inst['reverse'] == 'object': inst['reverse'] = 'Storage Node' ret.append(filters_models.Filter(inst['dsl_name'], inst['filter_name'], inst['dsl_name'], inst['filter_type'], inst['language'], inst['dependencies'], inst['interface_version'], inst['main'], inst['execution_server'], inst['reverse'], inst['put'], inst['get'], False, False, False, inst['valid_parameters'])) return ret
def delete(self, request, region_id): try: response = api.delete_region(request, region_id) if not 200 <= response.status_code < 300: raise sdsexception.SdsException(response.text) except Exception as ex: redirect = reverse("horizon:crystal:regions:index") error_message = "Unable to delete region.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)
def action(self, request, obj_id): try: response = api.deploy_storage_policy(request, obj_id) if not 200 <= response.status_code < 300: raise sdsexception.SdsException(response.text) except Exception as ex: redirect = reverse("horizon:crystal:rings:index") error_message = "Unable to deploy storage policy.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)
def handle(self, request, data): # try: response = api.update_instance(request, self.initial['id'], data) if 200 <= response.status_code < 300: messages.success( request, _('Successfully updated instance: %s') % self.initial['id']) return data else: raise sdsexception.SdsException(response.text)
def handle(self, request, data): try: response = api.new_zone(request, data) if 200 <= response.status_code < 300: return data else: raise sdsexception.SdsException(response.text) except Exception as ex: redirect = reverse("horizon:crystal:zones:index") error_message = "Unable to create the new zone.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)
def delete(self, request, obj_id): try: response = api.fil_delete_dependency(request, obj_id) if 200 <= response.status_code < 300: pass # messages.success(request, _('Successfully deleted dependency: %s') % obj_id) else: raise sdsexception.SdsException(response.text) except Exception as ex: redirect = reverse("horizon:crystal:filters:index") error_message = "Unable to remove dependency.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)
def delete(self, request, node_id): try: response = api.swift_delete_node(request, 'proxy', node_id) if 200 <= response.status_code < 300: pass # messages.success(request, _('Successfully deleted node: %s') % obj_id) else: raise sdsexception.SdsException(response.text) except Exception as ex: redirect = reverse("horizon:crystal:nodes:index") error_message = "Unable to delete node.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)
def handle(request, data): try: response = api.add_instance(request, data) if 200 <= response.status_code < 300: messages.success(request, _("Instance successfully created.")) return data else: raise sdsexception.SdsException(response.text) except Exception as ex: redirect = reverse("horizon:crystal:controllers:index") error_message = "Unable to create instance.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)
def action(self, request, obj_id): policy_id = self.table.kwargs['policy_id'] try: response = api.swift_add_disk_storage_policy( request, policy_id, obj_id) if not 200 <= response.status_code < 300: raise sdsexception.SdsException(response.text) except Exception as ex: redirect = reverse( "horizon:crystal:rings:storage_policies:devices") error_message = "Unable to add disk.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)
def delete(self, request, obj_id): try: response = api.delete_controller(request, obj_id) if 200 <= response.status_code < 300: pass # messages.success(request, _("Successfully deleted controller: %s") % obj_id) else: raise sdsexception.SdsException(response.text) except Exception as ex: redirect = reverse("horizon:crystal:controllers:index") error_message = "Unable to remove controller.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)
def single(self, data_table, request, object_id): try: response = api.load_swift_policies(request) if 200 <= response.status_code < 300: messages.success(request, _("Storage Policies loaded successfully")) return shortcuts.redirect('horizon:crystal:rings:index') else: raise sdsexception.SdsException(response.text) except Exception as ex: redirect = reverse("horizon:crystal:rings:index") error_message = "Unable to load policies.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)
def handle(self, request, data): try: response = api.swift_new_storage_policy(request, data) if 200 <= response.status_code < 300: messages.success(request, _("Storage policy successfully created.")) return data else: raise sdsexception.SdsException(response.text) except Exception as ex: redirect = reverse("horizon:crystal:rings:index") error_message = "Unable to create storage policy.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)
def handle(self, request, data): try: response = api.update_zone(request, data) if 200 <= response.status_code < 300: messages.success( request, _('Successfully updated node: %s') % data['zone_id']) return data else: raise sdsexception.SdsException(response.text) except Exception as ex: redirect = reverse("horizon:crystal:zones:index") error_message = "Unable to update zone.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)
def action(self, request, datum_id): try: response = api.update_instance(request, datum_id, {'status': 'Running'}) if 200 <= response.status_code < 300: pass # messages.success(request, _("Instance successfully started.")) # return data else: raise sdsexception.SdsException(response.text) except Exception as ex: redirect = reverse("horizon:crystal:controllers:index") error_message = "Unable to start instance.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)
def delete(self, request, obj_id): try: response = api.dsl_delete_object_type(request, obj_id) if 200 <= response.status_code < 300: pass # messages.success(request, _('Successfully deleted object type: %s') % obj_id) else: raise sdsexception.SdsException(response.text) except Exception as ex: redirect = reverse("horizon:crystal:policies:index") error_message = "Unable to delete object type.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)
def _get_object(self, *args, **kwargs): acl_id = self.kwargs["policy_id"] try: response = api.get_access_control_policy(self.request, acl_id) if 200 > response.status_code >= 300: raise sdsexception.SdsException(response.text) else: return json.loads(response.text) except Exception as ex: redirect = reverse("horizon:crystal:policies:index") error_message = "Unable to update ACL.\t %s" % ex.message exceptions.handle(self.request, _(error_message), redirect=redirect)
def handle(request, data): dependency_file = data['dependency_file'] del data['dependency_file'] try: response = api.fil_create_dependency(request, data) if 200 <= response.status_code < 300: dependency_id = json.loads(response.text)["id"] response = api.fil_upload_dependency_data( request, dependency_id, dependency_file) if 200 <= response.status_code < 300: messages.success( request, _('Successfully dependency creation and upload.')) return data else: raise sdsexception.SdsException(response.text) else: raise sdsexception.SdsException(response.text) except Exception as ex: redirect = reverse("horizon:crystal:filters:index") error_message = "Unable to create dependency.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)
def handle(self, request, data): try: acl_id = self.initial["policy_id"] response = api.update_access_control_policy(request, data, acl_id) if 200 > response.status_code >= 300: raise sdsexception.SdsException(response) else: messages.success( request, _('Successfully updated policy: %s') % self.initial['policy_id']) return data except Exception as ex: redirect = reverse("horizon:crystal:policies:index") error_message = "Unable to update ACL.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)
def handle(self, request, data): try: node_id = data['id'] server = data['server'] data.pop('id', None) response = api.swift_update_node(request, server, node_id, data) if 200 <= response.status_code < 300: messages.success(request, _('Successfully updated node: %s') % node_id) return data else: raise sdsexception.SdsException(response.text) except Exception as ex: redirect = reverse("horizon:crystal:nodes:index") error_message = "Unable to update node.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)
def handle(self, request, data): try: dependency_id = self.initial['id'] # print "\n#################\n", request, "\n#################\n", data, "\n#################\n" response = api.fil_update_dependency_metadata( request, dependency_id, data['version'], data['permissions']) if 200 <= response.status_code < 300: messages.success( request, _('Successfully dependency creation and upload.')) return data else: raise sdsexception.SdsException(response.text) except Exception as ex: redirect = reverse("horizon:crystal:filters:index") error_message = "Unable to create dependency.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)
def get_dependencies_data(self): try: response = api.list_dependencies(self.request) if 200 <= response.status_code < 300: strobj = response.text else: error_message = 'Unable to get dependencies.' raise sdsexception.SdsException(error_message) except Exception as e: strobj = "[]" exceptions.handle(self.request, e.message) dependencies = json.loads(strobj) ret = [] for dep in dependencies: ret.append(dependency_models.Dependency(dep['id'], dep['name'], dep['version'], dep['permissions'])) return ret
def handle(self, request, data): name = data["name"] try: extensions = [x.strip() for x in data["extensions"].split(',')] response = api.dsl_update_object_type(request, name, extensions) if 200 <= response.status_code < 300: messages.success( request, _('Successfully updated object type: %s') % data['name']) return data else: raise sdsexception.SdsException(response.text) except Exception as ex: redirect = reverse("horizon:crystal:policies:index") error_message = "Unable to update object type.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)
def delete(self, request, obj_id): try: success = True error_msg = '' response = api.delete_access_control(request, obj_id) if 200 <= response.status_code < 300: pass # messages.success(request, _("Successfully deleted sla: %s") % obj_id) else: success = False error_msg = response.text if not success: raise sdsexception.SdsException(error_msg) except Exception as ex: redirect = reverse("horizon:crystal:policies:index") error_message = "Unable to remove access control policy.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)
def handle(request, data): metric_module_file = data['metric_module_file'] del data['metric_module_file'] try: response = api.add_metric_module_metadata(request, data, metric_module_file) if 200 <= response.status_code < 300: messages.success( request, _('Metric module was created and uploaded successfully.')) return data else: raise sdsexception.SdsException(response.text) except Exception as ex: redirect = reverse("horizon:crystal:metrics:index") error_message = "Unable to create metric module.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)
def delete(self, request, obj_id): try: success = True error_msg = '' for slo_name in ['get_bw', 'put_bw']: response = api.fil_delete_slo(request, 'bandwidth', slo_name, obj_id) if 200 <= response.status_code < 300: pass # messages.success(request, _("Successfully deleted sla: %s") % obj_id) else: success = False error_msg = response.text if not success: raise sdsexception.SdsException(error_msg) except Exception as ex: redirect = reverse("horizon:crystal:policies:index") error_message = "Unable to remove sla.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)
def handle(request, data): try: target = data['project_id'] + '#' + data['policy_id'] data_get = {'dsl_filter': 'bandwidth', 'slo_name': 'get_bw', 'target': target, 'value': data['get_bandwidth']} data_put = {'dsl_filter': 'bandwidth', 'slo_name': 'put_bw', 'target': target, 'value': data['put_bandwidth']} response_get = api.fil_add_slo(request, data_get) response_put = api.fil_add_slo(request, data_put) if (200 <= response_get.status_code < 300) and (200 <= response_put.status_code < 300): messages.success(request, _("SLO successfully created.")) return data else: raise sdsexception.SdsException("Get SLO: "+response_get.text + "Put SLO: "+response_get.text) except Exception as ex: redirect = reverse("horizon:crystal:policies:index") error_message = "Unable to create SLO.\t %s" % ex.message exceptions.handle(request, _(error_message), redirect=redirect)