+ msg = "VNF %s does not have config primitives, e=%s", \
+ vnfr_id, e
+ self._log.exception(msg)
+ raise ValueError(msg)
+
+ while wait and (rc in ['pending', 'running']):
+ self._log.debug("JujuCA: action {}, rc {}".
+ format(exec_id, rc))
+ yield from asyncio.sleep(0.2, loop=self._loop)
+ status = yield from self.api.get_action_status(exec_id)
+ rc = status['status']
+
+ return rc, exec_id, details
+
+ @asyncio.coroutine
+ def vnf_config_primitive(self, nsr_id, vnfr_id, primitive, output):
+ try:
+ vnfr = self._juju_vnfs[vnfr_id].vnfr
+ except KeyError:
+ msg = "Did not find VNFR {} in Juju plugin".format(vnfr_id)
+ self._log.debug(msg)
+ return
+
+ output.execution_status = "failed"
+ output.execution_id = ''
+ output.execution_error_details = ''
+
+ rc, exec_id, err = yield from self._vnf_config_primitive(
+ nsr_id,
+ vnfr_id,
+ primitive)
+
+ self._log.debug("VNFR {} primitive {} exec status: {}".
+ format(vnfr.name, primitive.name, rc))
+ output.execution_status = rc
+ output.execution_id = exec_id
+ output.execution_error_details = err