Exemple #1
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 #2
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)