def post(self, name=None): data = json.loads(request.data) compliance_execution = ComplianceExecutionModel( data.get("compliance_id")) compliance_element_list = ComplianceElementModel.find( **{"compliance_id": data.get("compliance_id")}) compliance = ComplianceReportModel.find_by_id( data.get("compliance_id")) try: compliance_execution.save_to_db() except: return { "error": "An error occurred creating the compliance_execution." }, 500 for element in compliance_element_list: for job in element.job_templates: job_dict = job.json() del job_dict["id"] cipher_suite = Fernet(KEY) job = JobModel(**job_dict) job.compliance_execution_id = compliance_execution.id job.login = compliance.login job.password = compliance.password job.use_enable_password = compliance.use_enable_password job.enable_password = compliance.enable_password job.is_validated = compliance.is_validated job.use_device_credentials = compliance.use_device_credentials job.device_count = len(compliance.host_list) job.save_to_db() print(data.get("compliance_id")) print(compliance.host_list) resultCode, resultMessage = self._processHosts( compliance.hostsType, compliance.host_list) if not resultCode: return { "error": "An error occurred inserting the job. " + resultMessage }, 500 resultCode, resultMessage = self._processTasks( compliance.host_list, job) if not resultCode: return { "error": "An error occurred inserting the job. " + resultMessage }, 500 TaskModel.commit() JobModel.commit() job.sendJob(job.id) print('job sent') print(job.id) return compliance_execution.json(), 201
def create_task(): session_title = session.get('title') session_content = session.get('content') session_token = session.get('create_csrf_token') post_title = request.form["title"] post_content = request.form["content"] create_csrf_token = request.form["create_csrf_token"] if create_csrf_token != session_token: logger.warning('create csrf_token is %s ', create_csrf_token) abort(400) if session_title != post_title or session_content != post_content: logMsg = "in create task execution: input data is wrong : post data is %s." logger.warning(logMsg, post_title) abort(400) try: new_task = TaskModel(session_title, session_content) #new_task.title = request.form["title"] #new_task.content = request.form["content"] new_task.date = str(datetime.today().year) + "-" + str( datetime.today().month) + "-" + str(datetime.today().day) new_task.commit = 0 db.session.add(new_task) db.session.commit() delete_create_session() return redirect(url_for('.index')) except: db.session.rollback() logMsg = "in crate task execution: crate execution is failed. please return index page." logger.warning(logMsg) delete_create_session() abort(400)
def post(self, **somedata): data = json.loads(request.data) if data.get('login'): data['login'] = cipher_suite.encrypt( data.get('login').encode('ascii')).decode('ascii') if data.get('password'): data['password'] = cipher_suite.encrypt( data.get('password').encode('ascii')).decode('ascii') self.data = data self.workflow = WorkflowModel(**data) try: self.workflow.save_to_db() except: return {"error": "An error occurred inserting the workflow."}, 500 link = self.processLink(data["link_list"], data, self.workflow.id) try: workflow_composition_src = WorkflowCompositionModel( **{ "workflow_id": self.workflow.id, "link_id": link.id, "{}_id".format(link.src_node["node_type"]): int(link.src_node["uid"]), "node_type": link.src_node["node_type"] }) workflow_composition_dst = WorkflowCompositionModel( **{ "workflow_id": self.workflow.id, "link_id": link.id, "{}_id".format(link.dst_node["node_type"]): int(link.dst_node["uid"]), "node_type": link.dst_node["node_type"] }) except: workflow_composition_src = WorkflowCompositionModel( **{ "workflow_id": self.workflow.id, }) workflow_composition_dst = WorkflowCompositionModel( **{ "workflow_id": self.workflow.id, }) workflow_composition_src.save_to_db() workflow_composition_dst.save_to_db() start_job = data["start"] #try: self.validate_and_send_workflow(self.workflow.is_validated) TaskModel.commit() #self.sendFirstJob(JobModel.findById(self.elements[self.data["start"]])) #except: # pass #except: #return {"message": "An error occurred creating the workflow."}, 500 return self.workflow.json(), 201