X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=rwcm%2Fplugins%2Frwconman%2Frift%2Ftasklets%2Frwconmantasklet%2Frwconman_config.py;h=26af0564874b6974a16fb5072bcf59ce4f4ab421;hb=e5e7200b0d281203a77ec6e92cdd2f2c6e696275;hp=caf09b5ac1d2e0d34e7c025ea678146df322d783;hpb=df4e972f5e6581a85dd5a072ac4da8585b4c83e6;p=osm%2FSO.git diff --git a/rwcm/plugins/rwconman/rift/tasklets/rwconmantasklet/rwconman_config.py b/rwcm/plugins/rwconman/rift/tasklets/rwconmantasklet/rwconman_config.py index caf09b5a..26af0564 100644 --- a/rwcm/plugins/rwconman/rift/tasklets/rwconmantasklet/rwconman_config.py +++ b/rwcm/plugins/rwconman/rift/tasklets/rwconmantasklet/rwconman_config.py @@ -509,7 +509,7 @@ class ConfigManagerConfig(object): # Parse NSR if nsr is not None: - nsr_obj.set_nsr_name(nsr['nsd_name_ref']) + nsr_obj.set_nsr_name(nsr['name_ref']) nsr_dir = os.path.join(self._parent.cfg_dir, nsr_obj.nsr_name) self._log.info("Checking NS config directory: %s", nsr_dir) if not os.path.isdir(nsr_dir): @@ -719,12 +719,14 @@ class ConfigManagerConfig(object): ) v['vdur'] = [] - vdu_data = [(vdu['name'], vdu['management_ip'], vdu['vm_management_ip'], vdu['id']) - for vdu in vnfr['vdur']] - - for data in vdu_data: - data = dict(zip(['name', 'management_ip', 'vm_management_ip', 'id'] , data)) - v['vdur'].append(data) + vdu_data = [] + for vdu in vnfr['vdur']: + d = {} + for k in ['name','management_ip', 'vm_management_ip', 'id']: + if k in vdu: + d[k] = vdu[k] + vdu_data.append(d) + v['vdur'].append(vdu_data) inp['vnfr'][vnfr['member_vnf_index_ref']] = v @@ -759,18 +761,24 @@ class ConfigManagerConfig(object): self._log.debug("Running the CMD: {}".format(cmd)) process = yield from asyncio.create_subprocess_shell(cmd, - loop=self._loop) - yield from process.wait() - - if process.returncode: - msg = "NSR/VNFR {} initial config using {} failed with {}". \ + loop=self._loop, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + stdout, stderr = yield from process.communicate() + rc = yield from process.wait() + + if rc: + msg = "NSR/VNFR {} initial config using {} failed with {}: {}". \ format(vnfr_name if vnfr_name else nsr_obj.nsr_name, - script, process.returncode) + script, rc, stderr) self._log.error(msg) raise InitialConfigError(msg) - else: - # os.remove(inp_file) - pass + + try: + os.remove(inp_file) + except Exception as e: + self._log.debug("Error removing input file {}: {}". + format(inp_file, e)) def get_script_file(self, script_name, d_name, d_id, d_type): # Get the full path to the script @@ -789,7 +797,7 @@ class ConfigManagerConfig(object): script_name) self._log.debug("Checking for script at %s", script) if not os.path.exists(script): - self._log.debug("Did not find script %s", script) + self._log.warning("Did not find script %s", script) script = os.path.join(os.environ['RIFT_INSTALL'], 'usr/bin', script_name) @@ -799,9 +807,9 @@ class ConfigManagerConfig(object): # to make sure it has execute permission perm = os.stat(script).st_mode if not (perm & stat.S_IXUSR): - self._log.warn("NSR/VNFR {} initial config script {} " \ - "without execute permission: {}". - format(d_name, script, perm)) + self._log.warning("NSR/VNFR {} initial config script {} " \ + "without execute permission: {}". + format(d_name, script, perm)) os.chmod(script, perm | stat.S_IXUSR) return script @@ -831,13 +839,7 @@ class ConfigManagerConfig(object): vnfr_name = vnfr.name - vnfd = yield from self.cmdts_obj.get_vnfd(vnfr.vnfd_ref) - if vnfd is None: - msg = "VNFR {}, unable to get VNFD {}". \ - format(vnfr_name, vnfr.vnfd_ref) - self._log.error(msg) - raise InitialConfigError(msg) - + vnfd = vnfr.vnfd vnf_cfg = vnfd.vnf_configuration for conf in vnf_cfg.initial_config_primitive: @@ -850,8 +852,8 @@ class ConfigManagerConfig(object): continue script = self.get_script_file(conf.user_defined_script, - vnfd.id, vnfd.name, + vnfd.id, 'vnfd') yield from self.process_initial_config(nsr_obj,