def register_standard_actions(): action_paths = utils.get_file_list(ACTIONS_PATH) for action_path in action_paths: action_definition = open(action_path).read() actions.update_actions(action_definition, scope='public', run_in_tx=False)
def register_standard_actions(): action_paths = utils.get_file_list(ACTIONS_PATH) for action_path in action_paths: action_definition = open(action_path).read() actions.update_actions( action_definition, scope='public', run_in_tx=False )
def test_update_actions(self): db_actions = action_service.create_actions(ACTION_LIST) self.assertEqual(2, len(db_actions)) action1_db = self._assert_single_item(db_actions, name='action1') action1_spec = spec_parser.get_action_spec(action1_db.spec) self.assertEqual('action1', action1_spec.get_name()) self.assertEqual('std.echo', action1_spec.get_base()) self.assertDictEqual({'output': 'Hi'}, action1_spec.get_base_input()) self.assertDictEqual({}, action1_spec.get_input()) db_actions = action_service.update_actions(UPDATED_ACTION_LIST) # Action 1. action1_db = self._assert_single_item(db_actions, name='action1') action1_spec = spec_parser.get_action_spec(action1_db.spec) self.assertEqual('action1', action1_spec.get_name()) self.assertListEqual([], action1_spec.get_tags()) self.assertEqual('std.echo', action1_spec.get_base()) self.assertDictEqual({'output': 'Hi'}, action1_spec.get_base_input()) self.assertIn('param1', action1_spec.get_input()) self.assertIs(action1_spec.get_input().get('param1'), utils.NotDefined)
def _update_actions(): with db_api.transaction(): return actions.update_actions( definition, scope=scope, identifier=identifier )
def put(self, identifier=None): """Update one or more actions. NOTE: This text is allowed to have definitions of multiple actions. In this case they all will be updated. """ acl.enforce('actions:update', context.ctx()) definition = pecan.request.text LOG.info("Update action(s) [definition=%s]", definition) scope = pecan.request.GET.get('scope', 'private') if scope not in resources.SCOPE_TYPES.values: raise exc.InvalidModelException( "Scope must be one of the following: %s; actual: " "%s" % (resources.SCOPE_TYPES.values, scope)) with db_api.transaction(): db_acts = actions.update_actions(definition, scope=scope, identifier=identifier) models_dicts = [db_act.to_dict() for db_act in db_acts] action_list = [resources.Action.from_dict(act) for act in models_dicts] return resources.Actions(actions=action_list).to_json()
def put(self, identifier=None): """Update one or more actions. NOTE: This text is allowed to have definitions of multiple actions. In this case they all will be updated. """ acl.enforce('actions:update', context.ctx()) definition = pecan.request.text LOG.info("Update action(s) [definition=%s]", definition) scope = pecan.request.GET.get('scope', 'private') if scope not in resources.SCOPE_TYPES.values: raise exc.InvalidModelException( "Scope must be one of the following: %s; actual: " "%s" % (resources.SCOPE_TYPES.values, scope) ) with db_api.transaction(): db_acts = actions.update_actions( definition, scope=scope, identifier=identifier ) models_dicts = [db_act.to_dict() for db_act in db_acts] action_list = [resources.Action.from_dict(act) for act in models_dicts] return resources.Actions(actions=action_list).to_json()
def put(self, identifier=None): """Update one or more actions. :param identifier: Optional. If provided, it's UUID or name of an action. Only one action can be updated with identifier param. NOTE: This text is allowed to have definitions of multiple actions. In this case they all will be updated. """ acl.enforce('actions:update', context.ctx()) definition = pecan.request.text LOG.debug("Update action(s) [definition=%s]", definition) scope = pecan.request.GET.get('scope', 'private') if scope not in resources.SCOPE_TYPES.values: raise exc.InvalidModelException( "Scope must be one of the following: %s; actual: " "%s" % (resources.SCOPE_TYPES.values, scope)) with db_api.transaction(): db_acts = actions.update_actions(definition, scope=scope, identifier=identifier) action_list = [ resources.Action.from_db_model(db_act) for db_act in db_acts ] return resources.Actions(actions=action_list).to_json()
def test_update_actions(self): db_actions = action_service.create_actions(ACTION_LIST) self.assertEqual(2, len(db_actions)) action1_db = self._assert_single_item(db_actions, name='action1') action1_spec = spec_parser.get_action_spec(action1_db.spec) self.assertEqual('action1', action1_spec.get_name()) self.assertEqual('std.echo', action1_spec.get_base()) self.assertDictEqual({'output': 'Hi'}, action1_spec.get_base_input()) self.assertDictEqual({}, action1_spec.get_input()) db_actions = action_service.update_actions(UPDATED_ACTION_LIST) # Action 1. action1_db = self._assert_single_item(db_actions, name='action1') action1_spec = spec_parser.get_action_spec(action1_db.spec) self.assertEqual('action1', action1_spec.get_name()) self.assertListEqual([], action1_spec.get_tags()) self.assertEqual('std.echo', action1_spec.get_base()) self.assertDictEqual({'output': 'Hi'}, action1_spec.get_base_input()) self.assertIn('param1', action1_spec.get_input()) self.assertIs( action1_spec.get_input().get('param1'), utils.NotDefined )
def put(self): """Update one or more actions. NOTE: This text is allowed to have definitions of multiple actions. In this case they all will be updated. """ definition = pecan.request.text LOG.info("Update action(s) [definition=%s]" % definition) db_acts = actions.update_actions(definition) models_dicts = [db_act.to_dict() for db_act in db_acts] action_list = [Action.from_dict(act) for act in models_dicts] return Actions(actions=action_list).to_string()
def put(self): """Update one or more actions. NOTE: This text is allowed to have definitions of multiple actions. In this case they all will be updated. """ definition = pecan.request.text LOG.info("Update action(s) [definition=%s]" % definition) scope = pecan.request.GET.get('scope', 'private') if scope not in SCOPE_TYPES.values: raise exc.InvalidModelException( "Scope must be one of the following: %s; actual: " "%s" % (SCOPE_TYPES.values, scope)) db_acts = actions.update_actions(definition, scope=scope) models_dicts = [db_act.to_dict() for db_act in db_acts] action_list = [Action.from_dict(act) for act in models_dicts] return Actions(actions=action_list).to_string()
def put(self): """Update one or more actions. NOTE: This text is allowed to have definitions of multiple actions. In this case they all will be updated. """ definition = pecan.request.text LOG.info("Update action(s) [definition=%s]" % definition) scope = pecan.request.GET.get('scope', 'private') if scope not in SCOPE_TYPES.values: raise exc.InvalidModelException( "Scope must be one of the following: %s; actual: " "%s" % (SCOPE_TYPES.values, scope) ) db_acts = actions.update_actions(definition, scope=scope) models_dicts = [db_act.to_dict() for db_act in db_acts] action_list = [Action.from_dict(act) for act in models_dicts] return Actions(actions=action_list).to_string()