Exemple #1
0
 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)
Exemple #3
0
 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
Exemple #4
0
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)