From 11796cf79d6801c175aaad5cd258f8c0c27eff03 Mon Sep 17 00:00:00 2001 From: Yun Huang Date: Thu, 17 May 2018 10:35:15 +0800 Subject: Fix bug of list server api fix the bug to convert metadata Change-Id: I5a18780314ae0da16d3307dde3fdc30870666abe Issue-ID: MULTICLOUD-233 Signed-off-by: Yun Huang --- share/newton_base/openoapi/flavor.py | 45 ++++++++++++++++--------------- share/newton_base/openoapi/server.py | 52 ++++++++++++++++++------------------ 2 files changed, 49 insertions(+), 48 deletions(-) diff --git a/share/newton_base/openoapi/flavor.py b/share/newton_base/openoapi/flavor.py index 1124aec4..4b3c5977 100644 --- a/share/newton_base/openoapi/flavor.py +++ b/share/newton_base/openoapi/flavor.py @@ -38,17 +38,17 @@ class Flavors(APIView): ("extra_specs", "extraSpecs"), ] - def _convert_extra_specs(self, extraSpecs, extra_specs, reverse=False): + def _convert_extra_specs(self, extra_specs_vfc, extra_specs_openstack, reverse=False): if reverse == False: #from extraSpecs to extra_specs - for spec in extraSpecs: - extra_specs[spec['keyName']] = spec['value'] + for spec in extra_specs_vfc: + extra_specs_openstack[spec['keyName']] = spec['value'] else: - for k,v in extra_specs.items(): + for k,v in extra_specs_openstack.items(): spec={} spec['keyName']=k spec['value']=v - extraSpecs.append(spec) + extra_specs_vfc.append(spec) def get(self, request, vimid="", tenantid="", flavorid=""): logger.info("vimid, tenantid, flavorid = %s,%s,%s" % (vimid, tenantid, flavorid)) @@ -70,9 +70,10 @@ class Flavors(APIView): extraResp = self._get_flavor_extra_specs(sess, flavor["id"]) extraContent = extraResp.json() if extraContent["extra_specs"]: - extraSpecs = [] - self._convert_extra_specs(extraSpecs, extraContent["extra_specs"], True) - flavor["extraSpecs"] = extraSpecs + extra_specs_vfc = [] + self._convert_extra_specs(extra_specs_vfc, extraContent["extra_specs"], True) + flavor["extraSpecs"] = extra_specs_vfc + VimDriverUtils.replace_key_by_mapping(flavor, self.keys_mapping) content.update(flavor) @@ -99,9 +100,9 @@ class Flavors(APIView): extraResp = self._get_flavor_extra_specs(sess, flavor["id"]) extraContent = extraResp.json() if extraContent["extra_specs"]: - extraSpecs = [] - self._convert_extra_specs(extraSpecs, extraContent["extra_specs"], True) - flavor["extraSpecs"] = extraSpecs + extra_specs_vfc = [] + self._convert_extra_specs(extra_specs_vfc, extraContent["extra_specs"], True) + flavor["extraSpecs"] = extra_specs_vfc VimDriverUtils.replace_key_by_mapping(flavor, self.keys_mapping) @@ -200,9 +201,9 @@ class Flavors(APIView): extraResp = self._get_flavor_extra_specs(sess, flavor["id"]) extraContent = extraResp.json() if extraContent["extra_specs"]: - extraSpecs = [] - self._convert_extra_specs(extraSpecs, extraContent["extra_specs"], True) - flavor["extraSpecs"] = extraSpecs + extra_specs_vfc = [] + self._convert_extra_specs(extra_specs_vfc, extraContent["extra_specs"], True) + flavor["extraSpecs"] = extra_specs_vfc VimDriverUtils.replace_key_by_mapping(flavor, self.keys_mapping) vim_dict = { @@ -214,7 +215,7 @@ class Flavors(APIView): flavor.update(vim_dict) return Response(data=flavor, status=tmpresp.status_code) - extraSpecs = request.data.pop("extraSpecs", None) + extra_specs_vfc = request.data.pop("extraSpecs", None) #create flavor first resp = self._create_flavor(sess, request) if resp.status_code == 202: @@ -224,18 +225,18 @@ class Flavors(APIView): flavorid = resp_body['id'] - if extraSpecs: - extra_specs={} - self._convert_extra_specs(extraSpecs, extra_specs, False) + if extra_specs_vfc: + extra_specs_openstack={} + self._convert_extra_specs(extra_specs_vfc, extra_specs_openstack, False) - extraResp = self._create_flavor_extra_specs(sess, extra_specs, flavorid) + extraResp = self._create_flavor_extra_specs(sess, extra_specs_openstack, flavorid) if extraResp.status_code == 200: #combine the response body and return - tmpSpecs = [] + tmp_specs_vfc = [] tmpRespBody = extraResp.json() - self._convert_extra_specs(tmpSpecs, tmpRespBody['extra_specs'], True) + self._convert_extra_specs(tmp_specs_vfc, tmpRespBody['extra_specs'], True) - resp_body.update({"extraSpecs":tmpSpecs}) + resp_body.update({"extraSpecs":tmp_specs_vfc}) else: #rollback self._delete_flavor(self, request, vimid, tenantid, flavorid) diff --git a/share/newton_base/openoapi/server.py b/share/newton_base/openoapi/server.py index ba77dc55..cf2fffef 100644 --- a/share/newton_base/openoapi/server.py +++ b/share/newton_base/openoapi/server.py @@ -169,17 +169,17 @@ class Servers(APIView): logger.info("request returns with status %s" % resp.status_code) logger.debug("Servers--dettachVolume resp status::>%s" % resp.status_code) - def _convert_metadata(self, metadata, metadata_output, reverse=True): + def _convert_metadata(self, metadata_vfc, metadata_openstack, reverse=True): if not reverse: - # from extraSpecs to extra_specs - for spec in metadata: - metadata_output[spec['keyName']] = spec['value'] + # from vfc format to openstack format + for spec in metadata_vfc: + metadata_openstack[spec['keyName']] = spec['value'] else: - for k, v in metadata_output.items(): + for k, v in metadata_openstack.items(): spec = {} spec['keyName'] = k spec['value'] = v - metadata.append(spec) + metadata_vfc.append(spec) def _convert_resp(self, server): #convert volumeArray @@ -274,11 +274,11 @@ class Servers(APIView): if not serverid: # convert the key naming in servers for server in content["servers"]: - metadata = server.pop("metadata", None) - if metadata: - meta_data = [] - self._convert_metadata(metadata, meta_data, False) - server["metadata"] = meta_data + metadata_openstack = server.pop("metadata", None) + if metadata_openstack: + metadata_vfc = [] + self._convert_metadata(metadata_vfc, metadata_openstack, True) + server["metadata"] = metadata_vfc VimDriverUtils.replace_key_by_mapping(server, self.keys_mapping) self._convert_resp(server) @@ -287,11 +287,11 @@ class Servers(APIView): else: # convert the key naming in the server specified by id server = content.pop("server", None) - metadata = server.pop("metadata", None) - if metadata: - meta_data = [] - self._convert_metadata(metadata, meta_data) - server["metadata"] = meta_data + metadata_openstack = server.pop("metadata", None) + if metadata_openstack: + metadata_vfc = [] + self._convert_metadata(metadata_vfc, metadata_openstack, True) + server["metadata"] = metadata_vfc VimDriverUtils.replace_key_by_mapping(server, self.keys_mapping) self._convert_resp(server) @@ -353,11 +353,11 @@ class Servers(APIView): if len(networks) > 0: server["networks"] = networks - meta_data = server.pop("metadata", None) - if meta_data: - metadata = {} - self._convert_metadata(metadata, meta_data, False) - server["metadata"] = metadata + metadata_vfc = server.pop("metadata", None) + if metadata_vfc: + metadata_openstack = {} + self._convert_metadata(metadata_vfc, metadata_openstack, False) + server["metadata"] = metadata_openstack contextarray = server.pop("contextArray", None) volumearray = server.pop("volumeArray", None) @@ -404,11 +404,11 @@ class Servers(APIView): volumeIds = [extraVolume["volumeId"] for extraVolume in volumearray] self._attachVolume(vimid, tenantid, resp_body["id"], *volumeIds) - metadata = resp_body.pop("metadata", None) - if metadata: - meta_data = [] - self._convert_metadata(metadata, meta_data) - resp_body["metadata"] = meta_data + metadata_openstack = resp_body.pop("metadata", None) + if metadata_openstack: + metadata_vfc = [] + self._convert_metadata(metadata_vfc, metadata_openstack, True) + resp_body["metadata"] = metadata_vfc VimDriverUtils.replace_key_by_mapping(resp_body, self.keys_mapping) vim_dict = { -- cgit 1.2.3-korg