def run(self, case_id, task_name, status): api = TheHiveApiExtended(self.config['thehive_url'], self.config['thehive_api_key']) response = api.get_case_tasks(case_id, query=Eq('title', task_name)) if response.status_code == 200: tasks = response.json() if len(tasks) == 1: task_id = tasks[0]['id'] else: raise ValueError('[ChangeStatusTaskByNameAction]: task not found') else: raise ValueError('[ChangeStatusTaskByNameAction]: tasks status_code %d' % response.status_code) response = api.get_task(task_id) if response.status_code == 200: task_object = response.json() task = CaseTask(json=task_object) task.id = task_id task.status = status task.owner = self.config['thehive_bot_username'] api.update_case_task(task) else: raise ValueError('[ChangeStatusTaskByNameAction]: status_code %d' % response.status_code) return True
def run(self, task_id, status): api = TheHiveApiExtended(self.config['thehive_url'], self.config['thehive_api_key']) response = api.get_task(task_id) if response.status_code == 200: task_object = response.json() task = CaseTask(json=task_object) task.id = task_id task.status = status task.owner = self.config['thehive_bot_username'] api.update_case_task(task) else: raise ValueError('[ChangeStatusTaskAction]: status_code %d' % response.status_code) return True
def run(self, task_id): api = TheHiveApi(self.config['thehive_url'], self.config['thehive_api_key']) response = api.find_tasks(query=Eq('_id', task_id)) if response.status_code == 200: tasks = response.json() if len(tasks) == 1: task = CaseTask(json=tasks[0]) task.id = task_id task.status = 'InProgress' task.owner = self.config['thehive_bot_username'] api.update_case_task(task) else: raise ValueError('[TakeTaskAction]: no tasks with this id') else: raise ValueError('[TakeTaskAction]: status_code %d' % response.status_code) return True
def run(self, job_id, status): task_id = self.action_service.get_value( name='thehive_job_{}'.format(job_id), local=False) api = TheHiveApiExtended(self.config['thehive_url'], self.config['thehive_api_key']) response = api.get_task(task_id) if response.status_code == 200: task_object = response.json() task = CaseTask(json=task_object) task.id = task_id task.status = status task.owner = self.config['thehive_bot_username'] api.update_case_task(task) if status == 'Completed': self.action_service.delete_value( name='thehive_job_{}'.format(job_id), local=False) else: raise ValueError( '[ChangeStatusTaskByJobIdAction]: status_code %d' % response.status_code) return True