New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Restconf HTTPAPI plugin and modules #49476

Open
wants to merge 4 commits into
base: devel
from

Conversation

Projects
None yet
3 participants
@Qalthos
Contributor

Qalthos commented Dec 4, 2018

SUMMARY

Closes #49621

ISSUE TYPE
  • Feature Pull Request
COMPONENT NAME

restconf

@ansibot

This comment has been minimized.

@ansibot

This comment has been minimized.

Contributor

ansibot commented Dec 4, 2018

@Qalthos this PR contains more than one new module.

Please submit only one new module per pull request. For a detailed explanation, please read the grouped modules documentation

click here for bot help

@ansibot

This comment was marked as outdated.

Contributor

ansibot commented Dec 5, 2018

The test ansible-test sanity --test ansible-doc --python 2.6 [explain] failed with 2 errors:

lib/ansible/modules/network/restconf/restconf_edit.py:0:0: has a documentation error formatting or is missing documentation.
lib/ansible/modules/network/restconf/restconf_get.py:0:0: has a documentation error formatting or is missing documentation.

The test ansible-test sanity --test ansible-doc --python 2.7 [explain] failed with 2 errors:

lib/ansible/modules/network/restconf/restconf_edit.py:0:0: has a documentation error formatting or is missing documentation.
lib/ansible/modules/network/restconf/restconf_get.py:0:0: has a documentation error formatting or is missing documentation.

The test ansible-test sanity --test ansible-doc --python 3.5 [explain] failed with 2 errors:

lib/ansible/modules/network/restconf/restconf_edit.py:0:0: has a documentation error formatting or is missing documentation.
lib/ansible/modules/network/restconf/restconf_get.py:0:0: has a documentation error formatting or is missing documentation.

The test ansible-test sanity --test ansible-doc --python 3.6 [explain] failed with 2 errors:

lib/ansible/modules/network/restconf/restconf_edit.py:0:0: has a documentation error formatting or is missing documentation.
lib/ansible/modules/network/restconf/restconf_get.py:0:0: has a documentation error formatting or is missing documentation.

The test ansible-test sanity --test ansible-doc --python 3.7 [explain] failed with 2 errors:

lib/ansible/modules/network/restconf/restconf_edit.py:0:0: has a documentation error formatting or is missing documentation.
lib/ansible/modules/network/restconf/restconf_get.py:0:0: has a documentation error formatting or is missing documentation.

The test ansible-test sanity --test docs-build [explain] failed with the error:

Command "/usr/bin/python test/sanity/code-smell/docs-build.py" returned exit status 1.
>>> Standard Error
Command 'make singlehtmldocs' failed with status code: 2
--> Standard Output
cat _themes/srtd/static/css/theme.css | sed -e 's/^[ 	]*//g; s/[ 	]*$//g; s/\([:{;,]\) /\1/g; s/ {/{/g; s/\/\*.*\*\///g; /^$/d' | sed -e :a -e '$!N; s/\n\(.\)/\1/; ta' > _themes/srtd/static/css/theme.min.css
PYTHONPATH=../../lib ../bin/dump_config.py --template-file=../templates/config.rst.j2 --output-dir=rst/reference_appendices/ -d ../../lib/ansible/config/base.yml
mkdir -p rst/cli
PYTHONPATH=../../lib ../bin/generate_man.py --template-file=../templates/cli_rst.j2 --output-dir=rst/cli/ --output-format rst ../../lib/ansible/cli/*.py
PYTHONPATH=../../lib ../bin/dump_keywords.py --template-dir=../templates --output-dir=rst/reference_appendices/ -d ./keyword_desc.yml
PYTHONPATH=../../lib ../bin/plugin_formatter.py -t rst --template-dir=../templates --module-dir=../../lib/ansible/modules -o rst/modules/ 
Makefile:93: recipe for target 'modules' failed
--> Standard Error
Traceback (most recent call last):
  File "../bin/plugin_formatter.py", line 720, in <module>
    main()
  File "../bin/plugin_formatter.py", line 678, in main
    plugin_info, categories = get_plugin_info(options.module_dir, limit_to=options.limit_to, verbose=(options.verbosity > 0))
  File "../bin/plugin_formatter.py", line 269, in get_plugin_info
    doc, examples, returndocs, metadata = plugin_docs.get_docstring(module_path, fragment_loader, verbose=verbose)
  File "/root/ansible/lib/ansible/utils/plugin_docs.py", line 96, in get_docstring
    data = read_docstring(filename, verbose=verbose, ignore_errors=ignore_errors)
  File "/root/ansible/lib/ansible/parsing/plugin_docs.py", line 59, in read_docstring
    data[varkey] = AnsibleLoader(child.value.s, file_name=filename).get_single_data()
  File "/usr/local/lib/python3.6/dist-packages/yaml/constructor.py", line 35, in get_single_data
    node = self.get_single_node()
  File "/usr/local/lib/python3.6/dist-packages/yaml/composer.py", line 36, in get_single_node
    document = self.compose_document()
  File "/usr/local/lib/python3.6/dist-packages/yaml/composer.py", line 55, in compose_document
    node = self.compose_node(None, None)
  File "/usr/local/lib/python3.6/dist-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/local/lib/python3.6/dist-packages/yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/local/lib/python3.6/dist-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/local/lib/python3.6/dist-packages/yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/local/lib/python3.6/dist-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/local/lib/python3.6/dist-packages/yaml/composer.py", line 127, in compose_mapping_node
    while not self.check_event(MappingEndEvent):
  File "/usr/local/lib/python3.6/dist-packages/yaml/parser.py", line 98, in check_event
    self.current_event = self.state()
  File "/usr/local/lib/python3.6/dist-packages/yaml/parser.py", line 428, in parse_block_mapping_key
    if self.check_token(KeyToken):
  File "/usr/local/lib/python3.6/dist-packages/yaml/scanner.py", line 115, in check_token
    while self.need_more_tokens():
  File "/usr/local/lib/python3.6/dist-packages/yaml/scanner.py", line 149, in need_more_tokens
    self.stale_possible_simple_keys()
  File "/usr/local/lib/python3.6/dist-packages/yaml/scanner.py", line 289, in stale_possible_simple_keys
    "could not find expected ':'", self.get_mark())
yaml.scanner.ScannerError: while scanning a simple key
  in "<unicode string>", line 26, column 5:
        choices:['post', 'put', 'delete']
        ^
could not find expected ':'
  in "<unicode string>", line 27, column 3:
      format:
      ^
make: *** [modules] Error 1

The test ansible-test sanity --test validate-modules [explain] failed with 11 errors:

lib/ansible/modules/network/restconf/restconf_edit.py:0:0: E324 Value for "default" from the argument_spec ('json') for "format" does not match the documentation (None)
lib/ansible/modules/network/restconf/restconf_edit.py:0:0: E324 Value for "default" from the argument_spec ('put') for "method" does not match the documentation (None)
lib/ansible/modules/network/restconf/restconf_edit.py:0:0: E326 Value for "choices" from the argument_spec (['json', 'xml']) for "format" does not match the documentation ([])
lib/ansible/modules/network/restconf/restconf_edit.py:0:0: E326 Value for "choices" from the argument_spec (['post', 'put', 'delete']) for "method" does not match the documentation ([])
lib/ansible/modules/network/restconf/restconf_edit.py:40:3: E302 DOCUMENTATION is not valid YAML
lib/ansible/modules/network/restconf/restconf_edit.py:50:1: E311 EXAMPLES is not valid YAML
lib/ansible/modules/network/restconf/restconf_get.py:0:0: E324 Value for "default" from the argument_spec ('all') for "content" does not match the documentation (None)
lib/ansible/modules/network/restconf/restconf_get.py:0:0: E324 Value for "default" from the argument_spec ('json') for "output" does not match the documentation (None)
lib/ansible/modules/network/restconf/restconf_get.py:0:0: E326 Value for "choices" from the argument_spec (['config', 'nonconfig', 'all']) for "content" does not match the documentation ([])
lib/ansible/modules/network/restconf/restconf_get.py:0:0: E326 Value for "choices" from the argument_spec (['json', 'xml']) for "output" does not match the documentation ([])
lib/ansible/modules/network/restconf/restconf_get.py:42:3: E302 DOCUMENTATION is not valid YAML

The test ansible-test sanity --test yamllint [explain] failed with 3 errors:

lib/ansible/modules/network/restconf/restconf_edit.py:40:3: error DOCUMENTATION: syntax error: could not find expected ':'
lib/ansible/modules/network/restconf/restconf_edit.py:50:1: error EXAMPLES: syntax error: expected <block end>, but found '?'
lib/ansible/modules/network/restconf/restconf_get.py:42:3: error DOCUMENTATION: syntax error: could not find expected ':'

click here for bot help

@ansibot ansibot removed the ci_verified label Dec 6, 2018

@ansibot

This comment has been minimized.

Contributor

ansibot commented Dec 6, 2018

The test ansible-test sanity --test validate-modules [explain] failed with 3 errors:

lib/ansible/modules/network/restconf/restconf_edit.py:0:0: E324 Value for "default" from the argument_spec ('put') for "method" does not match the documentation ('post')
lib/ansible/modules/network/restconf/restconf_edit.py:50:1: E311 EXAMPLES is not valid YAML
lib/ansible/modules/network/restconf/restconf_get.py:0:0: E322 "fields" is listed in the argument_spec, but not documented in the module

The test ansible-test sanity --test yamllint [explain] failed with 1 error:

lib/ansible/modules/network/restconf/restconf_edit.py:50:1: error EXAMPLES: syntax error: expected <block end>, but found '?'

click here for bot help

ganeshrn and others added some commits Sep 6, 2018

Initial code for restconf support
*  Add restconf httpapi plugin
*  Add restonf_get module
*  Add restonf_edit module
Add http_api
I know, it's awful

@Qalthos Qalthos force-pushed the Qalthos:restconf branch from cb85730 to 639fcc5 Dec 6, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment