Exemple #1
0
    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
Exemple #2
0
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)
Exemple #3
0
    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