#213 Can't run tests in a container `Unable to parse standard-inventory-docker`
Closed: INVALID Opened by sturivny.

Preconditions:
Linux sturi-fedora.localdomain 4.13.9-300.fc27.x86_64 #1 SMP Mon Oct 23 13:41:58 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

standard-test-roles.noarch 2.12-1.fc27.7934db1.1 @group_osci-standard-test-roles
standard-test-roles.src 2.12-1.fc27.7934db1.1 group_osci-standard-test-roles

Steps:
Execute:

export ANSIBLE_INVENTORY=$(test -e inventory && echo inventory || echo /usr/share/ansible/inventory)
export TEST_SUBJECTS=docker:docker.io/library/fedora:26
ansible-playbook --tags=container tests.yml

Actual result:

[root@sturi-fedora libarchive]# python /usr/share/ansible/inventory/standard-inventory-docker --list
Launching Docker container for docker.io/library/fedora:27
Redirecting to /bin/systemctl start docker.service
5aff8e5e6447cf6ef25e62de2189957b9824e7242bf5e67b2d374648b2ba2b08
Fedora 27 - x86_64 - Updates                    1.6 MB/s |  24 MB     00:14    
Fedora 27 - x86_64                              7.3 MB/s |  58 MB     00:07    
Last metadata expiration check: 0:00:18 ago on Thu May 31 08:45:04 2018.
Package python3-dnf-2.7.5-2.fc27.noarch is already installed, skipping.
No match for argument: python3-libselinux
Error: Unable to find a match
standard-inventory-docker: Could not install Ansible dependencies in launched container
{}[root@sturi-fedora libarchive]ansible-playbook --tags=container tests.yml -vvv
ansible-playbook 2.5.2
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /bin/ansible-playbook
  python version = 2.7.13 (default, Aug 16 2017, 12:56:26) [GCC 7.1.1 20170802 (Red Hat 7.1.1-7)]
Using /etc/ansible/ansible.cfg as config file
Launching Docker container for docker.io/library/fedora:27
Redirecting to /bin/systemctl start docker.service
fc39141d29d4a26539bcb70c6257020d3cfd6be5dfb78f308255db22baf4cb22
Fedora 27 - x86_64 - Updates                     14 MB/s |  24 MB     00:01    
Fedora 27 - x86_64                               26 MB/s |  58 MB     00:02    
Last metadata expiration check: 0:00:07 ago on Thu May 31 08:48:22 2018.
Package python3-dnf-2.7.5-2.fc27.noarch is already installed, skipping.
No match for argument: python3-libselinux
Error: Unable to find a match
standard-inventory-docker: Could not install Ansible dependencies in launched container
 [WARNING]:  * Failed to parse /usr/share/ansible/inventory/standard-inventory-docker with script plugin: Inventory script (/usr/share/ansible/inventory/standard-inventory-docker)
had an execution error:
  File "/usr/lib/python2.7/site-packages/ansible/plugins/inventory/script.py", line 110, in parse
    raise AnsibleError("Inventory script (%s) had an execution error: %s " % (path, err))
 [WARNING]:  * Failed to parse /usr/share/ansible/inventory/standard-inventory-docker with yaml plugin: Syntax Error while loading YAML.   mapping values are not allowed in this
context  The error appears to have been in '/usr/share/ansible/inventory/standard-inventory-docker': line 42, column 15, but may be elsewhere in the file depending on the exact
syntax problem.  The offending line appears to be:   def main(argv):               ^ here
  File "/usr/lib/python2.7/site-packages/ansible/plugins/inventory/yaml.py", line 94, in parse
    data = self.loader.load_from_file(path, cache=False)
  File "/usr/lib/python2.7/site-packages/ansible/parsing/dataloader.py", line 91, in load_from_file
    parsed_data = self.load(data=file_data, file_name=file_name, show_content=show_content)
  File "/usr/lib/python2.7/site-packages/ansible/parsing/dataloader.py", line 74, in load
    return from_yaml(data, file_name, show_content, self._vault.secrets)
  File "/usr/lib/python2.7/site-packages/ansible/parsing/utils/yaml.py", line 85, in from_yaml
    _handle_error(yaml_exc, file_name, show_content)
  File "/usr/lib/python2.7/site-packages/ansible/parsing/utils/yaml.py", line 41, in _handle_error
    raise AnsibleParserError(YAML_SYNTAX_ERROR % to_native(err_msg), obj=err_obj, show_content=show_content, orig_exc=yaml_exc)
 [WARNING]:  * Failed to parse /usr/share/ansible/inventory/standard-inventory-docker with ini plugin: /usr/share/ansible/inventory/standard-inventory-docker:26: Expected key=value
host variable assignment, got: argparse
  File "/usr/lib/python2.7/site-packages/ansible/plugins/inventory/ini.py", line 132, in parse
    self._parse(path, data)
  File "/usr/lib/python2.7/site-packages/ansible/plugins/inventory/ini.py", line 210, in _parse
    hosts, port, variables = self._parse_host_definition(line)
  File "/usr/lib/python2.7/site-packages/ansible/plugins/inventory/ini.py", line 308, in _parse_host_definition
    self._raise_error("Expected key=value host variable assignment, got: %s" % (t))
  File "/usr/lib/python2.7/site-packages/ansible/plugins/inventory/ini.py", line 137, in _raise_error
    raise AnsibleError("%s:%d: " % (self._filename, self.lineno) + message)
 [WARNING]: Unable to parse /usr/share/ansible/inventory/standard-inventory-docker as an inventory source
 [ERROR]:
Parsed /usr/share/ansible/inventory/standard-inventory-local inventory source with script plugin
Parsed /usr/share/ansible/inventory/standard-inventory-qcow2 inventory source with script plugin
Parsed /usr/share/ansible/inventory/standard-inventory-rpm inventory source with script plugin
 [WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'
statically imported: /usr/share/ansible/roles/str-common-init/tasks/inspect.yml
statically imported: /usr/share/ansible/roles/str-common-init/tasks/trunner.yml
[root@sturi-fedora libarchive]# python /usr/share/ansible/inventory/standard-inventory-docker --list
Launching Docker container for docker.io/library/fedora:27
Redirecting to /bin/systemctl start docker.service
5aff8e5e6447cf6ef25e62de2189957b9824e7242bf5e67b2d374648b2ba2b08
Fedora 27 - x86_64 - Updates                    1.6 MB/s |  24 MB     00:14    
Fedora 27 - x86_64                              7.3 MB/s |  58 MB     00:07    
Last metadata expiration check: 0:00:18 ago on Thu May 31 08:45:04 2018.
Package python3-dnf-2.7.5-2.fc27.noarch is already installed, skipping.
No match for argument: python3-libselinux
Error: Unable to find a match
standard-inventory-docker: Could not install Ansible dependencies in launched container
{}

Hi, @sturivny , there is a big chance that above bugs were fixed.
Could you please check with standard-test-roles-2.13-1 ? It is current stable now.
Thank you.

@astepano sure

@astepano: it works, I close this bug

Metadata Update from @sturivny:
- Issue close_status updated to: INVALID
- Issue status updated to: Closed (was: Open)

Metadata