diff --git a/changelogs/fragments/430-refs.yml b/changelogs/fragments/430-refs.yml new file mode 100644 index 00000000..588fe8a9 --- /dev/null +++ b/changelogs/fragments/430-refs.yml @@ -0,0 +1,3 @@ +minor_changes: + - "Add new RST roles ``:ansoptref:`` and ``:ansretvalref:`` which allow to reference options and return values with explicit titles + (https://github.com/ansible-community/antsibull-docs/pull/430)." diff --git a/docs/collection-docs.md b/docs/collection-docs.md index c7c27d7d..63711ca0 100644 --- a/docs/collection-docs.md +++ b/docs/collection-docs.md @@ -69,7 +69,7 @@ $ antsibull-docs lint-collection-docs --plugin-docs . This subcommand has multiple options which allow to control validation. The most important options are: * `--plugin-docs`: whether to validate schemas and markup of modules, plugins, and roles included in the collection. By default, this is not run (for backwards compatibility). We recommend to always specify this. -* `--check-extra-docs-refs`: whether references in `:anscollection:`, `:ansplugin`, `:ansopt:`, `:ansretval:` roles used in extra documentation should be checked. +* `--check-extra-docs-refs`: whether references in `:anscollection:`, `:ansplugin`, `:ansopt:`, `:ansoptref:`, `:ansretval:`, `:ansretvalref:` roles used in extra documentation should be checked. * `--validate-collection-refs {self,dependent,all}`: Specify how to validate inter-plugin/module/role and inter-collection references in plugin/module/role documentation (if `--plugin-docs` is specified) and extra docs (if `--check-extra-docs-refs` is specified`). This covers Ansible markup, like `M(foo.bar.baz)` or `O(foo.bar.baz#module:parameter=value)`, and other links such as `seealso` sections. If set to `self`, only references to the same collection are validated. If set to `dependent`, only references to the collection itself and collections it (transitively) depends on are validated, including references to ansible-core (as `ansible.builtin`). If set to `all`, all references to other collections are validated. If collections are referenced that are not installed and that are in scope, references to them will not be reported. Reporting these can be enabled by specifying `--disallow-unknown-collection-refs`. @@ -260,6 +260,30 @@ Antsibull-docs provides several roles to reference Ansible content without havin Basically the syntax is identical to the one of `:ansopt:`, except that this references return values instead of options. +* `:ansoptref:`: reference options of a module, plugin, or role. + + The syntax is as follows: + ```rst + An option with an option value, referencing an option of a plugin + (specified by its FQCN) and plugin type (module, lookup, filter, ...): + :ansoptref:`Title ` + + For roles (plugin type "role"), you also have to specify the entrypoint + (usually "main"): + :ansoptref:`Title ` + + Suboptions must be referenced by separating the different levels by dot: + :ansoptref:`Title ` + + You can use "[]" (with possible content) to indicate lists + (these are ignored and not shown anywhere): + :ansoptref:`Title ` + ``` + +* `:ansretvalref:`: format return values; reference return values of a module or plugin. + + Basically the syntax is identical to the one of `:ansoptref:`, except that this references return values instead of options. + * `:ansenvvar:`: format environment variables with possible assignment. The syntax is as follows: diff --git a/pyproject.toml b/pyproject.toml index d1e65bb0..384e37cd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -134,6 +134,14 @@ source = [ [tool.mypy] mypy_path = "stubs/" +# check_untyped_defs = true +# disallow_untyped_defs = true +# strict = true -- only try to enable once everything (including dependencies!) is typed +strict_equality = true +strict_bytes = true +warn_redundant_casts = true +# warn_return_any = true +# warn_unreachable = true [[tool.mypy.overrides]] module = "semantic_version" diff --git a/src/antsibull_docs/lint_extra_docs.py b/src/antsibull_docs/lint_extra_docs.py index ce141095..10b70d09 100644 --- a/src/antsibull_docs/lint_extra_docs.py +++ b/src/antsibull_docs/lint_extra_docs.py @@ -36,8 +36,10 @@ from .markup.semantic_helper import ( parse_collection_name, parse_option, + parse_option_ref, parse_plugin_name, parse_return_value, + parse_return_value_ref, ) from .rstcheck import check_rst_content @@ -61,6 +63,20 @@ def _validate_option(value: str, names_linter: CollectionNameLinter) -> None: raise ValueError(error) +def _validate_option_ref(value: str, names_linter: CollectionNameLinter) -> None: + target, _title = extract_explicit_title(value, require_title=True) + plugin_fqcn, plugin_type, entrypoint, option_link, option = parse_option_ref(target) + plugin = Plugin( + plugin_fqcn=plugin_fqcn, + plugin_type=plugin_type, + role_entrypoint=entrypoint, + ) + for error in names_linter.validate_option_name( + plugin, option, option_link.split(".") + ): + raise ValueError(error) + + def _validate_return_value(value: str, names_linter: CollectionNameLinter) -> None: plugin_fqcn, plugin_type, entrypoint, rv_link, rv, _ = parse_return_value( value, "", "", require_plugin=False @@ -76,6 +92,18 @@ def _validate_return_value(value: str, names_linter: CollectionNameLinter) -> No raise ValueError(error) +def _validate_return_value_ref(value: str, names_linter: CollectionNameLinter) -> None: + target, _title = extract_explicit_title(value, require_title=True) + plugin_fqcn, plugin_type, entrypoint, rv_link, rv = parse_return_value_ref(target) + plugin = Plugin( + plugin_fqcn=plugin_fqcn, + plugin_type=plugin_type, + role_entrypoint=entrypoint, + ) + for error in names_linter.validate_return_value(plugin, rv, rv_link.split(".")): + raise ValueError(error) + + def _validate_plugin(value: str, names_linter: CollectionNameLinter) -> None: plugin_fqcn, plugin_type, entrypoint = parse_plugin_name(value) for error in names_linter.validate_plugin_fqcn( @@ -116,10 +144,25 @@ def wrap( def option_role(name, rawtext, text, lineno, inliner, options={}, content=[]): return wrap(_docutils_unescape(text), rawtext, lineno, _validate_option) + # pylint:disable-next=unused-argument,dangerous-default-value + def option_ref_role(name, rawtext, text, lineno, inliner, options={}, content=[]): + return wrap(text, rawtext, lineno, _validate_option_ref) + # pylint:disable-next=unused-argument,dangerous-default-value def return_value_role(name, rawtext, text, lineno, inliner, options={}, content=[]): return wrap(_docutils_unescape(text), rawtext, lineno, _validate_return_value) + def return_value_ref_role( # pylint:disable=dangerous-default-value + name, # pylint:disable=unused-argument + rawtext, + text, + lineno, + inliner, # pylint:disable=unused-argument + options={}, # pylint:disable=unused-argument + content=[], # pylint:disable=unused-argument + ): + return wrap(text, rawtext, lineno, _validate_return_value_ref) + # pylint:disable-next=unused-argument,dangerous-default-value def plugin_role(name, rawtext, text, lineno, inliner, options={}, content=[]): target, _ = extract_explicit_title(text) @@ -132,7 +175,9 @@ def collection_role(name, rawtext, text, lineno, inliner, options={}, content=[] return { "ansopt": option_role, + "ansoptref": option_ref_role, "ansretval": return_value_role, + "ansretvalref": return_value_ref_role, "ansplugin": plugin_role, "anscollection": collection_role, } diff --git a/src/antsibull_docs/markup/semantic_helper.py b/src/antsibull_docs/markup/semantic_helper.py index 9b29323a..369795b2 100644 --- a/src/antsibull_docs/markup/semantic_helper.py +++ b/src/antsibull_docs/markup/semantic_helper.py @@ -10,6 +10,7 @@ from __future__ import annotations import re +import typing as t _ARRAY_STUB_RE = re.compile(r"\[([^\]]*)\]") _ARRAY_STUB_SEP_START_RE = re.compile(r"[\[.]") @@ -23,19 +24,57 @@ def _remove_array_stubs(text: str) -> str: return _ARRAY_STUB_RE.sub("", text) +@t.overload def _parse( text: str, plugin_fqcn: str | None, plugin_type: str | None, what: str, - require_plugin=False, + require_plugin: t.Literal[True], + *, + extract_value: t.Literal[False], +) -> tuple[str, str, str | None, str, str, None]: ... + + +@t.overload +def _parse( + text: str, + plugin_fqcn: str | None, + plugin_type: str | None, + what: str, + require_plugin: t.Literal[True], + *, + extract_value: bool = True, +) -> tuple[str, str, str | None, str, str, str | None]: ... + + +@t.overload +def _parse( + text: str, + plugin_fqcn: str | None, + plugin_type: str | None, + what: str, + require_plugin: bool = False, + *, + extract_value: bool = True, +) -> tuple[str | None, str | None, str | None, str, str, str | None]: ... + + +def _parse( + text: str, + plugin_fqcn: str | None, + plugin_type: str | None, + what: str, + require_plugin: bool = False, + *, + extract_value: bool = True, ) -> tuple[str | None, str | None, str | None, str, str, str | None]: """ Given the contents of O(...) / :ansopt:`...` with potential escaping removed, split it into plugin FQCN, plugin type, option link name, option name, and option value. """ - value = None - if "=" in text: + value: str | None = None + if extract_value and "=" in text: text, value = text.split("=", 1) m = _FQCN_TYPE_PREFIX_RE.match(text) if m: @@ -73,6 +112,21 @@ def parse_option( ) +def parse_option_ref(target: str) -> tuple[str, str, str | None, str, str]: + """ + Given the target of :ansoptref:`... <...>`, split it into plugin FQCN, plugin type, + entrypoint, option link name, and option name. + """ + return _parse( + target, + None, + None, + "option name", + require_plugin=True, + extract_value=False, + )[:5] + + def parse_return_value( text: str, plugin_fqcn: str | None, plugin_type: str | None, require_plugin=False ) -> tuple[str | None, str | None, str | None, str, str, str | None]: @@ -90,6 +144,21 @@ def parse_return_value( ) +def parse_return_value_ref(target: str) -> tuple[str, str, str | None, str, str]: + """ + Given the target of :ansretvalref:`... <...>`, split it into plugin FQCN, plugin type, + entrypoint, return value link name, and return value name. + """ + return _parse( + target, + None, + None, + "return value name", + require_plugin=True, + extract_value=False, + )[:5] + + def split_option_like_name(name: str) -> list[tuple[str, str | None]]: """ Given an option/return value name, splits it up into components separated by ``.``, diff --git a/src/sphinx_antsibull_ext/roles.py b/src/sphinx_antsibull_ext/roles.py index aa7f1d1b..18ded477 100644 --- a/src/sphinx_antsibull_ext/roles.py +++ b/src/sphinx_antsibull_ext/roles.py @@ -20,8 +20,10 @@ from antsibull_docs.markup.semantic_helper import ( parse_collection_name, parse_option, + parse_option_ref, parse_plugin_name, parse_return_value, + parse_return_value_ref, ) from antsibull_docs.rst_labels import ( get_collection_ref, @@ -59,6 +61,24 @@ def _create_return_value_reference( ) +def _create_ref(ref: str, title: str) -> addnodes.pending_xref: + # When successfully resolving *internal* references, Sphinx does **NOT** + # use the node we provide, but simply extracts the text and creates a new + # node. Thus we use nodes.inline so that the result is the same no matter + # whether the reference was internal, not resolved, or external + # (intersphinx). + content = nodes.inline(title, title) + options = { + "reftype": "ref", + "refdomain": "std", + "refexplicit": True, + "refwarn": True, + } + refnode = addnodes.pending_xref(title, content, **options) + refnode["reftarget"] = ref + return refnode + + def _create_ref_or_not( create_ref: t.Callable[[str | None, str | None, str | None, str], str | None], plugin_fqcn: str | None, @@ -66,26 +86,16 @@ def _create_ref_or_not( entrypoint: str | None, ref_parameter: str, text: str, -) -> t.Any: +) -> nodes.inline | addnodes.pending_xref: # When successfully resolving *internal* references, Sphinx does **NOT** # use the node we provide, but simply extracts the text and creates a new # node. Thus we use nodes.inline so that the result is the same no matter # whether the reference was internal, not resolved, or external # (intersphinx). - content = nodes.inline(text, text) ref = create_ref(plugin_fqcn, plugin_type, entrypoint, ref_parameter) if ref is None: - return content - - options = { - "reftype": "ref", - "refdomain": "std", - "refexplicit": True, - "refwarn": True, - } - refnode = addnodes.pending_xref(text, content, **options) - refnode["reftarget"] = ref - return refnode + return nodes.inline(text, text) + return _create_ref(ref, text) def _create_error(rawtext: str, text: str, error: str) -> tuple[list[t.Any], list[str]]: @@ -138,6 +148,33 @@ def option_role(name, rawtext, text, lineno, inliner, options={}, content=[]): return [nodes.literal(rawtext, "", content, classes=classes)], [] +# pylint:disable-next=unused-argument,dangerous-default-value +def option_ref_role(name, rawtext, text, lineno, inliner, options={}, content=[]): + """Ansible option name reference. + + Returns 2 part tuple containing list of nodes to insert into the + document and a list of system messages. Both are allowed to be + empty. + + :param name: The role name used in the document. + :param rawtext: The entire markup snippet, with role. + :param text: The text marked with the role. + :param lineno: The line number where rawtext appears in the input. + :param inliner: The inliner instance that called us. + :param options: Directive options for customization. + :param content: The directive content for customization. + """ + try: + target, title = extract_explicit_title(text, require_title=True) + plugin_fqcn, plugin_type, entrypoint, option_link, _option = parse_option_ref( + target + ) + except ValueError as exc: + return _create_error(rawtext, text, str(exc)) + ref = _create_option_reference(plugin_fqcn, plugin_type, entrypoint, option_link) + return [_create_ref(ref, title)], [] + + # pylint:disable-next=unused-argument,dangerous-default-value def value_role(name, rawtext, text, lineno, inliner, options={}, content=[]): """Format Ansible option value. @@ -159,7 +196,7 @@ def value_role(name, rawtext, text, lineno, inliner, options={}, content=[]): # pylint:disable-next=unused-argument,dangerous-default-value def return_value_role(name, rawtext, text, lineno, inliner, options={}, content=[]): - """Format Ansible option value. + """Format Ansible return value. Returns 2 part tuple containing list of nodes to insert into the document and a list of system messages. Both are allowed to be @@ -195,6 +232,33 @@ def return_value_role(name, rawtext, text, lineno, inliner, options={}, content= return [nodes.literal(rawtext, "", content, classes=classes)], [] +# pylint:disable-next=unused-argument,dangerous-default-value +def return_value_ref_role(name, rawtext, text, lineno, inliner, options={}, content=[]): + """Ansible return value reference. + + Returns 2 part tuple containing list of nodes to insert into the + document and a list of system messages. Both are allowed to be + empty. + + :param name: The role name used in the document. + :param rawtext: The entire markup snippet, with role. + :param text: The text marked with the role. + :param lineno: The line number where rawtext appears in the input. + :param inliner: The inliner instance that called us. + :param options: Directive options for customization. + :param content: The directive content for customization. + """ + try: + target, title = extract_explicit_title(text, require_title=True) + plugin_fqcn, plugin_type, entrypoint, rv_link, _rv = parse_return_value_ref( + target + ) + except ValueError as exc: + return _create_error(rawtext, text, str(exc)) + ref = _create_return_value_reference(plugin_fqcn, plugin_type, entrypoint, rv_link) + return [_create_ref(ref, title)], [] + + # pylint:disable-next=unused-argument,dangerous-default-value def environment_variable(name, rawtext, text, lineno, inliner, options={}, content=[]): """Format environment variable with possible assignment, without reference. @@ -400,8 +464,10 @@ def extra_role(name, rawtext, text, lineno, inliner, options={}, content=[]): ROLES = { "ansopt": option_role, + "ansoptref": option_ref_role, "ansval": value_role, "ansretval": return_value_role, + "ansretvalref": return_value_ref_role, "ansenvvar": environment_variable, "ansenvvarref": environment_variable_reference, "ansplugin": plugin_role, diff --git a/src/sphinx_antsibull_ext/sphinx_helper.py b/src/sphinx_antsibull_ext/sphinx_helper.py index 563f2ce8..f13f2cd0 100644 --- a/src/sphinx_antsibull_ext/sphinx_helper.py +++ b/src/sphinx_antsibull_ext/sphinx_helper.py @@ -13,6 +13,7 @@ from __future__ import annotations import re +import typing as t from docutils.utils import unescape @@ -20,12 +21,28 @@ _EXPLICIT_TITLE_RE = re.compile(r"^(.+?)\s*(?$", re.DOTALL) -def extract_explicit_title(text: str) -> tuple[str, str | None]: +@t.overload +def extract_explicit_title( + text: str, *, require_title: t.Literal[True] +) -> tuple[str, str]: ... + + +@t.overload +def extract_explicit_title( + text: str, *, require_title: bool = False +) -> tuple[str, str | None]: ... + + +def extract_explicit_title( + text: str, *, require_title: bool = False +) -> tuple[str, str | None]: """ Given the parameter to a reference role, extract the unescaped target and the optional unescaped title. """ m = _EXPLICIT_TITLE_RE.match(text) if not m: + if require_title: + raise ValueError("An explicit reference title must be provided!") return unescape(text), None return unescape(m.group(2)), unescape(m.group(1)) diff --git a/tests/functional/baseline-default-html/broken-refs.html b/tests/functional/baseline-default-html/broken-refs.html new file mode 100644 index 00000000..73caa5b1 --- /dev/null +++ b/tests/functional/baseline-default-html/broken-refs.html @@ -0,0 +1,14 @@ + + + + + Dead reference + + +
+

Dead reference

+

All dead references should link to this section.

+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/callback_index_stdout.html b/tests/functional/baseline-default-html/collections/callback_index_stdout.html new file mode 100644 index 00000000..b2f333e6 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/callback_index_stdout.html @@ -0,0 +1,20 @@ + + + + + Index of all Stdout Callback Plugins + + +
+

Index of all Stdout Callback Plugins

+

See Index of all Callback Plugins for the list of all callback plugins.

+
+

ns2.col

+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/deprecations.html b/tests/functional/baseline-default-html/collections/deprecations.html new file mode 100644 index 00000000..48afdd05 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/deprecations.html @@ -0,0 +1,29 @@ + + + + + Index of all deprecated plugins + + +
+

Index of all deprecated plugins

+
+

Index of all deprecated become plugins

+ +
+
+

Index of all deprecated roles

+
    +
  • ns2.col.foo – Foo role +(Will be removed from ns2.col +in a major release after 2020-01-01.)

  • +
+
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/environment_variables.html b/tests/functional/baseline-default-html/collections/environment_variables.html new file mode 100644 index 00000000..2b5fc134 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/environment_variables.html @@ -0,0 +1,63 @@ + + + + + Index of all Collection Environment Variables + + +
+

Index of all Collection Environment Variables

+

The following index documents all environment variables declared by plugins in collections. +Environment variables used by the ansible-core configuration are documented in Dead reference.

+
+
+ANSIBLE_FOO_EXE
+

Foo executable.

+

Used by: +ns2.col.foo become plugin

+
+ +
+
+ANSIBLE_FOO_FILENAME_EXT
+

All extensions to check.

+

Used by: +ns2.col.foo vars plugin

+
+ +
+
+ANSIBLE_FOO_USER
+

User you ‘become’ to execute the task.

+

Used by: +ns2.col.foo become plugin

+
+ +
+
+ANSIBLE_REMOTE_TEMP
+

Temporary directory to use on targets when executing tasks.

+

Used by: +ns2.col.foo shell plugin

+
+ +
+
+ANSIBLE_REMOTE_TMP
+

Temporary directory to use on targets when executing tasks.

+

Used by: +ns2.col.foo shell plugin

+
+ +
+
+FOO_BAR
+

Nothing.

+

Used by: +ns2.col.foo callback plugin

+
+ +
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/index.html b/tests/functional/baseline-default-html/collections/index.html new file mode 100644 index 00000000..92b948c3 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/index.html @@ -0,0 +1,22 @@ + + + + + Collection Index + + +
+

Collection Index

+

These are the collections documented here.

+ +
+
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/index_become.html b/tests/functional/baseline-default-html/collections/index_become.html new file mode 100644 index 00000000..d3ccbf34 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/index_become.html @@ -0,0 +1,25 @@ + + + + + Index of all Become Plugins + + +
+

Index of all Become Plugins

+
+

ns.col2

+ +
+
+

ns2.col

+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/index_cache.html b/tests/functional/baseline-default-html/collections/index_cache.html new file mode 100644 index 00000000..56a3cb2d --- /dev/null +++ b/tests/functional/baseline-default-html/collections/index_cache.html @@ -0,0 +1,25 @@ + + + + + Index of all Cache Plugins + + +
+

Index of all Cache Plugins

+
+

ns.col2

+ +
+
+

ns2.col

+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/index_callback.html b/tests/functional/baseline-default-html/collections/index_callback.html new file mode 100644 index 00000000..775f4a0f --- /dev/null +++ b/tests/functional/baseline-default-html/collections/index_callback.html @@ -0,0 +1,31 @@ + + + + + Index of all Callback Plugins + + +
+

Index of all Callback Plugins

+
+

List of callback plugins by callback type

+ +
+
+

ns.col2

+ +
+
+

ns2.col

+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/index_cliconf.html b/tests/functional/baseline-default-html/collections/index_cliconf.html new file mode 100644 index 00000000..fd65ba5b --- /dev/null +++ b/tests/functional/baseline-default-html/collections/index_cliconf.html @@ -0,0 +1,25 @@ + + + + + Index of all Cliconf Plugins + + +
+

Index of all Cliconf Plugins

+
+

ns.col2

+ +
+
+

ns2.col

+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/index_connection.html b/tests/functional/baseline-default-html/collections/index_connection.html new file mode 100644 index 00000000..4cd32cb8 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/index_connection.html @@ -0,0 +1,25 @@ + + + + + Index of all Connection Plugins + + +
+

Index of all Connection Plugins

+
+

ns.col2

+ +
+
+

ns2.col

+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/index_filter.html b/tests/functional/baseline-default-html/collections/index_filter.html new file mode 100644 index 00000000..e7da2916 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/index_filter.html @@ -0,0 +1,26 @@ + + + + + Index of all Filter Plugins + + +
+

Index of all Filter Plugins

+
+

ns.col2

+ +
+
+

ns2.col

+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/index_inventory.html b/tests/functional/baseline-default-html/collections/index_inventory.html new file mode 100644 index 00000000..4392961e --- /dev/null +++ b/tests/functional/baseline-default-html/collections/index_inventory.html @@ -0,0 +1,25 @@ + + + + + Index of all Inventory Plugins + + +
+

Index of all Inventory Plugins

+
+

ns.col2

+ +
+
+

ns2.col

+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/index_lookup.html b/tests/functional/baseline-default-html/collections/index_lookup.html new file mode 100644 index 00000000..3c481202 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/index_lookup.html @@ -0,0 +1,25 @@ + + + + + Index of all Lookup Plugins + + +
+

Index of all Lookup Plugins

+
+

ns.col2

+ +
+
+

ns2.col

+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/index_module.html b/tests/functional/baseline-default-html/collections/index_module.html new file mode 100644 index 00000000..1da09085 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/index_module.html @@ -0,0 +1,38 @@ + + + + + Index of all Modules + + +
+

Index of all Modules

+
+

ns.col2

+ +
+
+

ns2.col

+ +
+
+

ns2.flatcol

+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/index_role.html b/tests/functional/baseline-default-html/collections/index_role.html new file mode 100644 index 00000000..31e775af --- /dev/null +++ b/tests/functional/baseline-default-html/collections/index_role.html @@ -0,0 +1,26 @@ + + + + + Index of all Roles + + +
+

Index of all Roles

+
+

ns.col2

+ +
+
+

ns2.col

+
    +
  • ns2.col.foo – Foo role DEPRECATED: REMOVED AFTER 2020-01-01

  • +
+
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/index_shell.html b/tests/functional/baseline-default-html/collections/index_shell.html new file mode 100644 index 00000000..8c84c535 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/index_shell.html @@ -0,0 +1,25 @@ + + + + + Index of all Shell Plugins + + +
+

Index of all Shell Plugins

+
+

ns.col2

+ +
+
+

ns2.col

+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/index_strategy.html b/tests/functional/baseline-default-html/collections/index_strategy.html new file mode 100644 index 00000000..49419a45 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/index_strategy.html @@ -0,0 +1,25 @@ + + + + + Index of all Strategy Plugins + + +
+

Index of all Strategy Plugins

+
+

ns.col2

+ +
+
+

ns2.col

+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/index_test.html b/tests/functional/baseline-default-html/collections/index_test.html new file mode 100644 index 00000000..8e3e6e45 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/index_test.html @@ -0,0 +1,26 @@ + + + + + Index of all Test Plugins + + +
+

Index of all Test Plugins

+
+

ns.col2

+ +
+
+

ns2.col

+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/index_vars.html b/tests/functional/baseline-default-html/collections/index_vars.html new file mode 100644 index 00000000..91d675a4 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/index_vars.html @@ -0,0 +1,25 @@ + + + + + Index of all Vars Plugins + + +
+

Index of all Vars Plugins

+
+

ns.col2

+ +
+
+

ns2.col

+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns/col1/changelog.html b/tests/functional/baseline-default-html/collections/ns/col1/changelog.html new file mode 100644 index 00000000..224d5082 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns/col1/changelog.html @@ -0,0 +1,173 @@ + + + + + Ns.Col1 Release Notes + + +
+

Ns.Col1 Release Notes

+ +

This changelog describes changes after version 1.0.2.

+
+

v2.3.0-pre

+
+

Release Summary

+

Just testing with pre-releases.

+
+
+
+

v2.2.0

+
+

Release Summary

+

Testing long changelog fragments. Nothing else in this release. Ignore the fragment contents!

+
+
+

Minor Changes

+
    +
  • And a final complex reStructuredText fragment.

    +

    The way to import a PowerShell or C# module util from a collection has changed in the Ansible 2.9 release. In Ansible +2.8 a util was imported with the following syntax:

    +
    #AnsibleRequires -CSharpUtil AnsibleCollections.namespace_name.collection_name.util_filename
    +#AnsibleRequires -PowerShell AnsibleCollections.namespace_name.collection_name.util_filename
    +
    +
    +

    In Ansible 2.9 this was changed to:

    +
    #AnsibleRequires -CSharpUtil ansible_collections.namespace_name.collection_name.plugins.module_utils.util_filename
    +#AnsibleRequires -PowerShell ansible_collections.namespace_name.collection_name.plugins.module_utils.util_filename
    +
    +
    +

    The change in the collection import name also requires any C# util namespaces to be updated with the newer name +format. This is more verbose but is designed to make sure we avoid plugin name conflicts across separate plugin types +and to standardise how imports work in PowerShell with how Python modules work.

    +
  • +
  • This is an example of a longer reStructuredText fragment.

    +

    Ansible 2.9 handles “unsafe” data more robustly, ensuring that data marked “unsafe” is not templated. In previous versions, Ansible recursively marked all data returned by the direct use of lookup() as “unsafe”, but only marked structured data returned by indirect lookups using with_X style loops as “unsafe” if the returned elements were strings. Ansible 2.9 treats these two approaches consistently.

    +

    As a result, if you use with_dict to return keys with templatable values, your templates may no longer work as expected in Ansible 2.9.

    +

    To allow the old behavior, switch from using with_X to using loop with a filter as described at Dead reference.

    +
  • +
  • This is an example of a more complex reStructuredText fragment.

    +

    Module and module_utils files can now use relative imports to include other module_utils files. +This is useful for shortening long import lines, especially in collections.

    +

    Example of using a relative import in collections:

    +
    # File: ansible_collections/my_namespace/my_collection/plugins/modules/my_module.py
    +# Old way to use an absolute import to import module_utils from the collection:
    +from ansible_collections.my_namespace.my_collection.plugins.module_utils import my_util
    +# New way using a relative import:
    +from ..module_utils import my_util
    +
    +
    +

    Modules and module_utils shipped with Ansible can use relative imports as well but the savings +are smaller:

    +
    # File: ansible/modules/system/ping.py
    +# Old way to use an absolute import to import module_utils from core:
    +from ansible.module_utils.basic import AnsibleModule
    +# New way using a relative import:
    +from ...module_utils.basic import AnsibleModule
    +
    +
    +

    Each single dot (.) represents one level of the tree (equivalent to ../ in filesystem relative links).

    +
    +

    See also

    +

    The Python Relative Import Docs go into more detail of how to write relative imports.

    +
    +
  • +
+
+
+

Bugfixes

+
    +
  • Renamed master git branch to main.

  • +
+
+
+
+

v2.1.0

+
+

Release Summary

+

Bob was there, too!

+
+
+

Bugfixes

+
    +
  • bob lookup - forgot to check whether Bob was already there.

  • +
+
+
+

New Plugins

+
+

Lookup

+
    +
  • ns.col1.bob - Bob was there, too

  • +
+
+
+
+
+

v2.0.0

+
+

Release Summary

+

We’re happy to release 2.0.0 with a new plugin!

+
+
+

Bugfixes

+
    +
  • reverse lookup - fix bug in error message.

  • +
+
+
+

New Plugins

+
+

Lookup

+
    +
  • ns.col1.reverse - reverse magic

  • +
+
+
+
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns/col1/index.html b/tests/functional/baseline-default-html/collections/ns/col1/index.html new file mode 100644 index 00000000..e66c87ae --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns/col1/index.html @@ -0,0 +1,48 @@ + + + + + Ns.Col1 + + +
+

Ns.Col1

+ +
+

Description

+

A short description.

+

Authors:

+ +
+
+
+
+

Changelog

+ +
+
+

Plugin Index

+

There are no plugins in the ns.col1 collection with automatically generated documentation.

+
+

See also

+

List of collections with docs hosted here.

+
+
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns/col2/bar_role.html b/tests/functional/baseline-default-html/collections/ns/col2/bar_role.html new file mode 100644 index 00000000..f1655ec3 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns/col2/bar_role.html @@ -0,0 +1,82 @@ + + + + + ns.col2.bar role – Bar role + + +
+

ns.col2.bar role – Bar role

+
+

Note

+

This role is part of the ns.col2 collection (version 0.0.1).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it use: ansible-galaxy collection install ns.col2.

+

To use it in a playbook, specify: ns.col2.bar.

+
+ +
+

Entry point baz – Bar role, baz entrypoint テストロール

+
+

Synopsis

+
    +
  • This is the baz entrypoint of the bar role.

  • +
+
+
+

Examples

+
An example.
+
+
+
+
+
+

Entry point main – Bar role

+
+

Synopsis

+
    +
  • This is the bar role.

  • +
+
+
+

See Also

+
+

See also

+
+
ns2.col.foo

The official documentation on the ns2.col.foo module.

+
+
ns2.col.foobarbaz

The official documentation on the ns2.col.foobarbaz module.

+
+
ns2.col.foo lookup plugin

The official documentation on the ns2.col.foo lookup plugin.

+
+
+
+
+
+

Authors

+
    +
  • Felix Fontein (@felixfontein)

  • +
+
+
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns/col2/extra_become.html b/tests/functional/baseline-default-html/collections/ns/col2/extra_become.html new file mode 100644 index 00000000..ce83e4a8 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns/col2/extra_become.html @@ -0,0 +1,48 @@ + + + + + ns.col2.extra become + + +
+

ns.col2.extra become

+

The documentation for the become plugin, ns.col2.extra, was malformed.

+

The errors were:

+
    +
  • 13 validation errors for PluginDocSchema
    +doc -> deprecated -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> options -> become_user -> env -> 0 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> options -> become_user -> env -> 1 -> deprecated -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> options -> become_user -> ini -> 0 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> options -> become_user -> ini -> 1 -> deprecated -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> options -> become_user -> vars -> 0 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> options -> become_user -> vars -> 1 -> deprecated -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> options -> become_user -> keyword -> 0 -> deprecated -> removed_from_collection
    +  Field required (type=missing)
    +doc -> options -> become_user -> keyword -> 0 -> deprecated -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> options -> become_user -> keyword -> 0 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> options -> become_user -> deprecated -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> options -> become_user -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +
    +
    +
  • +
+

File a bug with the ns.col2 collection in order to have it corrected.

+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns/col2/extra_cache.html b/tests/functional/baseline-default-html/collections/ns/col2/extra_cache.html new file mode 100644 index 00000000..ded02c21 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns/col2/extra_cache.html @@ -0,0 +1,30 @@ + + + + + ns.col2.extra cache + + +
+

ns.col2.extra cache

+

The documentation for the cache plugin, ns.col2.extra, was malformed.

+

The errors were:

+
    +
  • 4 validation errors for PluginDocSchema
    +doc -> options -> _uri -> env -> 0 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> options -> _uri -> ini -> 0 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> options -> _uri -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +
    +
    +
  • +
+

File a bug with the ns.col2 collection in order to have it corrected.

+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns/col2/extra_callback.html b/tests/functional/baseline-default-html/collections/ns/col2/extra_callback.html new file mode 100644 index 00000000..62332934 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns/col2/extra_callback.html @@ -0,0 +1,26 @@ + + + + + ns.col2.extra callback + + +
+

ns.col2.extra callback

+

The documentation for the callback plugin, ns.col2.extra, was malformed.

+

The errors were:

+
    +
  • 2 validation errors for CallbackDocSchema
    +doc -> options -> bar -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +
    +
    +
  • +
+

File a bug with the ns.col2 collection in order to have it corrected.

+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns/col2/extra_cliconf.html b/tests/functional/baseline-default-html/collections/ns/col2/extra_cliconf.html new file mode 100644 index 00000000..3a82c0e7 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns/col2/extra_cliconf.html @@ -0,0 +1,24 @@ + + + + + ns.col2.extra cliconf + + +
+

ns.col2.extra cliconf

+

The documentation for the cliconf plugin, ns.col2.extra, was malformed.

+

The errors were:

+
    +
  • 1 validation error for PluginDocSchema
    +doc -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +
    +
    +
  • +
+

File a bug with the ns.col2 collection in order to have it corrected.

+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns/col2/extra_connection.html b/tests/functional/baseline-default-html/collections/ns/col2/extra_connection.html new file mode 100644 index 00000000..d42be7ed --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns/col2/extra_connection.html @@ -0,0 +1,28 @@ + + + + + ns.col2.extra connection + + +
+

ns.col2.extra connection

+

The documentation for the connection plugin, ns.col2.extra, was malformed.

+

The errors were:

+
    +
  • 3 validation errors for PluginDocSchema
    +doc -> options -> host -> vars -> 0 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> options -> host -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +
    +
    +
  • +
+

File a bug with the ns.col2 collection in order to have it corrected.

+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns/col2/extra_filter.html b/tests/functional/baseline-default-html/collections/ns/col2/extra_filter.html new file mode 100644 index 00000000..5740cc32 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns/col2/extra_filter.html @@ -0,0 +1,26 @@ + + + + + ns.col2.extra filter + + +
+

ns.col2.extra filter

+

The documentation for the filter plugin, ns.col2.extra, was malformed.

+

The errors were:

+
    +
  • 2 validation errors for PositionalDocSchema
    +doc -> options -> _input -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +
    +
    +
  • +
+

File a bug with the ns.col2 collection in order to have it corrected.

+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns/col2/extra_inventory.html b/tests/functional/baseline-default-html/collections/ns/col2/extra_inventory.html new file mode 100644 index 00000000..c6809382 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns/col2/extra_inventory.html @@ -0,0 +1,26 @@ + + + + + ns.col2.extra inventory + + +
+

ns.col2.extra inventory

+

The documentation for the inventory plugin, ns.col2.extra, was malformed.

+

The errors were:

+
    +
  • 2 validation errors for PluginDocSchema
    +doc -> options -> bar -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +
    +
    +
  • +
+

File a bug with the ns.col2 collection in order to have it corrected.

+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns/col2/extra_lookup.html b/tests/functional/baseline-default-html/collections/ns/col2/extra_lookup.html new file mode 100644 index 00000000..c2b726a3 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns/col2/extra_lookup.html @@ -0,0 +1,26 @@ + + + + + ns.col2.extra lookup + + +
+

ns.col2.extra lookup

+

The documentation for the lookup plugin, ns.col2.extra, was malformed.

+

The errors were:

+
    +
  • 2 validation errors for PositionalDocSchema
    +doc -> options -> _terms -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +
    +
    +
  • +
+

File a bug with the ns.col2 collection in order to have it corrected.

+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns/col2/extra_module.html b/tests/functional/baseline-default-html/collections/ns/col2/extra_module.html new file mode 100644 index 00000000..752175ef --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns/col2/extra_module.html @@ -0,0 +1,186 @@ + + + + + ns.col2.extra module + + +
+

ns.col2.extra module

+

The documentation for the module plugin, ns.col2.extra, was malformed.

+

The errors were:

+
    +
  • 82 validation errors for ModuleDocSchema
    +doc -> seealso -> 0 -> description
    +  Field required (type=missing)
    +doc -> seealso -> 0 -> link
    +  Field required (type=missing)
    +doc -> seealso -> 0 -> name
    +  Field required (type=missing)
    +doc -> seealso -> 0 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 0 -> module
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 0 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 0 -> plugin
    +  Field required (type=missing)
    +doc -> seealso -> 0 -> plugin_type
    +  Field required (type=missing)
    +doc -> seealso -> 0 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 0 -> module
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 0 -> description
    +  Field required (type=missing)
    +doc -> seealso -> 0 -> ref
    +  Field required (type=missing)
    +doc -> seealso -> 0 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 0 -> module
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 1 -> description
    +  Field required (type=missing)
    +doc -> seealso -> 1 -> link
    +  Field required (type=missing)
    +doc -> seealso -> 1 -> name
    +  Field required (type=missing)
    +doc -> seealso -> 1 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 1 -> plugin
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 1 -> plugin_type
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 1 -> module
    +  Field required (type=missing)
    +doc -> seealso -> 1 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 1 -> plugin
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 1 -> plugin_type
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 1 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 1 -> description
    +  Field required (type=missing)
    +doc -> seealso -> 1 -> ref
    +  Field required (type=missing)
    +doc -> seealso -> 1 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 1 -> plugin
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 1 -> plugin_type
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 2 -> link
    +  Field required (type=missing)
    +doc -> seealso -> 2 -> name
    +  Field required (type=missing)
    +doc -> seealso -> 2 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 2 -> module
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 2 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 2 -> plugin
    +  Field required (type=missing)
    +doc -> seealso -> 2 -> plugin_type
    +  Field required (type=missing)
    +doc -> seealso -> 2 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 2 -> module
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 2 -> ref
    +  Field required (type=missing)
    +doc -> seealso -> 2 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 2 -> module
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 3 -> link
    +  Field required (type=missing)
    +doc -> seealso -> 3 -> name
    +  Field required (type=missing)
    +doc -> seealso -> 3 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 3 -> plugin
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 3 -> plugin_type
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 3 -> module
    +  Field required (type=missing)
    +doc -> seealso -> 3 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 3 -> plugin
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 3 -> plugin_type
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 3 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 3 -> ref
    +  Field required (type=missing)
    +doc -> seealso -> 3 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 3 -> plugin
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> seealso -> 3 -> plugin_type
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> attributes -> action_group -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> attributes -> action_group -> membership
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> attributes -> action_group -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> attributes -> action_group -> platforms
    +  Field required (type=missing)
    +doc -> attributes -> action_group -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> attributes -> action_group -> membership
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> attributes -> check_mode -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> attributes -> check_mode -> membership
    +  Field required (type=missing)
    +doc -> attributes -> check_mode -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> attributes -> check_mode -> platforms
    +  Field required (type=missing)
    +doc -> attributes -> check_mode -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> attributes -> diff_mode -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> attributes -> diff_mode -> membership
    +  Field required (type=missing)
    +doc -> attributes -> diff_mode -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> attributes -> diff_mode -> platforms
    +  Field required (type=missing)
    +doc -> attributes -> diff_mode -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> attributes -> platform -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> attributes -> platform -> platforms
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> attributes -> platform -> membership
    +  Field required (type=missing)
    +doc -> attributes -> platform -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> attributes -> platform -> platforms
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> attributes -> platform -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> options -> foo -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> options -> subfoo -> suboptions -> foo -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> options -> subfoo -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +
    +
    +
  • +
+

File a bug with the ns.col2 collection in order to have it corrected.

+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns/col2/extra_role.html b/tests/functional/baseline-default-html/collections/ns/col2/extra_role.html new file mode 100644 index 00000000..315974da --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns/col2/extra_role.html @@ -0,0 +1,120 @@ + + + + + ns.col2.extra role + + +
+

ns.col2.extra role

+

The documentation for the role plugin, ns.col2.extra, was malformed.

+

The errors were:

+
    +
  • 49 validation errors for RoleSchema
    +entry_points -> baz -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 0 -> description
    +  Field required (type=missing)
    +entry_points -> main -> seealso -> 0 -> link
    +  Field required (type=missing)
    +entry_points -> main -> seealso -> 0 -> name
    +  Field required (type=missing)
    +entry_points -> main -> seealso -> 0 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 0 -> module
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 0 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 0 -> plugin
    +  Field required (type=missing)
    +entry_points -> main -> seealso -> 0 -> plugin_type
    +  Field required (type=missing)
    +entry_points -> main -> seealso -> 0 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 0 -> module
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 0 -> description
    +  Field required (type=missing)
    +entry_points -> main -> seealso -> 0 -> ref
    +  Field required (type=missing)
    +entry_points -> main -> seealso -> 0 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 0 -> module
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 1 -> description
    +  Field required (type=missing)
    +entry_points -> main -> seealso -> 1 -> link
    +  Field required (type=missing)
    +entry_points -> main -> seealso -> 1 -> name
    +  Field required (type=missing)
    +entry_points -> main -> seealso -> 1 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 1 -> module
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 1 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 1 -> plugin
    +  Field required (type=missing)
    +entry_points -> main -> seealso -> 1 -> plugin_type
    +  Field required (type=missing)
    +entry_points -> main -> seealso -> 1 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 1 -> module
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 1 -> description
    +  Field required (type=missing)
    +entry_points -> main -> seealso -> 1 -> ref
    +  Field required (type=missing)
    +entry_points -> main -> seealso -> 1 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 1 -> module
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 2 -> description
    +  Field required (type=missing)
    +entry_points -> main -> seealso -> 2 -> link
    +  Field required (type=missing)
    +entry_points -> main -> seealso -> 2 -> name
    +  Field required (type=missing)
    +entry_points -> main -> seealso -> 2 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 2 -> plugin
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 2 -> plugin_type
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 2 -> module
    +  Field required (type=missing)
    +entry_points -> main -> seealso -> 2 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 2 -> plugin
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 2 -> plugin_type
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 2 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 2 -> description
    +  Field required (type=missing)
    +entry_points -> main -> seealso -> 2 -> ref
    +  Field required (type=missing)
    +entry_points -> main -> seealso -> 2 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 2 -> plugin
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> seealso -> 2 -> plugin_type
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> options -> bar -> options -> subbar -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> options -> bar -> options -> subfoo -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> options -> foo -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +entry_points -> main -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +
    +
    +
  • +
+

File a bug with the ns.col2 collection in order to have it corrected.

+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns/col2/extra_shell.html b/tests/functional/baseline-default-html/collections/ns/col2/extra_shell.html new file mode 100644 index 00000000..9bf16c4e --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns/col2/extra_shell.html @@ -0,0 +1,32 @@ + + + + + ns.col2.extra shell + + +
+

ns.col2.extra shell

+

The documentation for the shell plugin, ns.col2.extra, was malformed.

+

The errors were:

+
    +
  • 5 validation errors for PluginDocSchema
    +doc -> options -> remote_tmp -> env -> 0 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> options -> remote_tmp -> ini -> 0 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> options -> remote_tmp -> vars -> 0 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> options -> remote_tmp -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +
    +
    +
  • +
+

File a bug with the ns.col2 collection in order to have it corrected.

+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns/col2/extra_strategy.html b/tests/functional/baseline-default-html/collections/ns/col2/extra_strategy.html new file mode 100644 index 00000000..cac1dfb6 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns/col2/extra_strategy.html @@ -0,0 +1,24 @@ + + + + + ns.col2.extra strategy + + +
+

ns.col2.extra strategy

+

The documentation for the strategy plugin, ns.col2.extra, was malformed.

+

The errors were:

+
    +
  • 1 validation error for PluginDocSchema
    +doc -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +
    +
    +
  • +
+

File a bug with the ns.col2 collection in order to have it corrected.

+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns/col2/extra_test.html b/tests/functional/baseline-default-html/collections/ns/col2/extra_test.html new file mode 100644 index 00000000..b476b499 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns/col2/extra_test.html @@ -0,0 +1,26 @@ + + + + + ns.col2.extra test + + +
+

ns.col2.extra test

+

The documentation for the test plugin, ns.col2.extra, was malformed.

+

The errors were:

+
    +
  • 2 validation errors for PositionalDocSchema
    +doc -> options -> _input -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +
    +
    +
  • +
+

File a bug with the ns.col2 collection in order to have it corrected.

+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns/col2/extra_vars.html b/tests/functional/baseline-default-html/collections/ns/col2/extra_vars.html new file mode 100644 index 00000000..d1b0420f --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns/col2/extra_vars.html @@ -0,0 +1,30 @@ + + + + + ns.col2.extra vars + + +
+

ns.col2.extra vars

+

The documentation for the vars plugin, ns.col2.extra, was malformed.

+

The errors were:

+
    +
  • 4 validation errors for PluginDocSchema
    +doc -> options -> _valid_extensions -> env -> 0 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> options -> _valid_extensions -> ini -> 0 -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> options -> _valid_extensions -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +doc -> extra
    +  Extra inputs are not permitted (type=extra_forbidden)
    +
    +
    +
  • +
+

File a bug with the ns.col2 collection in order to have it corrected.

+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns/col2/foo2_module.html b/tests/functional/baseline-default-html/collections/ns/col2/foo2_module.html new file mode 100644 index 00000000..f66cf8ef --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns/col2/foo2_module.html @@ -0,0 +1,233 @@ + + + + + ns.col2.foo2 module – Foo two + + +
+

ns.col2.foo2 module – Foo two

+
+

Note

+

This module is part of the ns.col2 collection (version 0.0.1).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ns.col2. +You need further requirements to be able to use this module, +see Requirements for details.

+

To use it in a playbook, specify: ns.col2.foo2.

+
+ +
+

Synopsis

+ +
+
+

Requirements

+

The below requirements are needed on the host that executes this module.

+
    +
  • Foo.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

bar

+

list / elements=integer

+

Bar.

+

Some broken markup.

+

Foo bar baz. Bamm - Bar baz +bam bum. +Bumm - Foo bar +baz bam!

+
+

foo

+

string

+

The foo source.

+
+

subfoo

+

dictionary

+

Some recursive foo.

+
+

BaZ

+

integer

+

Funky.

+
+

foo

+

string / required

+

A sub foo.

+

Whatever.

+

Also required when subfoo is specified when foo=bar or baz.

+

foobarbaz does not exist.

+
+
+
+

Attributes

+ + + + + + + + + + + + + + + + + + + + + +

Attribute

Support

Description

+

check_mode

+

Support: full

+

Can run in check_mode and return changed status prediction without modifying target

+
+

diff_mode

+

Support: full

+

Will return details on what has changed (or possibly needs changing in check_mode), when in diff mode

+

Foo bar baz. Bamm - Bar baz +bam bum. +Bumm - Foo bar +baz bam!

+
+

platform

+

Platform: posix

+

The module ERROR while parsing: While parsing “M(boo)” at index 12: Module name “boo” is not a FQCN is not using an FQCN.

+

Sometimes our markup is ERROR while parsing: While parsing “B(broken.” at index 25: Cannot find closing “)” after last parameter

+

Foo bar baz. Bamm - Bar baz +bam bum. +Bumm - Foo bar +baz bam!

+

Target OS/families that can be operated against

+
+
+
+

Notes

+
+

Note

+
    +
  • Foo bar baz. Bamm - Bar baz +bam bum. +Bumm - Foo bar +baz bam!

  • +
+
+
+
+

See Also

+
+

See also

+
+
ns.col2.foo3

Foo III.

+
+
ns.col2.foobarbaz

The official documentation on the ns.col2.foobarbaz module.

+
+
ns.col2.foo4 module plugin

Markup reference linting test.

+
+
ns.col2.foobarbaz inventory plugin

The official documentation on the ns.col2.foobarbaz inventory plugin.

+
+
ansible.builtin.service

The service module.

+
+
ansible.builtin.foobarbaz

A non-existing module.

+
+
ansible.builtin.linear strategy plugin

The linear strategy plugin.

+
+
ansible.builtin.foobarbaz strategy plugin

Foo bar baz. Bamm - Bar baz +bam bum. +Bumm - Foo bar +baz bam!

+
+
+
+
+
+

Examples

+
name: This is YAML.
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + +

Key

Description

+

bar

+

string

+

Some bar.

+

Returned: success

+

Sample: "baz"

+
+
+

Authors

+
    +
  • Someone else (@ansible)

  • +
+
+
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns/col2/foo3_module.html b/tests/functional/baseline-default-html/collections/ns/col2/foo3_module.html new file mode 100644 index 00000000..c1a93f1e --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns/col2/foo3_module.html @@ -0,0 +1,148 @@ + + + + + ns.col2.foo3 module – Foo III + + +
+

ns.col2.foo3 module – Foo III

+
+

Note

+

This module is part of the ns.col2 collection (version 0.0.1).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ns.col2. +You need further requirements to be able to use this module, +see Requirements for details.

+

To use it in a playbook, specify: ns.col2.foo3.

+
+ +
+

Synopsis

+
    +
  • Does some foo on the remote host.

  • +
+
+
+

Requirements

+

The below requirements are needed on the host that executes this module.

+
    +
  • Foo.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

bar

+

list / elements=integer

+

Bar.

+
+

foo

+

string

+

The foo source.

+
+

subfoo

+

dictionary

+

Some recursive foo.

+
+

foo

+

string / required

+

A sub foo.

+

Whatever.

+

Also required when subfoo is specified when foo=bar or baz.

+
+
+
+

Attributes

+ + + + + + + + + + + + + + + + + + + + + +

Attribute

Support

Description

+

check_mode

+

Support: full

+

Can run in check_mode and return changed status prediction without modifying target

+
+

diff_mode

+

Support: full

+

Will return details on what has changed (or possibly needs changing in check_mode), when in diff mode

+
+

platform

+

Platform: posix

+

Target OS/families that can be operated against

+
+
+
+

Examples

+
This is not YAML.
+
+
+
+

Authors

+
    +
  • Someone else (@ansible)

  • +
+

There were some errors parsing the documentation for this plugin. Please file a bug with the ns.col2 collection.

+

The errors were:

+
    +
  • Unable to normalize foo3: return due to: 2 validation errors for PluginReturnSchema
    +return -> bar -> type
    +  Input should be 'any', 'bits', 'bool', 'bytes', 'complex', 'dict', 'float', 'int', 'json', 'jsonarg', 'list', 'path', 'sid', 'str', 'pathspec' or 'pathlist' (type=literal_error; expected='any', 'bits', 'bool', 'bytes', 'complex', 'dict', 'float', 'int', 'json', 'jsonarg', 'list', 'path', 'sid', 'str', 'pathspec' or 'pathlist')
    +return -> baz
    +  Input should be a valid dictionary or instance of OuterReturnSchema (type=model_type; class_name=OuterReturnSchema)
    +
    +
    +
  • +
+
+
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns/col2/foo4_module.html b/tests/functional/baseline-default-html/collections/ns/col2/foo4_module.html new file mode 100644 index 00000000..d4014ea7 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns/col2/foo4_module.html @@ -0,0 +1,137 @@ + + + + + ns.col2.foo4 module – Markup reference linting test + + +
+

ns.col2.foo4 module – Markup reference linting test

+
+

Note

+

This module is part of the ns.col2 collection (version 0.0.1).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ns.col2.

+

To use it in a playbook, specify: ns.col2.foo4.

+
+ +
+

Synopsis

+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

correct_array_stubs

+

string

+
+

existing

+

string

+
+

incorrect_array_stubs

+

string

+
+

not_existing

+

string

+
+
+

Authors

+
    +
  • Nobody (@ansible)

  • +
+
+
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns/col2/foo_module.html b/tests/functional/baseline-default-html/collections/ns/col2/foo_module.html new file mode 100644 index 00000000..a81d2d5f --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns/col2/foo_module.html @@ -0,0 +1,36 @@ + + + + + ns.col2.foo module + + +
+

ns.col2.foo module

+

The documentation for the module plugin, ns.col2.foo, was malformed.

+

The errors were:

+
    +
  • 7 validation errors for ModuleDocSchema
    +doc -> short_description
    +  Field required (type=missing)
    +doc -> seealso
    +  Input should be a valid list (type=list_type)
    +doc -> options -> bar -> description -> 0
    +  Input should be a valid string (type=string_type)
    +doc -> options -> bar -> description -> 1
    +  Input should be a valid string (type=string_type)
    +doc -> options -> bar -> type
    +  Input should be 'any', 'bits', 'bool', 'bytes', 'dict', 'float', 'int', 'json', 'jsonarg', 'list', 'path', 'raw', 'sid', 'str', 'tmppath', 'pathspec' or 'pathlist' (type=literal_error; expected='any', 'bits', 'bool', 'bytes', 'dict', 'float', 'int', 'json', 'jsonarg', 'list', 'path', 'raw', 'sid', 'str', 'tmppath', 'pathspec' or 'pathlist')
    +doc -> options -> foo
    +  Input should be a valid dictionary or instance of ModuleOptionsSchema (type=model_type; class_name=ModuleOptionsSchema)
    +doc -> options -> subfoo -> bam
    +  Extra inputs are not permitted (type=extra_forbidden)
    +
    +
    +
  • +
+

File a bug with the ns.col2 collection in order to have it corrected.

+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns/col2/index.html b/tests/functional/baseline-default-html/collections/ns/col2/index.html new file mode 100644 index 00000000..ee154fb3 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns/col2/index.html @@ -0,0 +1,160 @@ + + + + + Ns.Col2 + + +
+

Ns.Col2

+

Collection version 0.0.1

+ +
+

Description

+

Author:

+ +

Supported ansible-core versions:

+
    +
  • newer than 2.11.0

  • +
+
+
+
+
+

Plugin Index

+

These are the plugins in the ns.col2 collection:

+
+

Modules

+ +
+
+
+
+

Become Plugins

+ +
+
+
+
+

Cache Plugins

+ +
+
+
+
+

Callback Plugins

+ +
+
+
+
+

Cliconf Plugins

+ +
+
+
+
+

Connection Plugins

+ +
+
+
+
+

Filter Plugins

+ +
+
+
+
+

Inventory Plugins

+ +
+
+
+
+

Lookup Plugins

+ +
+
+
+
+

Shell Plugins

+ +
+
+
+
+

Strategy Plugins

+ +
+
+
+
+

Test Plugins

+ +
+
+
+
+

Vars Plugins

+ +
+
+
+
+
+

Role Index

+

These are the roles in the ns.col2 collection:

+ +
+
+
+

See also

+

List of collections with docs hosted here.

+
+
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns/index.html b/tests/functional/baseline-default-html/collections/ns/index.html new file mode 100644 index 00000000..f8c6ae3e --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns/index.html @@ -0,0 +1,20 @@ + + + + + Collections in the Ns Namespace + + +
+

Collections in the Ns Namespace

+

These are the collections documented here in the ns namespace.

+ +
+
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/bar_filter.html b/tests/functional/baseline-default-html/collections/ns2/col/bar_filter.html new file mode 100644 index 00000000..7992a591 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/bar_filter.html @@ -0,0 +1,172 @@ + + + + + ns2.col.bar filter – The bar filter + + +
+

ns2.col.bar filter – The bar filter

+
+

Note

+

This filter plugin is part of the ns2.col collection (version 2.1.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ns2.col.

+

To use it in a playbook, specify: ns2.col.bar.

+
+

New in ns2.col 2.0.0

+ +
+

Synopsis

+
    +
  • Do some barring.

  • +
+
+
+

Input

+

This describes the input of the filter, the value before | ns2.col.bar.

+ + + + + + + + + + + +

Parameter

Comments

+

Input

+

dictionary / required

+

The main input.

+
+
+
+

Positional parameters

+

This describes positional parameters of the filter. These are the values positional1, positional2 and so on in the following +example: input | ns2.col.bar(positional1, positional2, ...)

+ + + + + + + + + + + + + + +

Parameter

Comments

+

foo

+

list / elements=dictionary / required

+

Some foo.

+
+

bar

+

boolean

+

And some bar.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+
+
+

Keyword parameters

+

This describes keyword parameters of the filter. These are the values key1=value1, key2=value2 and so on in the following +example: input | ns2.col.bar(key1=value1, key2=value2, ...)

+ + + + + + + + + + + +

Parameter

Comments

+

baz

+

string

+

Something else.

+

Choices:

+
    +
  • "a": +Whatever a is.

  • +
  • "b": +What is b? I don’t know.

  • +
  • "cde": +This is some more unknown. There are rumors this is related to the alphabet.

  • +
  • "foo" (default): +Our default value, the glorious foo.

    +

    Even has two paragraphs.

    +
  • +
+
+
+
+

Notes

+
+

Note

+
    +
  • When keyword and positional parameters are used together, positional parameters must be listed before keyword parameters: +input | ns2.col.bar(positional1, positional2, key1=value1, key2=value2)

  • +
+
+
+
+

Examples

+
{'a': 1} | ns2.col.bar({'b': 2}, baz='cde')
+
+
+
+
+

Return Value

+ + + + + + + + + + + +

Key

Description

+

Return value

+

dictionary

+

The result.

+

Returned: success

+
+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/bar_test.html b/tests/functional/baseline-default-html/collections/ns2/col/bar_test.html new file mode 100644 index 00000000..9aa8f02e --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/bar_test.html @@ -0,0 +1,98 @@ + + + + + ns2.col.bar test – Is something a bar + + +
+

ns2.col.bar test – Is something a bar

+
+

Note

+

This test plugin is part of the ns2.col collection (version 2.1.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ns2.col.

+

To use it in a playbook, specify: ns2.col.bar.

+
+ +
+

Synopsis

+
    +
  • Check whether a path is a bar.

  • +
+

Aliases: is_bar

+
+
+

Input

+

This describes the input of the test, the value before is ns2.col.bar or is not ns2.col.bar.

+ + + + + + + + + + + +

Parameter

Comments

+

Input

+

path

+

A path.

+
+
+
+

Examples

+
is_path_bar: "{{ '/etc/hosts' is ns2.col.bar }}}"
+
+
+
+
+

Return Value

+ + + + + + + + + + + +

Key

Description

+

Return value

+

boolean

+

Returns true if the path is a bar, false if it is not a bar.

+

Returned: success

+
+
+

Authors

+
    +
  • Ansible Core

  • +
+
+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/changelog.html b/tests/functional/baseline-default-html/collections/ns2/col/changelog.html new file mode 100644 index 00000000..2ccd02d1 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/changelog.html @@ -0,0 +1,11 @@ + + + + + <no title> + + +

The changelog of ns2.col is empty.

+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/docsite/filter_guide.html b/tests/functional/baseline-default-html/collections/ns2/col/docsite/filter_guide.html new file mode 100644 index 00000000..5c14c0ab --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/docsite/filter_guide.html @@ -0,0 +1,77 @@ + + + + + Filter Guide + + +
+

Filter Guide

+ +

The ns2.col collection offers two filters.

+ +
+
+FOOBAR1
+

This is one environment variable.

+
+ +
+
+FOOBAR2
+

This is another environment variable.

+
+ +
+
+FOOBAR3
+

This is a third environment variable.

+
+ +
+

Note

+

Also check out the ns2.col.foo role with its main entrypoint.

+
+
+

Errors

+

does.not_exist

+

Invalid destination

+

ns.col1

+

ns2.col

+

ns2.col.does_not_exist

+

ns2.col.foo

+

Only roles can have entrypoints

+

ns2.col.foo

+

does_not_exist

+

neither

+

Role reference is missing entrypoint

+

does_not_exist

+

neither

+

Role reference is missing entrypoint

+

An explicit reference title must be provided!

+

Cannot extract plugin name and type

+

plugin does not exist

+

Invalid option name “foo:boo”

+

Role reference is missing entrypoint

+

invalid entrypoint for role

+

option does not exist

+

An explicit reference title must be provided!

+

Cannot extract plugin name and type

+

plugin does not exist

+

Invalid return value name “foo:boo”

+

Role reference is missing entrypoint

+

invalid entrypoint for role

+

return value does not exist

+
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/foo2_module.html b/tests/functional/baseline-default-html/collections/ns2/col/foo2_module.html new file mode 100644 index 00000000..1b1ffd56 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/foo2_module.html @@ -0,0 +1,156 @@ + + + + + ns2.col.foo2 module – Another foo + + +
+

ns2.col.foo2 module – Another foo

+
+

Note

+

This module is part of the ns2.col collection (version 2.1.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ns2.col.

+

To use it in a playbook, specify: ns2.col.foo2.

+
+ +
+

Synopsis

+
    +
  • Foo bar.

  • +
  • See foo_param_1 for a random role parameter reference. And foo_param_2=42 for one with a value.

  • +
  • Reference using alias - bar and baz.

  • +

  • +
  • Another line.

  • +
+

Aliases: foo_3_redirect, foo_4_redirect, foo_5_redirect

+
+
+

Parameters

+ + + + + + + + + + + +

Parameter

Comments

+

bar

+

string

+

Some bar.

+

See foo_param_1 for a random role parameter reference. And foo_param_2=42 for one with a value.

+

Some text.

+

More text.

+
+
+
+

Attributes

+ + + + + + + + + + + + + + + + + + + + + + + + + +

Attribute

Support

Description

+

action_group

+

Action groups: ns2.col.bar_group, ns2.col.foo_group

+

Use group/ns2.col.foo_group or group/ns2.col.bar_group in module_defaults to set defaults for this module.

+
+

check_mode

+

Support: full

+

Can run in check_mode and return changed status prediction without modifying target

+
+

diff_mode

+

Support: N/A

+

Will return details on what has changed (or possibly needs changing in check_mode), when in diff mode

+
+

platform

+

Platform: posix

+

Target OS/families that can be operated against

+
+
+
+

Examples

+
- name: Do some foo
+  ns2.col.foo2:
+    bar: foo
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + +

Key

Description

+

bar

+

string

+

Some bar.

+

Referencing myself as bar.

+

Do not confuse with bar.

+

Returned: success

+

Sample: "baz"

+
+
+

Authors

+
    +
  • Another one (@ansible-community)

  • +
+
+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/foo_1_redirect_module.html b/tests/functional/baseline-default-html/collections/ns2/col/foo_1_redirect_module.html new file mode 100644 index 00000000..5f89ea3d --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/foo_1_redirect_module.html @@ -0,0 +1,22 @@ + + + + + ns2.col.foo_1_redirect module + + +
+

ns2.col.foo_1_redirect module

+
+

Note

+

This redirect is part of the ns2.col collection (version 2.1.0).

+

To use it in a playbook, specify: ns2.col.foo_1_redirect.

+
+
    +
  • This is a redirect to the ns2.col.foo module.

  • +
  • This redirect does not work with Ansible 2.9.

  • +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/foo_2_redirect_module.html b/tests/functional/baseline-default-html/collections/ns2/col/foo_2_redirect_module.html new file mode 100644 index 00000000..c8b851a0 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/foo_2_redirect_module.html @@ -0,0 +1,22 @@ + + + + + ns2.col.foo_2_redirect module + + +
+

ns2.col.foo_2_redirect module

+
+

Note

+

This redirect is part of the ns2.col collection (version 2.1.0).

+

To use it in a playbook, specify: ns2.col.foo_2_redirect.

+
+
    +
  • This is a redirect to the ns2.col.foo module.

  • +
  • This redirect does not work with Ansible 2.9.

  • +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/foo_3_redirect_module.html b/tests/functional/baseline-default-html/collections/ns2/col/foo_3_redirect_module.html new file mode 100644 index 00000000..e835ec60 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/foo_3_redirect_module.html @@ -0,0 +1,22 @@ + + + + + ns2.col.foo_3_redirect module + + +
+

ns2.col.foo_3_redirect module

+
+

Note

+

This redirect is part of the ns2.col collection (version 2.1.0).

+

To use it in a playbook, specify: ns2.col.foo_3_redirect.

+
+
    +
  • This is a redirect to the ns2.col.foo2 module.

  • +
  • This redirect does not work with Ansible 2.9.

  • +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/foo_4_redirect_module.html b/tests/functional/baseline-default-html/collections/ns2/col/foo_4_redirect_module.html new file mode 100644 index 00000000..efccaec8 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/foo_4_redirect_module.html @@ -0,0 +1,20 @@ + + + + + ns2.col.foo_4_redirect + + +
+

ns2.col.foo_4_redirect

+
+

Note

+

This plugin was part of the ns2.col collection (version 2.1.0).

+
+

This module has been removed +in version 2.0.0 of ns2.col. +It is gone

+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/foo_5_redirect_module.html b/tests/functional/baseline-default-html/collections/ns2/col/foo_5_redirect_module.html new file mode 100644 index 00000000..3f7dd276 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/foo_5_redirect_module.html @@ -0,0 +1,24 @@ + + + + + ns2.col.foo_5_redirect module + + +
+

ns2.col.foo_5_redirect module

+
+

Note

+

This redirect is part of the ns2.col collection (version 2.1.0).

+
+
    +
  • This redirect has been deprecated. Please update your tasks to use the new name ns2.col.foo2 instead. +It will be removed in version 5.0.0 of ns2.col.

  • +
  • This is a redirect to the ns2.col.foo2 module.

  • +
  • This redirect does not work with Ansible 2.9.

  • +
  • The collection contains the following information on this deprecation: It will be really gone

  • +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/foo_become.html b/tests/functional/baseline-default-html/collections/ns2/col/foo_become.html new file mode 100644 index 00000000..f93d5728 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/foo_become.html @@ -0,0 +1,185 @@ + + + + + ns2.col.foo become – Use foo bar + + +
+

ns2.col.foo become – Use foo bar

+
+

Note

+

This become plugin is part of the ns2.col collection (version 2.1.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ns2.col.

+

To use it in a playbook, specify: ns2.col.foo.

+
+ +
+

DEPRECATED

+
+
Removed in:
+

version 5.0.0

+
+
Why:
+

Just some text. +This one has more than one line. +And one more.

+
+
Alternative:
+

I don’t know +of any +alternative.

+
+
+
+
+

Synopsis

+
    +
  • This become plugin uses foo.

  • +
  • This is a second paragraph.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + +

Parameter

Comments

+

bar

+

string

+

added in ns2.col 1.2.0

+

Removed in: version 4.0.0

+

Why: Just some other text. +This one has more than one line though. +One more.

+

Alternative: nothing +relevant +I know of

+

Bar. BAR!

+

Totally unrelated to become_user. Even with become_user=foo.

+

Might not be compatible when become_user is bar, though.

+
+

become_exe

+

string

+

added in ns2.col 0.2.0

+

Foo executable.

+

Default: "foo"

+

Configuration:

+
    +
  • INI entries:

    +
    [privilege_escalation]
    +become_exe = foo
    +
    +
    +
    [foo_become_plugin]
    +executable = foo
    +
    +
    +

    Removed in: version 3.0.0

    +

    Why: Just some text.

    +

    Alternative: nothing

    +
  • +
  • Environment variable: ANSIBLE_BECOME_EXE

  • +
  • Environment variable: ANSIBLE_FOO_EXE

    +

    Removed in: version 3.0.0

    +

    Why: Just some text.

    +

    Alternative: nothing

    +
  • +
  • Keyword: become_exe

  • +
  • Variable: ansible_become_exe

  • +
  • Variable: ansible_foo_exe

    +

    Removed in: version 3.0.0

    +

    Why: Just some text.

    +

    Alternative: nothing

    +
  • +
+
+

become_user

+

string

+

User you ‘become’ to execute the task.

+

Default: "root"

+

Configuration:

+
    +
  • INI entries:

    +
    [privilege_escalation]
    +become_user = root
    +
    +
    +

    added in ns2.col 0.1.0

    +
    [foo_become_plugin]
    +user = root
    +
    +
    +
  • +
  • Environment variable: ANSIBLE_BECOME_USER

    +

    added in ns2.col 0.1.0

    +
  • +
  • Environment variable: ANSIBLE_FOO_USER

  • +
  • Keyword: become_user

    +

    added in ns2.col 0.1.0

    +
  • +
  • Variable: ansible_become_user

  • +
  • Variable: ansible_foo_user

    +

    added in ns2.col 0.1.0

    +
  • +
+
+
+

Note

+

Configuration entries listed above for each entry type (Ansible variable, environment variable, and so on) have a low to high priority order. +For example, a variable that is lower in the list will override a variable that is higher up. +The entry types are also ordered by precedence from low to high priority order. +For example, an ansible.cfg entry (further up in the list) is overwritten by an Ansible variable (further down in the list).

+
+
+
+

Status

+
    +
  • This become will be removed in version 5.0.0. +[deprecated]

  • +
  • For more information see DEPRECATED.

  • +
+
+

Authors

+
    +
  • Nobody

  • +
+
+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/foo_cache.html b/tests/functional/baseline-default-html/collections/ns2/col/foo_cache.html new file mode 100644 index 00000000..6a4367c0 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/foo_cache.html @@ -0,0 +1,93 @@ + + + + + ns2.col.foo cache – Foo files bar + + +
+

ns2.col.foo cache – Foo files bar

+
+

Note

+

This cache plugin is part of the ns2.col collection (version 2.1.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ns2.col.

+

To use it in a playbook, specify: ns2.col.foo.

+
+

New in ns2.col 1.9.0

+ +
+

Synopsis

+
    +
  • Cache foo files.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + +

Parameter

Comments

+

_uri

+

path / required

+

Path in which the cache plugin will save the foo files.

+

Configuration:

+
    +
  • INI entry:

    +
    [defaults]
    +fact_caching_connection = VALUE
    +
    +
    +
  • +
  • Environment variable: ANSIBLE_CACHE_PLUGIN_CONNECTION

  • +
+
+

bar

+

string

+

Nothing.

+
+
+

Note

+

Configuration entries listed above for each entry type (Ansible variable, environment variable, and so on) have a low to high priority order. +For example, a variable that is lower in the list will override a variable that is higher up. +The entry types are also ordered by precedence from low to high priority order. +For example, an ansible.cfg entry (further up in the list) is overwritten by an Ansible variable (further down in the list).

+
+
+

Authors

+
    +
  • Ansible Core (@ansible-core)

  • +
+
+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/foo_callback.html b/tests/functional/baseline-default-html/collections/ns2/col/foo_callback.html new file mode 100644 index 00000000..03c22f29 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/foo_callback.html @@ -0,0 +1,73 @@ + + + + + ns2.col.foo callback – Foo output bar + + +
+

ns2.col.foo callback – Foo output bar

+
+

Note

+

This callback plugin is part of the ns2.col collection (version 2.1.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ns2.col.

+

To use it in a playbook, specify: ns2.col.foo.

+
+

New in ns2.col 0.0.1

+ +
+

Callback plugin

+

This plugin is a stdout callback. You can use only use one stdout callback at a time. Additional aggregate or notification callbacks can be enabled though. +See Dead reference for more information on callback plugins.

+
+
+

Synopsis

+
    +
  • Absolut minimal foo output.

  • +
+
+
+

Parameters

+ + + + + + + + + + + +

Parameter

Comments

+

bar

+

string

+

Nothing.

+

Configuration:

+ +
+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/foo_cliconf.html b/tests/functional/baseline-default-html/collections/ns2/col/foo_cliconf.html new file mode 100644 index 00000000..c9a2478a --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/foo_cliconf.html @@ -0,0 +1,48 @@ + + + + + ns2.col.foo cliconf – Foo router CLI config + + +
+

ns2.col.foo cliconf – Foo router CLI config

+
+

Note

+

This cliconf plugin is part of the ns2.col collection (version 2.1.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ns2.col.

+

To use it in a playbook, specify: ns2.col.foo.

+
+ +
+

Synopsis

+
    +
  • This is a CLI config for foo routers. Whatever these are.

  • +
+
+

Authors

+
    +
  • Felix Fontein (@felixfontein)

  • +
+
+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/foo_connection.html b/tests/functional/baseline-default-html/collections/ns2/col/foo_connection.html new file mode 100644 index 00000000..c533491c --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/foo_connection.html @@ -0,0 +1,103 @@ + + + + + ns2.col.foo connection – Foo connection bar + + +
+

ns2.col.foo connection – Foo connection bar

+
+

Note

+

This connection plugin is part of the ns2.col collection (version 2.1.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ns2.col.

+

To use it in a playbook, specify: ns2.col.foo.

+
+

New in ns2.col 1.2.0

+ +
+

Synopsis

+
    +
  • This is for the foo connection.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + +

Parameter

Comments

+

bar

+

integer

+

Foo bar.

+
+

host

+

string

+

Hostname to connect to.

+

Default: "inventory_hostname"

+

Configuration:

+
    +
  • Variable: inventory_hostname

  • +
  • Variable: ansible_host

  • +
  • Variable: ansible_ssh_host

  • +
  • Variable: delegated_vars[‘ansible_host’]

  • +
  • Variable: delegated_vars[‘ansible_ssh_host’]

  • +
+
+
+

Note

+

Configuration entries listed above for each entry type (Ansible variable, environment variable, and so on) have a low to high priority order. +For example, a variable that is lower in the list will override a variable that is higher up. +The entry types are also ordered by precedence from low to high priority order. +For example, an ansible.cfg entry (further up in the list) is overwritten by an Ansible variable (further down in the list).

+
+
+
+

Notes

+
+

Note

+ +
+
+

Authors

+
    +
  • ansible (@core)

  • +
+
+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/foo_filter.html b/tests/functional/baseline-default-html/collections/ns2/col/foo_filter.html new file mode 100644 index 00000000..1cd6d82e --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/foo_filter.html @@ -0,0 +1,121 @@ + + + + + ns2.col.foo filter – The foo filter bar + + +
+

ns2.col.foo filter – The foo filter bar

+
+

Note

+

This filter plugin is part of the ns2.col collection (version 2.1.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ns2.col.

+

To use it in a playbook, specify: ns2.col.foo.

+
+

New in ns2.col 1.3.0

+ +
+

Synopsis

+
    +
  • Do some fooing.

  • +
+
+
+

Input

+

This describes the input of the filter, the value before | ns2.col.foo.

+ + + + + + + + + + + +

Parameter

Comments

+

Input

+

string / required

+

The main input.

+
+
+
+

Keyword parameters

+

This describes keyword parameters of the filter. These are the values key1=value1, key2=value2 and so on in the following +example: input | ns2.col.foo(key1=value1, key2=value2, ...)

+ + + + + + + + + + + + + + +

Parameter

Comments

+

bar

+

string

+

Some bar.

+
+

foo

+

list / elements=dictionary / required

+

Some foo.

+
+
+
+

Examples

+
some_var: "{{ 'foo' | ns2.col.foo }}"
+
+
+
+
+

Return Value

+ + + + + + + + + + + +

Key

Description

+

Return value

+

string

+

The result.

+

Returned: success

+
+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/foo_inventory.html b/tests/functional/baseline-default-html/collections/ns2/col/foo_inventory.html new file mode 100644 index 00000000..916a4230 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/foo_inventory.html @@ -0,0 +1,71 @@ + + + + + ns2.col.foo inventory – The foo inventory bar + + +
+

ns2.col.foo inventory – The foo inventory bar

+
+

Note

+

This inventory plugin is part of the ns2.col collection (version 2.1.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ns2.col.

+

To use it in a playbook, specify: ns2.col.foo.

+
+

New in ns2.col 0.5.0

+ +
+

Synopsis

+
    +
  • Loads inventory from foo.

  • +
+
+
+

Parameters

+ + + + + + + + + + + +

Parameter

Comments

+

bar

+

string

+

Foo bar.

+
+
+
+

Examples

+
foo:
+    bar!
+
+
+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/foo_lookup.html b/tests/functional/baseline-default-html/collections/ns2/col/foo_lookup.html new file mode 100644 index 00000000..cb6586e1 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/foo_lookup.html @@ -0,0 +1,137 @@ + + + + + ns2.col.foo lookup – Look up some foo bar + + +
+

ns2.col.foo lookup – Look up some foo bar

+
+

Note

+

This lookup plugin is part of the ns2.col collection (version 2.1.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ns2.col.

+

To use it in a playbook, specify: ns2.col.foo.

+
+

New in ns2.col 1.0.0

+ +
+

Synopsis

+
    +
  • This looks up some foo.

  • +
  • Whatever that is.

  • +
+
+
+

Terms

+ + + + + + + + + + + +

Parameter

Comments

+

Terms

+

list / elements=string / required

+

The stuff to look up.

+
+
+
+

Keyword parameters

+

This describes keyword parameters of the lookup. These are the values key1=value1, key2=value2 and so on in the following +examples: lookup('ns2.col.foo', key1=value1, key2=value2, ...) and query('ns2.col.foo', key1=value1, key2=value2, ...)

+ + + + + + + + + + + +

Parameter

Comments

+

bar

+

string

+

Foo bar.

+

Configuration:

+
    +
  • Variable: foo_bar

  • +
+
+
+
+

Notes

+
+

Note

+
    +
  • When keyword and positional parameters are used together, positional parameters must be listed before keyword parameters: +lookup('ns2.col.foo', term1, term2, key1=value1, key2=value2) and query('ns2.col.foo', term1, term2, key1=value1, key2=value2)

  • +
+
+
+
+

Examples

+
- name: Look up bar
+  ansible.builtin.debug:
+    msg: "{{ lookup('ns2.col.foo', 'bar') }}"
+
+
+
+
+

Return Value

+ + + + + + + + + + + +

Key

Description

+

Return value

+

list / elements=string

+

The resulting stuff.

+

Returned: success

+
+
+

Authors

+
    +
  • Felix Fontein (@felixfontein)

  • +
+
+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/foo_module.html b/tests/functional/baseline-default-html/collections/ns2/col/foo_module.html new file mode 100644 index 00000000..5ab2203b --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/foo_module.html @@ -0,0 +1,259 @@ + + + + + ns2.col.foo module – Do some foo bar + + +
+

ns2.col.foo module – Do some foo bar

+
+

Note

+

This module is part of the ns2.col collection (version 2.1.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ns2.col. +You need further requirements to be able to use this module, +see Requirements for details.

+

To use it in a playbook, specify: ns2.col.foo.

+
+

New in ns2.col 2.0.0

+ +
+

Synopsis

+
    +
  • Does some foo on the remote host.

  • +
  • Whether foo is magic or not has not yet been determined.

  • +
  • FOOBAR1, FOOBAR2, FOOBAR3, FOOBAR4.

  • +
+

Aliases: foo_1_redirect, foo_2_redirect, foo_redirect

+
+
+

Requirements

+

The below requirements are needed on the host that executes this module.

+
    +
  • Foo on remote.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+
+

bar

+

aliases: baz

+

list / elements=integer

+

A bar.

+

Independent from foo.

+

Do not confuse with bar.

+
+

foo

+

string / required

+

The foo source.

+
+

manager

+

list / elements=string

+

The package manager(s) used by the system so we can query the package information. This is a list and can support multiple package managers per system, since version 2.8.

+

The ‘portage’ and ‘pkg’ options were added in version 2.8.

+

The ‘apk’ option was added in version 2.11.

+

The ‘pkg_info’ option was added in version 2.13.

+

Aliases were added in 2.18, to support using auto={{ansible_facts['pkg_mgr']}}

+

Choices:

+
    +
  • "apk": +Alpine Linux package manager

  • +
  • "apt": +For DEB based distros, python-apt package must be installed on targeted hosts

  • +
  • "auto" (default): +Depending on strategy, will match the first or all package managers provided, in order

  • +
  • "dnf": +Alias to rpm

  • +
  • "dnf5": +Alias to rpm

  • +
  • "openbsd_pkg": +Alias to pkg_info

  • +
  • "pacman": +Archlinux package manager/builder

  • +
  • "pkg": +libpkg front end (FreeBSD)

  • +
  • "pkg5": +Alias to pkg

  • +
  • "pkg_info": +OpenBSD package manager

  • +
  • "pkgng": +Alias to pkg

  • +
  • "portage": +Handles ebuild packages, it requires the qlist utility, which is part of ‘app-portage/portage-utils’

  • +
  • "rpm": +For RPM based distros, requires RPM Python bindings, not installed by default on Suse (python3-rpm)

  • +
  • "yum": +Alias to rpm

  • +
  • "zypper": +Alias to rpm

  • +
+

Default: ["auto"]

+
+

subfoo

+

dictionary

+

added in ns2.col 2.0.0

+

Some recursive foo.

+
+

foo

+

string / required

+

A sub foo.

+

Whatever.

+

Also required when subfoo is specified when foo=bar or baz.

+
+
+
+

Attributes

+ + + + + + + + + + + + + + + + + + + + + + + + + +

Attribute

Support

Description

+

action_group

+

Action group: ns2.col.foo_group

+

Use group/ns2.col.foo_group in module_defaults to set defaults for this module.

+
+

check_mode

+

Support: full

+

Can run in check_mode and return changed status prediction without modifying target

+
+

diff_mode

+

Support: full

+

Will return details on what has changed (or possibly needs changing in check_mode), when in diff mode

+
+

platform

+

Platform: posix

+

Target OS/families that can be operated against

+
+
+
+

See Also

+
+

See also

+
+
ns2.col.foo2

Another foo.

+
+
ns2.col.foo lookup plugin

Look up some foo bar.

+
+
ansible.builtin.service

The service module.

+
+
ansible.builtin.ssh connection plugin

The ssh connection plugin.

+
+
+
+
+
+

Examples

+
- name: Do some foo
+  ns2.col.foo:
+    foo: '{{ foo }}'
+    bar:
+      - 1
+      - 2
+      - 3
+    subfoo:
+      foo: hoo!
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + +

Key

Description

+

bar

+

string

+

Some bar.

+

Referencing myself as bar.

+

Do not confuse with bar.

+

Returned: success

+

Sample: "baz"

+
+
+

Authors

+
    +
  • Ansible Core Team

  • +
  • Someone else (@ansible)

  • +
+
+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/foo_redirect_module.html b/tests/functional/baseline-default-html/collections/ns2/col/foo_redirect_module.html new file mode 100644 index 00000000..b8dba40a --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/foo_redirect_module.html @@ -0,0 +1,22 @@ + + + + + ns2.col.foo_redirect module + + +
+

ns2.col.foo_redirect module

+
+

Note

+

This redirect is part of the ns2.col collection (version 2.1.0).

+

To use it in a playbook, specify: ns2.col.foo_redirect.

+
+
    +
  • This is a redirect to the ns2.col.foo module.

  • +
  • This redirect does not work with Ansible 2.9.

  • +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/foo_role.html b/tests/functional/baseline-default-html/collections/ns2/col/foo_role.html new file mode 100644 index 00000000..caf87967 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/foo_role.html @@ -0,0 +1,158 @@ + + + + + ns2.col.foo role – Foo role + + +
+

ns2.col.foo role – Foo role

+
+

Note

+

This role is part of the ns2.col collection (version 2.1.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it use: ansible-galaxy collection install ns2.col.

+

To use it in a playbook, specify: ns2.col.foo.

+
+ +
+

Entry point main – Foo role

+

New in ns2.col 0.2.0

+
+

DEPRECATED

+
+
Removed in:
+

major release after 2020-01-01

+
+
Why:
+

Just some text. +This one has more than one line. +And one more.

+
+
Alternative:
+

I don’t know +of any +alternative.

+
+
+
+
+

Synopsis

+ +
+
+

Parameters

+ + + + + + + + + + + + + + +

Parameter

Comments

+

foo_param_1

+

string

+

A string parameter

+

If you set foo_param_1 while foo_param_2=3, this might behave funny.

+
+

foo_param_2

+

integer

+

An integer parameter with a default.

+

Default: 13

+
+
+
+

Attributes

+ + + + + + + + + + + + + + + + + +

Attribute

Support

Description

+

check_mode

+

Support: full

+

Can run in check_mode and return changed status prediction without modifying target

+
+

platform

+

Platforms: Linux, macOS, FreeBSD

+

The supported platforms

+
+
+
+

See Also

+
+

See also

+
+
ns2.col.foo

The official documentation on the ns2.col.foo module.

+
+
+
+
+
+

Examples

+
- name: Use role
+  include_role: ns2.col.foo
+  vars:
+    foo_param_1: foobar
+    foo_param_2: 23
+
+
+
+
+

Authors

+
    +
  • Felix Fontein (@felixfontein)

  • +
+ +
+
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/foo_shell.html b/tests/functional/baseline-default-html/collections/ns2/col/foo_shell.html new file mode 100644 index 00000000..6c3015b9 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/foo_shell.html @@ -0,0 +1,91 @@ + + + + + ns2.col.foo shell – Foo shell bar + + +
+

ns2.col.foo shell – Foo shell bar

+
+

Note

+

This shell plugin is part of the ns2.col collection (version 2.1.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ns2.col.

+

To use it in a playbook, specify: ns2.col.foo.

+
+

New in ns2.col 1.0.0

+ +
+

Synopsis

+
    +
  • This is for the foo shell.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + +

Parameter

Comments

+

bar

+

string

+

Foo bar.

+
+

remote_tmp

+

string

+

added in ansible-base 2.10

+

Temporary directory to use on targets when executing tasks.

+

Default: "~/.ansible/tmp"

+

Configuration:

+ +
+
+

Note

+

Configuration entries listed above for each entry type (Ansible variable, environment variable, and so on) have a low to high priority order. +For example, a variable that is lower in the list will override a variable that is higher up. +The entry types are also ordered by precedence from low to high priority order. +For example, an ansible.cfg entry (further up in the list) is overwritten by an Ansible variable (further down in the list).

+
+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/foo_strategy.html b/tests/functional/baseline-default-html/collections/ns2/col/foo_strategy.html new file mode 100644 index 00000000..9c5f6d8f --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/foo_strategy.html @@ -0,0 +1,49 @@ + + + + + ns2.col.foo strategy – Executes tasks in foo + + +
+

ns2.col.foo strategy – Executes tasks in foo

+
+

Note

+

This strategy plugin is part of the ns2.col collection (version 2.1.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ns2.col.

+

To use it in a playbook, specify: ns2.col.foo.

+
+

New in ns2.col 1.1.0

+ +
+

Synopsis

+
    +
  • This is something funny. Or at least I think so from its name.

  • +
+
+

Authors

+
    +
  • Ansible Core Team

  • +
+
+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/foo_test.html b/tests/functional/baseline-default-html/collections/ns2/col/foo_test.html new file mode 100644 index 00000000..7bc3c3a2 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/foo_test.html @@ -0,0 +1,119 @@ + + + + + ns2.col.foo test – Is something a foo bar + + +
+

ns2.col.foo test – Is something a foo bar

+
+

Note

+

This test plugin is part of the ns2.col collection (version 2.1.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ns2.col.

+

To use it in a playbook, specify: ns2.col.foo.

+
+ +
+

Synopsis

+
    +
  • Check whether the input dictionary is a foo.

  • +
+
+
+

Input

+

This describes the input of the test, the value before is ns2.col.foo or is not ns2.col.foo.

+ + + + + + + + + + + +

Parameter

Comments

+

Input

+

dictionary / required

+

Something to test.

+
+
+
+

Keyword parameters

+

This describes keyword parameters of the test. These are the values key1=value1, key2=value2 and so on in the following +examples: input is ns2.col.foo(key1=value1, key2=value2, ...) and input is not ns2.col.foo(key1=value1, key2=value2, ...)

+ + + + + + + + + + + +

Parameter

Comments

+

bar

+

string

+

Foo bar.

+
+
+
+

Examples

+
some_var: "{{ {'a': 1} is ns2.col.foo }}"
+
+
+
+
+

Return Value

+ + + + + + + + + + + +

Key

Description

+

Return value

+

boolean

+

Whether the input is a foo.

+

Returned: success

+
+
+

Authors

+
    +
  • Nobody

  • +
+
+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/foo_vars.html b/tests/functional/baseline-default-html/collections/ns2/col/foo_vars.html new file mode 100644 index 00000000..8ca1701c --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/foo_vars.html @@ -0,0 +1,99 @@ + + + + + ns2.col.foo vars – Load foo bar + + +
+

ns2.col.foo vars – Load foo bar

+
+

Note

+

This vars plugin is part of the ns2.col collection (version 2.1.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ns2.col. +You need further requirements to be able to use this vars plugin, +see Requirements for details.

+

To use it in a playbook, specify: ns2.col.foo.

+
+

New in ns2.col 0.9.0

+ +
+

Synopsis

+
    +
  • Load some foo.

  • +
  • This is so glorious.

  • +
+
+
+

Requirements

+

The below requirements are needed on the local controller node that executes this vars.

+
    +
  • Enabled in Ansible’s configuration.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + +

Parameter

Comments

+

_valid_extensions

+

list / elements=string

+

All extensions to check.

+

Default: [".foo", ".foobar"]

+

Configuration:

+ +
+

bar

+

string

+

Foo bar.

+
+
+

Note

+

Configuration entries listed above for each entry type (Ansible variable, environment variable, and so on) have a low to high priority order. +For example, a variable that is lower in the list will override a variable that is higher up. +The entry types are also ordered by precedence from low to high priority order. +For example, an ansible.cfg entry (further up in the list) is overwritten by an Ansible variable (further down in the list).

+
+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/index.html b/tests/functional/baseline-default-html/collections/ns2/col/index.html new file mode 100644 index 00000000..61c23c80 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/index.html @@ -0,0 +1,196 @@ + + + + + Ns2.Col + + +
+

Ns2.Col

+

Collection version 2.1.0

+ +
+

Description

+

This is a description. +With multiple paragraphs.

+

Author:

+ +

Supported ansible-core versions:

+
    +
  • 2.11.0 or newer

  • +
  • older than 2.99.0

  • +
  • version 2.12.2 is specifically not supported

  • +
+ +
+
+

Communication

+ +
+
+
+
+

Changelog

+
+
+
+
+

Guides

+
+ +
+
+
+

Plugin Index

+

These are the plugins in the ns2.col collection:

+
+

Modules

+ +
+
+
+
+

Become Plugins

+ +
+
+
+
+

Cache Plugins

+ +
+
+
+
+

Callback Plugins

+ +
+
+
+
+

Cliconf Plugins

+ +
+
+
+
+

Connection Plugins

+ +
+
+
+
+

Filter Plugins

+ +
+
+
+
+

Inventory Plugins

+ +
+
+
+
+

Lookup Plugins

+ +
+
+
+
+

Shell Plugins

+ +
+
+
+
+

Strategy Plugins

+ +
+
+
+
+

Test Plugins

+ +
+
+
+
+

Vars Plugins

+ +
+
+
+
+
+

Role Index

+

These are the roles in the ns2.col collection:

+
    +
  • foo role – Foo role DEPRECATED: REMOVED AFTER 2020-01-01

  • +
+
+
+
+

See also

+

List of collections with docs hosted here.

+
+
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/is_bar_test.html b/tests/functional/baseline-default-html/collections/ns2/col/is_bar_test.html new file mode 100644 index 00000000..f0ddd5bd --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/is_bar_test.html @@ -0,0 +1,22 @@ + + + + + ns2.col.is_bar test + + +
+

ns2.col.is_bar test

+
+

Note

+

This redirect is part of the ns2.col collection (version 2.1.0).

+

To use it in a playbook, specify: ns2.col.is_bar.

+
+ +
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/col/sub.foo3_module.html b/tests/functional/baseline-default-html/collections/ns2/col/sub.foo3_module.html new file mode 100644 index 00000000..a749b249 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/col/sub.foo3_module.html @@ -0,0 +1,150 @@ + + + + + ns2.col.sub.foo3 module – A sub-foo + + +
+

ns2.col.sub.foo3 module – A sub-foo

+
+

Note

+

This module is part of the ns2.col collection (version 2.1.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ns2.col.

+

To use it in a playbook, specify: ns2.col.sub.foo3.

+
+ +
+

Synopsis

+ +
+
+

Parameters

+ + + + + + + + + + + +

Parameter

Comments

+

bar

+

string

+

Some bar.

+

See foo_param_1 for a random role parameter reference. And foo_param_2=42 for one with a value.

+
+
+
+

Attributes

+ + + + + + + + + + + + + + + + + + + + + + + + + +

Attribute

Support

Description

+

action_group

+

Action groups: ns2.col.bar_group, ns2.col.foo_group

+

Use group/ns2.col.foo_group or group/ns2.col.bar_group in module_defaults to set defaults for this module.

+
+

check_mode

+

Support: full

+

Can run in check_mode and return changed status prediction without modifying target

+
+

diff_mode

+

Support: N/A

+

Will return details on what has changed (or possibly needs changing in check_mode), when in diff mode

+
+

platform

+

Platform: posix

+

Target OS/families that can be operated against

+
+
+
+

Examples

+
- name: Do some foobar
+  ns2.col.sub.foo3:
+    bar: baz
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + +

Key

Description

+

bar

+

string

+

Some bar.

+

Referencing myself as bar.

+

Do not confuse with bar.

+

Returned: success

+

Sample: "baz"

+
+
+

Authors

+
    +
  • Another one (@ansible-community)

  • +
+
+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/flatcol/foo2_module.html b/tests/functional/baseline-default-html/collections/ns2/flatcol/foo2_module.html new file mode 100644 index 00000000..9d37ec9b --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/flatcol/foo2_module.html @@ -0,0 +1,101 @@ + + + + + ns2.flatcol.foo2 module – Another foo + + +
+

ns2.flatcol.foo2 module – Another foo

+
+

Note

+

This module is part of the ns2.flatcol collection.

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ns2.flatcol.

+

To use it in a playbook, specify: ns2.flatcol.foo2.

+
+ +
+

Synopsis

+ +
+
+

Parameters

+ + + + + + + + + + + +

Parameter

Comments

+

bar

+

string

+

Some bar.

+

See foo_param_1 for a random role parameter reference. And foo_param_2=42 for one with a value.

+
+
+
+

Examples

+
- name: Do some foo
+  ns2.flatcol.foo2:
+    bar: foo
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + +

Key

Description

+

bar

+

string

+

Some bar.

+

Referencing myself as bar.

+

Do not confuse with bar.

+

Returned: success

+

Sample: "baz"

+
+
+

Authors

+
    +
  • Another one (@ansible-community)

  • +
+
+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/flatcol/foo_module.html b/tests/functional/baseline-default-html/collections/ns2/flatcol/foo_module.html new file mode 100644 index 00000000..1a776ae6 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/flatcol/foo_module.html @@ -0,0 +1,144 @@ + + + + + ns2.flatcol.foo module – Do some foo bar + + +
+

ns2.flatcol.foo module – Do some foo bar

+
+

Note

+

This module is part of the ns2.flatcol collection.

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ns2.flatcol.

+

To use it in a playbook, specify: ns2.flatcol.foo.

+
+

New in ns2.flatcol 2.0.0

+ +
+

Synopsis

+
    +
  • Does some foo on the remote host.

  • +
  • Whether foo is magic or not has not yet been determined.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+
+

bar

+

aliases: baz

+

list / elements=integer

+

A bar.

+

Independent from foo.

+

Do not confuse with bar.

+
+

foo

+

string / required

+

The foo source.

+
+
+

subfoo

+

aliases: subbaz

+

dictionary

+

added in ns2.flatcol 2.0.0

+

Some recursive foo.

+
+
+
+
+

foo

+

aliases: bam

+

string / required

+

A sub foo.

+

Whatever.

+

Also required when subfoo is specified when foo=bar or baz.

+

Note that subfoo.foo is the same as subbaz.foo, subbaz.bam, and subfoo.bam.

+

FOOBAR1, FOOBAR2, FOOBAR3, FOOBAR4.

+
+
+
+

Examples

+
- name: Do some foo
+  ns2.flatcol.foo:
+    foo: '{{ foo }}'
+    bar:
+      - 1
+      - 2
+      - 3
+    subfoo:
+      foo: hoo!
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + +

Key

Description

+

bar

+

string

+

Some bar.

+

Referencing myself as bar.

+

Do not confuse with bar.

+

Returned: success

+

Sample: "baz"

+
+
+

Authors

+
    +
  • Ansible Core Team

  • +
  • Someone else (@ansible)

  • +
+
+ +
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/flatcol/index.html b/tests/functional/baseline-default-html/collections/ns2/flatcol/index.html new file mode 100644 index 00000000..90030448 --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/flatcol/index.html @@ -0,0 +1,60 @@ + + + + + Ns2.Flatcol + + +
+

Ns2.Flatcol

+ +
+

Description

+

Author:

+ + +
+
+

Communication

+ +
+
+
+
+

Plugin Index

+

These are the plugins in the ns2.flatcol collection:

+
+

Modules

+ +
+
+
+

See also

+

List of collections with docs hosted here.

+
+
+
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/collections/ns2/index.html b/tests/functional/baseline-default-html/collections/ns2/index.html new file mode 100644 index 00000000..80334dda --- /dev/null +++ b/tests/functional/baseline-default-html/collections/ns2/index.html @@ -0,0 +1,20 @@ + + + + + Collections in the Ns2 Namespace + + +
+

Collections in the Ns2 Namespace

+

These are the collections documented here in the ns2 namespace.

+ +
+
+
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default-html/index.html b/tests/functional/baseline-default-html/index.html new file mode 100644 index 00000000..42e224aa --- /dev/null +++ b/tests/functional/baseline-default-html/index.html @@ -0,0 +1,103 @@ + + + + + Some Ansible Docsite + + +
+

Some Ansible Docsite

+ +
+ + + \ No newline at end of file diff --git a/tests/functional/baseline-default/collections/ns2/col/docsite/filter_guide.rst b/tests/functional/baseline-default/collections/ns2/col/docsite/filter_guide.rst index 27c47fc6..841b7e7c 100644 --- a/tests/functional/baseline-default/collections/ns2/col/docsite/filter_guide.rst +++ b/tests/functional/baseline-default/collections/ns2/col/docsite/filter_guide.rst @@ -14,8 +14,8 @@ Filter Guide The :anscollection:`ns2.col collection ` offers :anscollection:`two filters `. -- :ansplugin:`ns2.col.foo#filter`: foo! (Note its :ansopt:`ns2.col.foo#filter:foo[]` option, and try :ansopt:`ns2.col.foo#filter:bar=baz`.) -- :ansplugin:`ns2.col.bar#filter`: bar! (Its return value is :ansretval:`ns2.col.bar#filter:_value`.) +- :ansplugin:`ns2.col.foo#filter`: foo! (Note its :ansopt:`ns2.col.foo#filter:foo[]` :ansoptref:`option `, and try :ansopt:`ns2.col.foo#filter:bar=baz`.) +- :ansplugin:`ns2.col.bar#filter`: bar! (Its :ansretvalref:`return value ` is :ansretval:`ns2.col.bar#filter:_value`.) .. envvar:: FOOBAR1 @@ -56,3 +56,37 @@ Errors :ansopt:`ns2.col.foo#role:does_not_exist:neither` :ansopt:`ns2.col.foo#role:does_not_exist` + +:ansretval:`ns2.col.foo#filter:does_not_exist` + +:ansretval:`ns2.col.foo#role:does_not_exist:neither` + +:ansretval:`ns2.col.foo#role:does_not_exist` + +:ansoptref:`no explicit title` + +:ansoptref:`title ` + +:ansoptref:`plugin does not exist ` + +:ansoptref:`entrypoint for non-role ` + +:ansoptref:`no entrypoint for role ` + +:ansoptref:`invalid entrypoint for role ` + +:ansoptref:`option does not exist ` + +:ansretvalref:`no explicit title` + +:ansretvalref:`title ` + +:ansretvalref:`plugin does not exist ` + +:ansretvalref:`entrypoint for non-role ` + +:ansretvalref:`no entrypoint for role ` + +:ansretvalref:`invalid entrypoint for role ` + +:ansretvalref:`return value does not exist ` diff --git a/tests/functional/baseline-no-breadcrumbs/collections/ns2/col/docsite/filter_guide.rst b/tests/functional/baseline-no-breadcrumbs/collections/ns2/col/docsite/filter_guide.rst index 27c47fc6..841b7e7c 100644 --- a/tests/functional/baseline-no-breadcrumbs/collections/ns2/col/docsite/filter_guide.rst +++ b/tests/functional/baseline-no-breadcrumbs/collections/ns2/col/docsite/filter_guide.rst @@ -14,8 +14,8 @@ Filter Guide The :anscollection:`ns2.col collection ` offers :anscollection:`two filters `. -- :ansplugin:`ns2.col.foo#filter`: foo! (Note its :ansopt:`ns2.col.foo#filter:foo[]` option, and try :ansopt:`ns2.col.foo#filter:bar=baz`.) -- :ansplugin:`ns2.col.bar#filter`: bar! (Its return value is :ansretval:`ns2.col.bar#filter:_value`.) +- :ansplugin:`ns2.col.foo#filter`: foo! (Note its :ansopt:`ns2.col.foo#filter:foo[]` :ansoptref:`option `, and try :ansopt:`ns2.col.foo#filter:bar=baz`.) +- :ansplugin:`ns2.col.bar#filter`: bar! (Its :ansretvalref:`return value ` is :ansretval:`ns2.col.bar#filter:_value`.) .. envvar:: FOOBAR1 @@ -56,3 +56,37 @@ Errors :ansopt:`ns2.col.foo#role:does_not_exist:neither` :ansopt:`ns2.col.foo#role:does_not_exist` + +:ansretval:`ns2.col.foo#filter:does_not_exist` + +:ansretval:`ns2.col.foo#role:does_not_exist:neither` + +:ansretval:`ns2.col.foo#role:does_not_exist` + +:ansoptref:`no explicit title` + +:ansoptref:`title ` + +:ansoptref:`plugin does not exist ` + +:ansoptref:`entrypoint for non-role ` + +:ansoptref:`no entrypoint for role ` + +:ansoptref:`invalid entrypoint for role ` + +:ansoptref:`option does not exist ` + +:ansretvalref:`no explicit title` + +:ansretvalref:`title ` + +:ansretvalref:`plugin does not exist ` + +:ansretvalref:`entrypoint for non-role ` + +:ansretvalref:`no entrypoint for role ` + +:ansretvalref:`invalid entrypoint for role ` + +:ansretvalref:`return value does not exist ` diff --git a/tests/functional/baseline-no-indexes/collections/ns2/col/docsite/filter_guide.rst b/tests/functional/baseline-no-indexes/collections/ns2/col/docsite/filter_guide.rst index 27c47fc6..841b7e7c 100644 --- a/tests/functional/baseline-no-indexes/collections/ns2/col/docsite/filter_guide.rst +++ b/tests/functional/baseline-no-indexes/collections/ns2/col/docsite/filter_guide.rst @@ -14,8 +14,8 @@ Filter Guide The :anscollection:`ns2.col collection ` offers :anscollection:`two filters `. -- :ansplugin:`ns2.col.foo#filter`: foo! (Note its :ansopt:`ns2.col.foo#filter:foo[]` option, and try :ansopt:`ns2.col.foo#filter:bar=baz`.) -- :ansplugin:`ns2.col.bar#filter`: bar! (Its return value is :ansretval:`ns2.col.bar#filter:_value`.) +- :ansplugin:`ns2.col.foo#filter`: foo! (Note its :ansopt:`ns2.col.foo#filter:foo[]` :ansoptref:`option `, and try :ansopt:`ns2.col.foo#filter:bar=baz`.) +- :ansplugin:`ns2.col.bar#filter`: bar! (Its :ansretvalref:`return value ` is :ansretval:`ns2.col.bar#filter:_value`.) .. envvar:: FOOBAR1 @@ -56,3 +56,37 @@ Errors :ansopt:`ns2.col.foo#role:does_not_exist:neither` :ansopt:`ns2.col.foo#role:does_not_exist` + +:ansretval:`ns2.col.foo#filter:does_not_exist` + +:ansretval:`ns2.col.foo#role:does_not_exist:neither` + +:ansretval:`ns2.col.foo#role:does_not_exist` + +:ansoptref:`no explicit title` + +:ansoptref:`title ` + +:ansoptref:`plugin does not exist ` + +:ansoptref:`entrypoint for non-role ` + +:ansoptref:`no entrypoint for role ` + +:ansoptref:`invalid entrypoint for role ` + +:ansoptref:`option does not exist ` + +:ansretvalref:`no explicit title` + +:ansretvalref:`title ` + +:ansretvalref:`plugin does not exist ` + +:ansretvalref:`entrypoint for non-role ` + +:ansretvalref:`no entrypoint for role ` + +:ansretvalref:`invalid entrypoint for role ` + +:ansretvalref:`return value does not exist ` diff --git a/tests/functional/baseline-simplified-rst-squash-hierarchy/docsite/filter_guide.rst b/tests/functional/baseline-simplified-rst-squash-hierarchy/docsite/filter_guide.rst index 27c47fc6..841b7e7c 100644 --- a/tests/functional/baseline-simplified-rst-squash-hierarchy/docsite/filter_guide.rst +++ b/tests/functional/baseline-simplified-rst-squash-hierarchy/docsite/filter_guide.rst @@ -14,8 +14,8 @@ Filter Guide The :anscollection:`ns2.col collection ` offers :anscollection:`two filters `. -- :ansplugin:`ns2.col.foo#filter`: foo! (Note its :ansopt:`ns2.col.foo#filter:foo[]` option, and try :ansopt:`ns2.col.foo#filter:bar=baz`.) -- :ansplugin:`ns2.col.bar#filter`: bar! (Its return value is :ansretval:`ns2.col.bar#filter:_value`.) +- :ansplugin:`ns2.col.foo#filter`: foo! (Note its :ansopt:`ns2.col.foo#filter:foo[]` :ansoptref:`option `, and try :ansopt:`ns2.col.foo#filter:bar=baz`.) +- :ansplugin:`ns2.col.bar#filter`: bar! (Its :ansretvalref:`return value ` is :ansretval:`ns2.col.bar#filter:_value`.) .. envvar:: FOOBAR1 @@ -56,3 +56,37 @@ Errors :ansopt:`ns2.col.foo#role:does_not_exist:neither` :ansopt:`ns2.col.foo#role:does_not_exist` + +:ansretval:`ns2.col.foo#filter:does_not_exist` + +:ansretval:`ns2.col.foo#role:does_not_exist:neither` + +:ansretval:`ns2.col.foo#role:does_not_exist` + +:ansoptref:`no explicit title` + +:ansoptref:`title ` + +:ansoptref:`plugin does not exist ` + +:ansoptref:`entrypoint for non-role ` + +:ansoptref:`no entrypoint for role ` + +:ansoptref:`invalid entrypoint for role ` + +:ansoptref:`option does not exist ` + +:ansretvalref:`no explicit title` + +:ansretvalref:`title ` + +:ansretvalref:`plugin does not exist ` + +:ansretvalref:`entrypoint for non-role ` + +:ansretvalref:`no entrypoint for role ` + +:ansretvalref:`invalid entrypoint for role ` + +:ansretvalref:`return value does not exist ` diff --git a/tests/functional/baseline-simplified-rst/collections/ns2/col/docsite/filter_guide.rst b/tests/functional/baseline-simplified-rst/collections/ns2/col/docsite/filter_guide.rst index 27c47fc6..841b7e7c 100644 --- a/tests/functional/baseline-simplified-rst/collections/ns2/col/docsite/filter_guide.rst +++ b/tests/functional/baseline-simplified-rst/collections/ns2/col/docsite/filter_guide.rst @@ -14,8 +14,8 @@ Filter Guide The :anscollection:`ns2.col collection ` offers :anscollection:`two filters `. -- :ansplugin:`ns2.col.foo#filter`: foo! (Note its :ansopt:`ns2.col.foo#filter:foo[]` option, and try :ansopt:`ns2.col.foo#filter:bar=baz`.) -- :ansplugin:`ns2.col.bar#filter`: bar! (Its return value is :ansretval:`ns2.col.bar#filter:_value`.) +- :ansplugin:`ns2.col.foo#filter`: foo! (Note its :ansopt:`ns2.col.foo#filter:foo[]` :ansoptref:`option `, and try :ansopt:`ns2.col.foo#filter:bar=baz`.) +- :ansplugin:`ns2.col.bar#filter`: bar! (Its :ansretvalref:`return value ` is :ansretval:`ns2.col.bar#filter:_value`.) .. envvar:: FOOBAR1 @@ -56,3 +56,37 @@ Errors :ansopt:`ns2.col.foo#role:does_not_exist:neither` :ansopt:`ns2.col.foo#role:does_not_exist` + +:ansretval:`ns2.col.foo#filter:does_not_exist` + +:ansretval:`ns2.col.foo#role:does_not_exist:neither` + +:ansretval:`ns2.col.foo#role:does_not_exist` + +:ansoptref:`no explicit title` + +:ansoptref:`title ` + +:ansoptref:`plugin does not exist ` + +:ansoptref:`entrypoint for non-role ` + +:ansoptref:`no entrypoint for role ` + +:ansoptref:`invalid entrypoint for role ` + +:ansoptref:`option does not exist ` + +:ansretvalref:`no explicit title` + +:ansretvalref:`title ` + +:ansretvalref:`plugin does not exist ` + +:ansretvalref:`entrypoint for non-role ` + +:ansretvalref:`no entrypoint for role ` + +:ansretvalref:`invalid entrypoint for role ` + +:ansretvalref:`return value does not exist ` diff --git a/tests/functional/baseline-squash-hierarchy/docsite/filter_guide.rst b/tests/functional/baseline-squash-hierarchy/docsite/filter_guide.rst index 27c47fc6..841b7e7c 100644 --- a/tests/functional/baseline-squash-hierarchy/docsite/filter_guide.rst +++ b/tests/functional/baseline-squash-hierarchy/docsite/filter_guide.rst @@ -14,8 +14,8 @@ Filter Guide The :anscollection:`ns2.col collection ` offers :anscollection:`two filters `. -- :ansplugin:`ns2.col.foo#filter`: foo! (Note its :ansopt:`ns2.col.foo#filter:foo[]` option, and try :ansopt:`ns2.col.foo#filter:bar=baz`.) -- :ansplugin:`ns2.col.bar#filter`: bar! (Its return value is :ansretval:`ns2.col.bar#filter:_value`.) +- :ansplugin:`ns2.col.foo#filter`: foo! (Note its :ansopt:`ns2.col.foo#filter:foo[]` :ansoptref:`option `, and try :ansopt:`ns2.col.foo#filter:bar=baz`.) +- :ansplugin:`ns2.col.bar#filter`: bar! (Its :ansretvalref:`return value ` is :ansretval:`ns2.col.bar#filter:_value`.) .. envvar:: FOOBAR1 @@ -56,3 +56,37 @@ Errors :ansopt:`ns2.col.foo#role:does_not_exist:neither` :ansopt:`ns2.col.foo#role:does_not_exist` + +:ansretval:`ns2.col.foo#filter:does_not_exist` + +:ansretval:`ns2.col.foo#role:does_not_exist:neither` + +:ansretval:`ns2.col.foo#role:does_not_exist` + +:ansoptref:`no explicit title` + +:ansoptref:`title ` + +:ansoptref:`plugin does not exist ` + +:ansoptref:`entrypoint for non-role ` + +:ansoptref:`no entrypoint for role ` + +:ansoptref:`invalid entrypoint for role ` + +:ansoptref:`option does not exist ` + +:ansretvalref:`no explicit title` + +:ansretvalref:`title ` + +:ansretvalref:`plugin does not exist ` + +:ansretvalref:`entrypoint for non-role ` + +:ansretvalref:`no entrypoint for role ` + +:ansretvalref:`invalid entrypoint for role ` + +:ansretvalref:`return value does not exist ` diff --git a/tests/functional/baseline-use-html-blobs/collections/ns2/col/docsite/filter_guide.rst b/tests/functional/baseline-use-html-blobs/collections/ns2/col/docsite/filter_guide.rst index 27c47fc6..841b7e7c 100644 --- a/tests/functional/baseline-use-html-blobs/collections/ns2/col/docsite/filter_guide.rst +++ b/tests/functional/baseline-use-html-blobs/collections/ns2/col/docsite/filter_guide.rst @@ -14,8 +14,8 @@ Filter Guide The :anscollection:`ns2.col collection ` offers :anscollection:`two filters `. -- :ansplugin:`ns2.col.foo#filter`: foo! (Note its :ansopt:`ns2.col.foo#filter:foo[]` option, and try :ansopt:`ns2.col.foo#filter:bar=baz`.) -- :ansplugin:`ns2.col.bar#filter`: bar! (Its return value is :ansretval:`ns2.col.bar#filter:_value`.) +- :ansplugin:`ns2.col.foo#filter`: foo! (Note its :ansopt:`ns2.col.foo#filter:foo[]` :ansoptref:`option `, and try :ansopt:`ns2.col.foo#filter:bar=baz`.) +- :ansplugin:`ns2.col.bar#filter`: bar! (Its :ansretvalref:`return value ` is :ansretval:`ns2.col.bar#filter:_value`.) .. envvar:: FOOBAR1 @@ -56,3 +56,37 @@ Errors :ansopt:`ns2.col.foo#role:does_not_exist:neither` :ansopt:`ns2.col.foo#role:does_not_exist` + +:ansretval:`ns2.col.foo#filter:does_not_exist` + +:ansretval:`ns2.col.foo#role:does_not_exist:neither` + +:ansretval:`ns2.col.foo#role:does_not_exist` + +:ansoptref:`no explicit title` + +:ansoptref:`title ` + +:ansoptref:`plugin does not exist ` + +:ansoptref:`entrypoint for non-role ` + +:ansoptref:`no entrypoint for role ` + +:ansoptref:`invalid entrypoint for role ` + +:ansoptref:`option does not exist ` + +:ansretvalref:`no explicit title` + +:ansretvalref:`title ` + +:ansretvalref:`plugin does not exist ` + +:ansretvalref:`entrypoint for non-role ` + +:ansretvalref:`no entrypoint for role ` + +:ansretvalref:`invalid entrypoint for role ` + +:ansretvalref:`return value does not exist ` diff --git a/tests/functional/build-docs-baseline.sh b/tests/functional/build-docs-baseline.sh index c1e4562a..de2d62d7 100755 --- a/tests/functional/build-docs-baseline.sh +++ b/tests/functional/build-docs-baseline.sh @@ -19,7 +19,7 @@ make_docsite_baseline() { set -e ) - rstcheck --report-level warning --ignore-directives ansible-links,ansible-option-type-line --ignore-roles ansopt,ansval,ansretval,ansplugin,anscollection,ansenvvar,ansenvvarref,ansdeprecatedmarker,ansible-attribute-support-label,ansible-attribute-support-property,ansible-attribute-support-full,ansible-attribute-support-partial,ansible-attribute-support-none,ansible-attribute-support-na,ansible-option-aliases,ansible-option-choices,ansible-option-choices-default-mark,ansible-option-choices-entry,ansible-option-choices-entry-default,ansible-option-configuration,ansible-option-default,ansible-option-default-bold,ansible-option-elements,ansible-option-required,ansible-option-returned-bold,ansible-option-sample-bold,ansible-option-type,ansible-option-versionadded,ansible-rv-sample-value -r "${DEST}" 2>&1 | ( + rstcheck --report-level warning --ignore-directives ansible-links,ansible-option-type-line --ignore-roles ansopt,ansoptref,ansval,ansretval,ansretvalref,ansplugin,anscollection,ansenvvar,ansenvvarref,ansdeprecatedmarker,ansible-attribute-support-label,ansible-attribute-support-property,ansible-attribute-support-full,ansible-attribute-support-partial,ansible-attribute-support-none,ansible-attribute-support-na,ansible-option-aliases,ansible-option-choices,ansible-option-choices-default-mark,ansible-option-choices-entry,ansible-option-choices-entry-default,ansible-option-configuration,ansible-option-default,ansible-option-default-bold,ansible-option-elements,ansible-option-required,ansible-option-returned-bold,ansible-option-sample-bold,ansible-option-type,ansible-option-versionadded,ansible-rv-sample-value -r "${DEST}" 2>&1 | ( set +e grep -v "CRITICAL:rstcheck_core.checker:An \`AttributeError\` error occured." set -e diff --git a/tests/functional/collections/ansible_collections/ns2/col/docs/docsite/rst/filter_guide.rst b/tests/functional/collections/ansible_collections/ns2/col/docs/docsite/rst/filter_guide.rst index 27c47fc6..841b7e7c 100644 --- a/tests/functional/collections/ansible_collections/ns2/col/docs/docsite/rst/filter_guide.rst +++ b/tests/functional/collections/ansible_collections/ns2/col/docs/docsite/rst/filter_guide.rst @@ -14,8 +14,8 @@ Filter Guide The :anscollection:`ns2.col collection ` offers :anscollection:`two filters `. -- :ansplugin:`ns2.col.foo#filter`: foo! (Note its :ansopt:`ns2.col.foo#filter:foo[]` option, and try :ansopt:`ns2.col.foo#filter:bar=baz`.) -- :ansplugin:`ns2.col.bar#filter`: bar! (Its return value is :ansretval:`ns2.col.bar#filter:_value`.) +- :ansplugin:`ns2.col.foo#filter`: foo! (Note its :ansopt:`ns2.col.foo#filter:foo[]` :ansoptref:`option `, and try :ansopt:`ns2.col.foo#filter:bar=baz`.) +- :ansplugin:`ns2.col.bar#filter`: bar! (Its :ansretvalref:`return value ` is :ansretval:`ns2.col.bar#filter:_value`.) .. envvar:: FOOBAR1 @@ -56,3 +56,37 @@ Errors :ansopt:`ns2.col.foo#role:does_not_exist:neither` :ansopt:`ns2.col.foo#role:does_not_exist` + +:ansretval:`ns2.col.foo#filter:does_not_exist` + +:ansretval:`ns2.col.foo#role:does_not_exist:neither` + +:ansretval:`ns2.col.foo#role:does_not_exist` + +:ansoptref:`no explicit title` + +:ansoptref:`title ` + +:ansoptref:`plugin does not exist ` + +:ansoptref:`entrypoint for non-role ` + +:ansoptref:`no entrypoint for role ` + +:ansoptref:`invalid entrypoint for role ` + +:ansoptref:`option does not exist ` + +:ansretvalref:`no explicit title` + +:ansretvalref:`title ` + +:ansretvalref:`plugin does not exist ` + +:ansretvalref:`entrypoint for non-role ` + +:ansretvalref:`no entrypoint for role ` + +:ansretvalref:`invalid entrypoint for role ` + +:ansretvalref:`return value does not exist ` diff --git a/tests/functional/sphinx-themes/empty/domainindex.html b/tests/functional/sphinx-themes/empty/domainindex.html new file mode 100644 index 00000000..240c8146 --- /dev/null +++ b/tests/functional/sphinx-themes/empty/domainindex.html @@ -0,0 +1,7 @@ +{# +Copyright (c) Ansible Project +GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) +SPDX-License-Identifier: GPL-3.0-or-later + +This is intentionally empty. +#} diff --git a/tests/functional/sphinx-themes/empty/genindex.html b/tests/functional/sphinx-themes/empty/genindex.html new file mode 100644 index 00000000..240c8146 --- /dev/null +++ b/tests/functional/sphinx-themes/empty/genindex.html @@ -0,0 +1,7 @@ +{# +Copyright (c) Ansible Project +GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) +SPDX-License-Identifier: GPL-3.0-or-later + +This is intentionally empty. +#} diff --git a/tests/functional/sphinx-themes/empty/page.html b/tests/functional/sphinx-themes/empty/page.html new file mode 100644 index 00000000..87ee40f6 --- /dev/null +++ b/tests/functional/sphinx-themes/empty/page.html @@ -0,0 +1,14 @@ +{# +Copyright (c) Ansible Project +GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) +SPDX-License-Identifier: GPL-3.0-or-later +#} + + + + {{ title|striptags|e }} + + + {{ body }} + + diff --git a/tests/functional/sphinx-themes/empty/search.html b/tests/functional/sphinx-themes/empty/search.html new file mode 100644 index 00000000..240c8146 --- /dev/null +++ b/tests/functional/sphinx-themes/empty/search.html @@ -0,0 +1,7 @@ +{# +Copyright (c) Ansible Project +GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) +SPDX-License-Identifier: GPL-3.0-or-later + +This is intentionally empty. +#} diff --git a/tests/functional/sphinx-themes/empty/theme.toml b/tests/functional/sphinx-themes/empty/theme.toml new file mode 100644 index 00000000..86f138c1 --- /dev/null +++ b/tests/functional/sphinx-themes/empty/theme.toml @@ -0,0 +1,9 @@ +# Copyright (c) Ansible Project +# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) +# SPDX-License-Identifier: GPL-3.0-or-later + +[theme] +inherit = "none" +stylesheets = [] +sidebars = [] +pygments_style = { default = "none" } diff --git a/tests/functional/test_docs_baseline.py b/tests/functional/test_docs_baseline.py index a0733f23..3ba5d28d 100644 --- a/tests/functional/test_docs_baseline.py +++ b/tests/functional/test_docs_baseline.py @@ -4,14 +4,13 @@ from __future__ import annotations -import difflib import io import os from contextlib import redirect_stdout import pytest from ansible_doc_caching import ansible_doc_cache -from utils import replace_antsibull_version +from utils import compare_directories, replace_antsibull_version, scan_directories from antsibull_docs.cli.antsibull_docs import run @@ -117,69 +116,8 @@ ] -def _scan_directories(root: str): - result = {} - for path, dirs, files in os.walk(root): - result[os.path.relpath(path, root)] = (path, files) - return result - - -def _compare_files(source, dest, path): - with open(source) as f: - src = f.read() - with open(dest) as f: - dst = f.read() - if src == dst: - return 0 - for line in difflib.unified_diff(src.splitlines(), dst.splitlines(), path, path): - if line[0] == "@": - print(line) - elif line[0] == "-": - print(f"\033[41m\033[9m{line}\033[29m\033[49m") - elif line[0] == "+": - print(f"\033[42m{line}\033[49m") - else: - print(line) - return 1 - - -def _compare_directories(source, dest): - differences = 0 - for path in source: - if path not in dest: - print(f"Directory {path} exists only in the baseline!") - differences += 1 - continue - source_files = set(source[path][1]) - dest_files = set(dest[path][1]) - for file in source_files: - if file not in dest_files: - differences += 1 - print(f"File {os.path.join(path, file)} exists only in the baseline!") - continue - source_path = os.path.join(source[path][0], file) - dest_path = os.path.join(dest[path][0], file) - differences += _compare_files( - source_path, dest_path, os.path.join(path, file) - ) - for file in dest_files: - if file not in source_files: - differences += 1 - print( - f"File {os.path.join(path, file)} exists only in the generated result!" - ) - for path in dest: - if path not in source: - print(f"Directory {path} exists only in the generated result!") - differences += 1 - continue - if differences: - print(f"Found {differences} differences.") - assert differences == 0 - - @pytest.mark.parametrize("arguments, directory", TEST_CASES) -def test_baseline(arguments, directory, tmp_path): +def test_baseline(arguments: list[str], directory: str, tmp_path) -> None: tests_root = os.path.join("tests", "functional") config_file = tmp_path / "antsibull.cfg" @@ -209,6 +147,6 @@ def test_baseline(arguments, directory, tmp_path): assert rc == 0 # Compare baseline to expected result - source = _scan_directories(os.path.join(tests_root, directory)) - dest = _scan_directories(str(output_dir)) - _compare_directories(source, dest) + source = scan_directories(os.path.join(tests_root, directory)) + dest = scan_directories(str(output_dir)) + compare_directories(source, dest) diff --git a/tests/functional/test_docs_html_baseline.py b/tests/functional/test_docs_html_baseline.py new file mode 100644 index 00000000..244e7335 --- /dev/null +++ b/tests/functional/test_docs_html_baseline.py @@ -0,0 +1,211 @@ +# Copyright (c) Ansible Project +# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) +# SPDX-License-Identifier: GPL-3.0-or-later + +from __future__ import annotations + +import os +import shutil + +import pytest +from ansible_doc_caching import ansible_doc_cache +from sphinx.cmd.build import main as sphinx_main +from utils import compare_directories, scan_directories + +# To regenerate the baselines, run: +# ANTSIBULL_DOCS_UPDATE_HTML_BASELINE=true nox -Re test -- tests/functional/test_docs_html_baseline.py + + +UPDATE_BASELINES = os.getenv("ANTSIBULL_DOCS_UPDATE_HTML_BASELINE") == "true" + +TEST_CASES: list[tuple[str, str, list[str]]] = [ + ( + "baseline-default", + "baseline-default-html", + [ + "ansible_collections.ansible.builtin.bazbam_lookup", + "ansible_collections.ansible.builtin.bazbam_module__return-stat/exists", + "ansible_collections.ansible.builtin.file_module__parameter-foobarbaz", + "ansible_collections.ansible.builtin.file_module__parameter-state", + "ansible_collections.ansible.builtin.foobarbaz_module", + "ansible_collections.ansible.builtin.foobarbaz_strategy", + "ansible_collections.ansible.builtin.foobar_module", + "ansible_collections.ansible.builtin.foobar_module__parameter-state", + "ansible_collections.ansible.builtin.iptables_module__parameter-tcp_flags/flags", + "ansible_collections.ansible.builtin.linear_strategy", + "ansible_collections.ansible.builtin.pipe_lookup", + "ansible_collections.ansible.builtin.service_module", + "ansible_collections.ansible.builtin.ssh_connection", + "ansible_collections.ansible.builtin.stat_module__return-baz/bam", + "ansible_collections.ansible.builtin.stat_module__return-stat", + "ansible_collections.ansible.builtin.stat_module__return-stat/exists", + "ansible_collections.ext.col.bar_lookup", + "ansible_collections.ext.col.foo_module", + "ansible_collections.ext.col.foo_module__parameter-foo/bar", + "ansible_collections.ext.col.foo_module__parameter-foo/notthere", + "ansible_collections.ext.col.foo_module__parameter-notthere/bar", + "ansible_collections.ext.col.foo_module__return-baz", + "ansible_collections.ext.col.foo_module__return-notthere", + "ansible_collections.ext.col.notthere_lookup", + "ansible_collections.ext.col.notthere_module", + "ansible_collections.ext.col.notthere_module__parameter-foo/bar", + "ansible_collections.ext.col.notthere_module__return-baz", + "ansible_collections.ns2.col.bar_filter__parameter-jooo", + "ansible_collections.ns2.col.bar_test__return-booo", + "ansible_collections.ns2.col.boo_filter__parameter-boo", + "ansible_collections.ns2.col.boo_filter__return-boo", + "ansible_collections.ns2.col.does_not_exist_filter", + "ansible_collections.ns2.col.foo_asdf", + "ansible_collections.ns2.col.foobarbaz_module", + "ansible_collections.ns2.col.foo_filter__parameter-boo", + "ansible_collections.ns2.col.foo_filter__return-boo", + "ansible_collections.ns2.col.foo_filter__return-does_not_exist", + "ansible_collections.ns2.col.foo_module__parameter-strategy", + "ansible_collections.ns2.col.foo_redirect_module__parameter-bar", + "ansible_collections.ns2.col.foo_redirect_module__parameter-baz", + "ansible_collections.ns2.col.foo_role__entrypoint-boo", + "ansible_collections.ns2.col.foo_role__parameter-boo__boo", + "ansible_collections.ns2.col.foo_role__parameter-does_not_exist__neither", + "ansible_collections.ns2.col.foo_role__parameter-main__does_not_exist", + "ansible_collections.ns2.col.foo_role__return-boo__boo", + "ansible_collections.ns2.col.foo_role__return-does_not_exist__neither", + "ansible_collections.ns2.col.joo_filter__parameter-foo", + "ansible_collections.ns2.col.joo_lookup", + "ansible_collections.ns2.col.joo_module", + "ansible_collections.ns2.col.joo_test__return-_value", + "ansible_collections.ns2.flatcol.foobarbaz_module", + "ansible_collections.ns2.flatcol.foobar_module__parameter-subbaz/bam", + "ansible_collections.ns2.flatcol.foo_module__parameter-foofoofoobar", + "ansible_collections.ns2.flatcol.foo_role__parameter-main__foo_param_1", + "ansible_collections.ns2.flatcol.foo_role__parameter-main__foo_param_2", + "ansible_collections.ns2.flatcol.sub.bazbam_module", + "ansible_collections.ns2.flatcol.sub.bazbam_module__return-bar", + "ansible_collections.ns2.flatcol.sub.foo2_module", + "ansible_collections.ns2.flatcol.sub.foo2_module__return-bar", + "ansible_collections.ns2.flatcol.sub.foo2_module__return-bazbarbam", + "ansible_collections.ns.col2.foo2_module__parameter-", + "ansible_collections.ns.col2.foo2_module__parameter-barbazbam/foo", + "ansible_collections.ns.col2.foo2_module__parameter-broken markup", + "ansible_collections.ns.col2.foo2_module__parameter-foobar", + "ansible_collections.ns.col2.foo2_module__parameter-subfoo[", + "ansible_collections.ns.col2.foo2_module__return-", + "ansible_collections.ns.col2.foo2_module__return-bambazbar", + "ansible_collections.ns.col2.foo2_module__return-barbaz", + "ansible_collections.ns.col2.foo2_module__return-foobarbaz", + "ansible_collections.ns.col2.foobarbam_filter", + "ansible_collections.ns.col2.foobarbaz_inventory", + "ansible_collections.ns.col2.foobarbaz_module", + "ansible_collections.ns.col2.foofoo_lookup__return-baz", + "ansible_collections.ns.col2.foofoo_test__parameter-subfoo/foo", + "ansible_collections.ns.col2.foo_module__parameter-foo", + "ansible_collections.ns.col2.foo_module__parameter-foobar", + "ansible_collections.ns.col2.foo_module__return-bar", + "ansible_collections.ns.col2.foo_module__return-barbaz", + "ansible_configuration_settings", + "asdfasdfoobarthisdoesnotexist", + "callback_plugins", + "common_return_values", + "filter_plugins_in_ns.col1", + "foo_plugins_in_ns2.col", + "migrating_to_loop", + "plugins_in_does.not_exist", + ], + ), +] + + +@pytest.mark.parametrize("source_dir, dest_dir, broken_refs", TEST_CASES) +def test_baseline( + source_dir: str, dest_dir: str, broken_refs: list[str], tmp_path +) -> None: + tests_root = os.path.join("tests", "functional") + theme_path = os.path.abspath(os.path.join(tests_root, "sphinx-themes")) + + input_dir = tmp_path / "input" + shutil.copytree(os.path.join(tests_root, source_dir), input_dir) + (input_dir / "conf.py").write_text( + """ +project = 'Ansible collections' +copyright = 'Ansible contributors' +title = 'Ansible Collections Documentation' +html_short_title = 'Ansible Collections Documentation' +extensions = ['sphinx_antsibull_ext'] +pygments_style = 'ansible' +highlight_language = 'YAML+Jinja' +html_theme = 'empty' +html_theme_path = [] +html_show_sphinx = False +display_version = False +html_use_smartypants = True +html_use_modindex = False +html_use_index = False +html_copy_source = False +nitpicky = True +""".replace( + "", repr(str(theme_path)) + ) + ) + + (input_dir / "index.rst").write_text( + """ +==================== +Some Ansible Docsite +==================== + +.. toctree:: + :glob: + + collections/* +""" + ) + + (input_dir / "broken-refs.rst").write_text( + """:orphan: + + + +Dead reference +============== + +All dead references should link to this section. +""".replace( + "", "\n".join(f".. _{ref}:" for ref in broken_refs) + ) + ) + + output_dir = tmp_path / "output" + + command = [ + "--builder", + "html", + str(input_dir), + str(output_dir), + "--keep-going", + # "--fail-on-warning", + ] + with ansible_doc_cache(): + rc = sphinx_main(command) + assert rc == 0 + + html_dir = output_dir + for filename in ["objects.inv", "searchindex.js", "search.html", ".buildinfo"]: + file = html_dir / filename + if file.exists(): + file.unlink() + for directory in ["_static", "_sources", ".doctrees"]: + file = html_dir / directory + if file.exists(): + shutil.rmtree(file) + + comparsion_dir = os.path.join(tests_root, dest_dir) + + if UPDATE_BASELINES: + print(f"Copying {html_dir} to {comparsion_dir}...") + if os.path.exists(comparsion_dir): + shutil.rmtree(comparsion_dir) + shutil.copytree(html_dir, comparsion_dir) + + # Compare baseline to expected result + source = scan_directories(comparsion_dir) + dest = scan_directories(html_dir) + compare_directories(source, dest) diff --git a/tests/functional/test_docs_linting.py b/tests/functional/test_docs_linting.py index 8318c12d..5fa5fc32 100644 --- a/tests/functional/test_docs_linting.py +++ b/tests/functional/test_docs_linting.py @@ -3762,6 +3762,23 @@ def test_docsite_linting_failure(tmp_path_factory): "docs/docsite/rst/filter_guide.rst:54:0: :ansopt:`ns2.col.foo#role:main:does_not_exist`: option name does not reference to an existing option of the role ns2.col.foo's entrypoint main", "docs/docsite/rst/filter_guide.rst:56:0: :ansopt:`ns2.col.foo#role:does_not_exist:neither`: the role ns2.col.foo has no entrypoint does_not_exist", "docs/docsite/rst/filter_guide.rst:58:0: :ansopt:`ns2.col.foo#role:does_not_exist`: Role reference is missing entrypoint", + "docs/docsite/rst/filter_guide.rst:60:0: :ansretval:`ns2.col.foo#filter:does_not_exist`: return value name does not reference to an existing return value of the filter plugin ns2.col.foo", + "docs/docsite/rst/filter_guide.rst:62:0: :ansretval:`ns2.col.foo#role:does_not_exist:neither`: the role ns2.col.foo has no entrypoint does_not_exist", + "docs/docsite/rst/filter_guide.rst:64:0: :ansretval:`ns2.col.foo#role:does_not_exist`: Role reference is missing entrypoint", + "docs/docsite/rst/filter_guide.rst:66:0: :ansoptref:`no explicit title`: An explicit reference title must be provided!", + "docs/docsite/rst/filter_guide.rst:68:0: :ansoptref:`title `: Cannot extract plugin name and type", + "docs/docsite/rst/filter_guide.rst:70:0: :ansoptref:`plugin does not exist `: there is no filter plugin ns2.col.boo", + 'docs/docsite/rst/filter_guide.rst:72:0: :ansoptref:`entrypoint for non-role `: Invalid option name "foo:boo"', + "docs/docsite/rst/filter_guide.rst:74:0: :ansoptref:`no entrypoint for role `: Role reference is missing entrypoint", + "docs/docsite/rst/filter_guide.rst:76:0: :ansoptref:`invalid entrypoint for role `: the role ns2.col.foo has no entrypoint boo", + "docs/docsite/rst/filter_guide.rst:78:0: :ansoptref:`option does not exist `: option name does not reference to an existing option of the filter plugin ns2.col.foo", + "docs/docsite/rst/filter_guide.rst:80:0: :ansretvalref:`no explicit title`: An explicit reference title must be provided!", + "docs/docsite/rst/filter_guide.rst:82:0: :ansretvalref:`title `: Cannot extract plugin name and type", + "docs/docsite/rst/filter_guide.rst:84:0: :ansretvalref:`plugin does not exist `: there is no filter plugin ns2.col.boo", + 'docs/docsite/rst/filter_guide.rst:86:0: :ansretvalref:`entrypoint for non-role `: Invalid return value name "foo:boo"', + "docs/docsite/rst/filter_guide.rst:88:0: :ansretvalref:`no entrypoint for role `: Role reference is missing entrypoint", + "docs/docsite/rst/filter_guide.rst:90:0: :ansretvalref:`invalid entrypoint for role `: the role ns2.col.foo has no entrypoint boo", + "docs/docsite/rst/filter_guide.rst:92:0: :ansretvalref:`return value does not exist `: return value name does not reference to an existing return value of the filter plugin ns2.col.foo", ], ), ( diff --git a/tests/functional/utils.py b/tests/functional/utils.py index 2d3e2ce4..2743c2c0 100644 --- a/tests/functional/utils.py +++ b/tests/functional/utils.py @@ -4,6 +4,7 @@ from __future__ import annotations +import difflib import os from contextlib import contextmanager from unittest import mock @@ -46,3 +47,68 @@ def update_environment(environment: dict[str, str | None]) -> None: os.environ[k] = backup[k] elif k in os.environ: del os.environ[k] + + +def scan_directories(root: os.PathLike) -> dict[str, tuple[str, list[str]]]: + result = {} + for path, dirs, files in os.walk(root): + result[os.path.relpath(path, root)] = (path, files) + return result + + +def compare_files(source: os.PathLike, dest: os.PathLike, path: str) -> int: + with open(source, "rb") as f: + src = f.read() + with open(dest, "rb") as f: + dst = f.read() + if src == dst: + return 0 + src_lines = src.decode("utf-8", errors="surrogateescape").splitlines() + dst_lines = dst.decode("utf-8", errors="surrogateescape").splitlines() + for line in difflib.unified_diff(src_lines, dst_lines, path, path): + if line[0] == "@": + print(line) + elif line[0] == "-": + print(f"\033[41m\033[9m{line}\033[29m\033[49m") + elif line[0] == "+": + print(f"\033[42m{line}\033[49m") + else: + print(line) + return 1 + + +def compare_directories( + source: dict[str, tuple[str, list[str]]], dest: dict[str, tuple[str, list[str]]] +) -> bool: + differences = 0 + for path in source: + if path not in dest: + print(f"Directory {path} exists only in the baseline!") + differences += 1 + continue + source_files = set(source[path][1]) + dest_files = set(dest[path][1]) + for file in source_files: + if file not in dest_files: + differences += 1 + print(f"File {os.path.join(path, file)} exists only in the baseline!") + continue + source_path = os.path.join(source[path][0], file) + dest_path = os.path.join(dest[path][0], file) + differences += compare_files( + source_path, dest_path, os.path.join(path, file) + ) + for file in dest_files: + if file not in source_files: + differences += 1 + print( + f"File {os.path.join(path, file)} exists only in the generated result!" + ) + for path in dest: + if path not in source: + print(f"Directory {path} exists only in the generated result!") + differences += 1 + continue + if differences: + print(f"Found {differences} differences.") + assert differences == 0