def invoke_post_run(liveaction_db, action_db=None): LOG.info('Invoking post run for action execution %s.', liveaction_db.id) # Identify action and runner. if not action_db: action_db = action_db_utils.get_action_by_ref(liveaction_db.action) if not action_db: LOG.exception('Unable to invoke post run. Action %s no longer exists.', liveaction_db.action) return LOG.info('Action execution %s runs %s of runner type %s.', liveaction_db.id, action_db.name, action_db.runner_type['name']) # Get an instance of the action runner. runnertype_db = action_db_utils.get_runnertype_by_name( action_db.runner_type['name']) runner = runners.get_runner(runnertype_db.runner_module) # Configure the action runner. runner.container_service = RunnerContainerService() runner.action = action_db runner.action_name = action_db.name runner.action_execution_id = str(liveaction_db.id) runner.entry_point = RunnerContainerService.get_entry_point_abs_path( pack=action_db.pack, entry_point=action_db.entry_point) runner.context = getattr(liveaction_db, 'context', dict()) runner.callback = getattr(liveaction_db, 'callback', dict()) runner.libs_dir_path = RunnerContainerService.get_action_libs_abs_path( pack=action_db.pack, entry_point=action_db.entry_point) # Invoke the post_run method. runner.post_run(liveaction_db.status, liveaction_db.result)
def test_get_action_libs_abs_path(self): service = RunnerContainerService() orig_path = cfg.CONF.content.system_packs_base_path cfg.CONF.content.system_packs_base_path = '/tests/packs' # entry point relative. acutal_path = service.get_action_libs_abs_path(pack='foo', entry_point='foo/bar.py') expected_path = os.path.join(cfg.CONF.content.system_packs_base_path, 'foo', 'actions', os.path.join('foo', ACTION_LIBS_DIR)) self.assertEqual(acutal_path, expected_path, 'Action libs path doesn\'t match.') # entry point absolute. acutal_path = service.get_action_libs_abs_path(pack='foo', entry_point='/tmp/foo.py') expected_path = os.path.join('/tmp', ACTION_LIBS_DIR) self.assertEqual(acutal_path, expected_path, 'Action libs path doesn\'t match.') cfg.CONF.content.system_packs_base_path = orig_path
def _invoke_post_run(self, actionexec_db, action_db): LOG.info( "Invoking post run for action execution %s. Action=%s; Runner=%s", actionexec_db.id, action_db.name, action_db.runner_type["name"], ) # Get an instance of the action runner. runnertype_db = get_runnertype_by_name(action_db.runner_type["name"]) runner = get_runner(runnertype_db.runner_module) # Configure the action runner. runner.container_service = RunnerContainerService() runner.action = action_db runner.action_name = action_db.name runner.action_execution_id = str(actionexec_db.id) runner.entry_point = RunnerContainerService.get_entry_point_abs_path( pack=action_db.pack, entry_point=action_db.entry_point ) runner.context = getattr(actionexec_db, "context", dict()) runner.callback = getattr(actionexec_db, "callback", dict()) runner.libs_dir_path = RunnerContainerService.get_action_libs_abs_path( pack=action_db.pack, entry_point=action_db.entry_point ) # Invoke the post_run method. runner.post_run(actionexec_db.status, actionexec_db.result)
def test_get_action_libs_abs_path(self): service = RunnerContainerService() orig_path = cfg.CONF.content.system_packs_base_path cfg.CONF.content.system_packs_base_path = "/tests/packs" # entry point relative. acutal_path = service.get_action_libs_abs_path(pack="foo", entry_point="foo/bar.py") expected_path = os.path.join( cfg.CONF.content.system_packs_base_path, "foo", "actions", os.path.join("foo", ACTION_LIBS_DIR) ) self.assertEqual(acutal_path, expected_path, "Action libs path doesn't match.") # entry point absolute. acutal_path = service.get_action_libs_abs_path(pack="foo", entry_point="/tests/packs/foo/tmp/foo.py") expected_path = os.path.join("/tests/packs/foo/tmp", ACTION_LIBS_DIR) self.assertEqual(acutal_path, expected_path, "Action libs path doesn't match.") cfg.CONF.content.system_packs_base_path = orig_path
def test_get_action_libs_abs_path(self): service = RunnerContainerService() orig_path = cfg.CONF.content.packs_base_path cfg.CONF.content.packs_base_path = '/tests/packs' # entry point relative. acutal_path = service.get_action_libs_abs_path( pack='foo', entry_point='foo/bar.py') expected_path = os.path.join(cfg.CONF.content.packs_base_path, 'foo', 'actions', os.path.join('foo', ACTION_LIBS_DIR)) self.assertEqual(acutal_path, expected_path, 'Action libs path doesn\'t match.') # entry point absolute. acutal_path = service.get_action_libs_abs_path( pack='foo', entry_point='/tmp/foo.py') expected_path = os.path.join('/tmp', ACTION_LIBS_DIR) self.assertEqual(acutal_path, expected_path, 'Action libs path doesn\'t match.') cfg.CONF.content.packs_base_path = orig_path
def _invoke_post_run(self, actionexec_db, action_db): LOG.info('Invoking post run for action execution %s. Action=%s; Runner=%s', actionexec_db.id, action_db.name, action_db.runner_type['name']) # Get an instance of the action runner. runnertype_db = get_runnertype_by_name(action_db.runner_type['name']) runner = get_runner(runnertype_db.runner_module) # Configure the action runner. runner.container_service = RunnerContainerService() runner.action = action_db runner.action_name = action_db.name runner.action_execution_id = str(actionexec_db.id) runner.entry_point = RunnerContainerService.get_entry_point_abs_path( pack=action_db.pack, entry_point=action_db.entry_point) runner.context = getattr(actionexec_db, 'context', dict()) runner.callback = getattr(actionexec_db, 'callback', dict()) runner.libs_dir_path = RunnerContainerService.get_action_libs_abs_path( pack=action_db.pack, entry_point=action_db.entry_point) # Invoke the post_run method. runner.post_run(actionexec_db.status, actionexec_db.result)
def _get_action_libs_abs_path(self, pack, entry_point): return RunnerContainerService.get_action_libs_abs_path( pack=pack, entry_point=entry_point)
def _get_action_libs_abs_path(self, pack, entry_point): return RunnerContainerService.get_action_libs_abs_path(pack=pack, entry_point=entry_point)