예제 #1
0
    def get_storagepolicies_data(self):
        try:
            response = api.list_storage_nodes(self.request)
            if 200 <= response.status_code < 300:
                strobj = response.text
                print 'strobj', strobj
            else:
                error_message = 'Unable to get storage nodes.'
                raise ValueError(error_message)
        except Exception as e:
            strobj = "[]"
            exceptions.handle(self.request, _(e.message))

        instances = json.loads(strobj)
        ret = []
        for inst in instances:
            ret.append(storage_policies_models.StorageNode(inst['id'], inst['name'], inst['location'], inst['type']))
        return ret
예제 #2
0
    def handle(self, request, data):

        #TODO: After rebuild the form this code should disappear
        try:
            storage_nodes_response = api.list_storage_nodes(request)
            if storage_nodes_response.text:
                storage_nodes = json.loads(storage_nodes_response.text)
                storage_nodes_form = data['storage_node'].split(',')
		data["storage_node"] = {}
                for i in range(0, len(storage_nodes_form), 2):
                    for storage_node in storage_nodes:
			if storage_node["id"] == storage_nodes_form[i]:
			    location = storage_node['location']
                            data["storage_node"][location] = storage_nodes_form[i+1]
            else:
                raise Exception
        except Exception, e:
            redirect = reverse("horizon:sdscontroller:rings_and_accounts:index")
            error_message = "Storage nodes not found"
            exceptions.handle(request,
                              _(error_message),
                              redirect=redirect)