+ def start_activiti_workflow(self, job_id, plan_input):
+ plans = WFPlanModel.objects.filter()
+ if not plans:
+ raise NSLCMException("No plan is found, you should deploy plan first!")
+ data = {
+ "processId": plans[0].process_id,
+ "params": plan_input
+ }
+ ret = activiti.exec_workflow(data)
+ logger.info("ns-instant(%s) workflow result:%s" % (self.ns_inst_id, ret))
+ JobUtil.add_job_status(job_id, 10, 'NS inst(%s) activiti workflow started: %s' % (
+ self.ns_inst_id, ret.get('status')))
+ if ret.get('status') == 1:
+ return dict(data={'jobId': job_id}, status=status.HTTP_200_OK)
+ return dict(data={'error': ret['message']}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)