X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_pla%2Fserver%2Fserver.py;fp=osm_pla%2Fserver%2Fserver.py;h=2258ed9cba7ce2888c4888f40c3fd379dd58d40d;hb=b8ea36dcc538607018f21ab8c5425c9065660bc5;hp=a1b7b64bb34c1dde605163a8eb6e107e54853eac;hpb=31181aa29c6c0489b1629877e25fdafb62e3f4e2;p=osm%2FPLA.git diff --git a/osm_pla/server/server.py b/osm_pla/server/server.py index a1b7b64..2258ed9 100644 --- a/osm_pla/server/server.py +++ b/osm_pla/server/server.py @@ -159,9 +159,11 @@ class Server: return tuples with mappings {: } and {: } """ + # TODO: Change for multiple DF support + ns_df = nsd.get('df', [{}])[0] next_idx = itertools.count() - member_vnf_index2mzn = {e['member-vnf-index']: 'VNF' + str(next(next_idx)) for e in - nsd['constituent-vnfd']} + member_vnf_index2mzn = {e['id']: 'VNF' + str(next(next_idx)) for e in + ns_df.get('vnf-profile', [])} # reverse the name map dictionary, used when the placement result is remapped mzn_name2member_vnf_index = {v: k for k, v in member_vnf_index2mzn.items()} @@ -184,11 +186,13 @@ class Server: nsd = self._get_nsd(nslcmop['operationParams']['nsdId']) member_vnf_index2mzn, mzn2member_vnf_index = self._create_vnf_id_maps(nsd) # adjust vnf identifiers - for e in nsd['constituent-vnfd']: - e['member-vnf-index'] = member_vnf_index2mzn[e['member-vnf-index']] - for vld in nsd['vld']: - for cp_ref in vld['vnfd-connection-point-ref']: - cp_ref['member-vnf-index-ref'] = member_vnf_index2mzn[cp_ref['member-vnf-index-ref']] + # TODO: Change for multiple DF support + ns_df = nsd.get('df', [{}])[0] + for vnf_profile in ns_df.get('vnf-profile', []): + vnf_profile['id'] = member_vnf_index2mzn[vnf_profile['id']] + for vlc in vnf_profile.get('virtual-link-connectivity', []): + for ccpd in vlc.get('constituent-cpd-id', []): + ccpd['constituent-base-element-id'] = member_vnf_index2mzn[ccpd['constituent-base-element-id']] self.log.info("adjusted nsd: {}".format(nsd)) projects = self._get_projects() self.log.info("projects: {}".format(projects)) @@ -199,7 +203,7 @@ class Server: vims_information = {_['name']: _['_id'] for _ in vim_accounts_data} price_list = self._get_vnf_price_list(Server.vnf_price_list_file, projects[nslcmop_project]) pil_info = self._get_pil_info(Server.pil_price_list_file) - pinnings = nslcmop['operationParams'].get('vnf') + pinnings = nslcmop['operationParams'].get('vnf', []) # remap member-vnf-index values according to id map for pinning in pinnings: pinning['member-vnf-index'] = member_vnf_index2mzn[pinning['member-vnf-index']]