Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
    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
Ejemplo n.º 5
0
    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
Ejemplo n.º 6
0
 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)
Ejemplo n.º 7
0
 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)
Ejemplo n.º 8
0
 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)
Ejemplo n.º 9
0
 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)
Ejemplo n.º 10
0
 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)
Ejemplo n.º 11
0
 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)
Ejemplo n.º 12
0
 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)
Ejemplo n.º 13
0
 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)
Ejemplo n.º 14
0
 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)
Ejemplo n.º 15
0
 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)
Ejemplo n.º 16
0
 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)
Ejemplo n.º 17
0
 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)
Ejemplo n.º 18
0
 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)
Ejemplo n.º 19
0
 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)
Ejemplo n.º 20
0
 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)
Ejemplo n.º 21
0
    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)
Ejemplo n.º 22
0
 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)
Ejemplo n.º 23
0
 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)
Ejemplo n.º 24
0
 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)
Ejemplo n.º 25
0
    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
Ejemplo n.º 26
0
    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)
Ejemplo n.º 27
0
 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)
Ejemplo n.º 28
0
    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)
Ejemplo n.º 29
0
 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)
Ejemplo n.º 30
0
    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)