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
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)