def _check_argspec(self): aav = AnsibleArgSpecValidator( data=self._task.args, schema=dict(argument_spec=argument_spec), schema_format="argspec", schema_conditionals=dict( required_if=required_if, required_one_of=required_one_of, mutually_exclusive=mutually_exclusive, required_together=required_together, ), name=self._task.action, ) valid, errors, self._task.args = aav.validate() if not valid: raise AnsibleActionFail(errors)
def test_simple_defaults(self): data = {"param_str": "string"} aav = AnsibleArgSpecValidator( data=data, schema=DOCUMENTATION, schema_format="doc", schema_conditionals={}, name="test_action", ) expected = { "param_str": "string", "param_default": True, "params_bool": None, "params_dict": None, } valid, errors, updated_data = aav.validate() self.assertTrue(valid) self.assertEqual(errors, None) self.assertEqual(expected, updated_data)
def run(self, terms, variables, **kwargs): if isinstance(terms, list): keys = [ "data", "test", "value", "key", "fail_on_missing", "wantlist", ] terms = dict(zip(keys, terms)) terms.update(kwargs) aav = AnsibleArgSpecValidator( data=terms, schema=DOCUMENTATION, name="index_of" ) valid, errors, updated_data = aav.validate() if not valid: raise AnsibleLookupError(errors) updated_data["wantlist"] = True updated_data["tests"] = self._templar.environment.tests res = index_of(**updated_data) return res
def _index_of(*args, **kwargs): """Find the indicies of items in a list matching some criteria.""" keys = [ "environment", "data", "test", "value", "key", "fail_on_missing", "wantlist", ] data = dict(zip(keys, args)) data.update(kwargs) environment = data.pop("environment") aav = AnsibleArgSpecValidator(data=data, schema=DOCUMENTATION, name="index_of") valid, errors, updated_data = aav.validate() if not valid: raise AnsibleFilterError(errors) updated_data["tests"] = environment.tests return index_of(**updated_data)