def start_work(self): executor = Executor( WorkRequest(request.get_json()), self.app.rapid_config.master_uri, workspace=self.app.rapid_config.workspace, quarantine=self.app.rapid_config.quarantine_directory, verify_certs=self.app.rapid_config.verify_certs, rapid_config=self.app.rapid_config) executor.verify_work_request() executor.start()
def test_verify_work_request_no_action_instance_id(self): """ rapid-unit: Rapid Client:Remote Execution:Can remotely execute code on client :return: :rtype: """ work_request = WorkRequest() executor = Executor(work_request, "http") with self.assertRaises(Exception) as cm: executor.verify_work_request() self.assertEqual("Invalid action_instance_id", str(cm.exception))
def test_verify_work_request_no_executable(self): """ rapid-unit: Rapid Client:Remote Execution:Can remotely execute code on client :return: :rtype: """ work_request = WorkRequest() executor = Executor(work_request, "http") work_request.action_instance_id = 1 with self.assertRaises(Exception) as cm: executor.verify_work_request() self.assertEqual("Executable not set, nothing to run.", str(cm.exception))
def test_verify_work_request_no_pipeline_instance_id(self): """ rapid-unit: Rapid Client:Remote Execution:Can remotely execute code on client :return: :rtype: """ work_request = WorkRequest() executor = Executor(work_request, "http") work_request.action_instance_id = 1 work_request.executable = "something" with self.assertRaises(Exception) as cm: executor.verify_work_request() self.assertEqual("No pipline_instance_id set.", str(cm.exception))
def run_action_instance(self, app, action_instance_id): # type: (Flask, int) -> None communicator = ClientCommunicator( self.client_config.master_uri, self.client_config.quarantine_directory, app, self.client_config.verify_certs) self.client_config.is_single_use = True communicator.register(self.client_config) request_json = communicator.get_work_request_by_action_instance_id( action_instance_id) executor = Executor(WorkRequest(request_json), self.client_config.master_uri, workspace=self.client_config.workspace, quarantine=self.client_config.quarantine_directory, verify_certs=self.client_config.verify_certs, rapid_config=self.client_config) executor.verify_work_request() executor.start(False)