I have clone rookcheck repo.
Copied the environment file, and modified it so LIBVIRT variables are uncomment:
# For automatic inclusion, copy this file to ".env". Otherwise, after making
# a copy of this file, make sure to source it into your session (eg
# `source my.env`). You may also need to `export` each of the variables.
# Configuration is provided with dynaconf (https://dynaconf.readthedocs.io).
# You can override any settings found in config/ by exporting them into your
# shell environment. See dynaconf documentation for full details.
# The variables must be prefixed with ROOKCHECK.
# NOTE: This prefix may not change unless you also change what variables are
# passed via tox.ini.
ENVVAR_PREFIX_FOR_DYNACONF=ROOKCHECK
###############################
# OpenStack provider settings #
###############################
# # Make sure to source your openrc_v3.
# ROOKCHECK_HARDWARE_PROVIDER='OPENSTACK'
# ROOKCHECK_OS_VERIFY_SSL_CERT=FALSE
# ROOKCHECK_OS_EXTERNAL_NETWORK=floating
#############################
# libvirt provider settings #
#############################
ROOKCHECK_LIBVIRT_CONNECTION="qemu:///system"
ROOKCHECK_LIBVIRT_NETWORK_RANGE="192.168.124.0/24"
ROOKCHECK_LIBVIRT_IMAGE="openSUSE-15.2.qcow2"
ROOKCHECK_LIBVIRT_VM_MEMORY="8"
tox -e py36 -- tests/test_basic.py
py36 installed: ansible==2.9.12,ansible-lint==4.3.2,appdirs==1.4.4,attrs==20.1.0,bcrypt==3.2.0,boto3==1.14.48,botocore==1.17.48,cachetools==4.1.1,certifi==2020.6.20,cffi==1.14.2,chardet==3.0.4,click==7.1.2,colorama==0.4.3,commonmark==0.9.1,cryptography==3.0,dataclasses==0.7,decorator==4.4.2,docutils==0.15.2,dogpile.cache==1.0.2,dynaconf==2.2.3,flake8==3.8.3,google-auth==1.20.1,idna==2.10,importlib-metadata==1.7.0,importlib-resources==3.0.0,iniconfig==1.0.1,iso8601==0.1.12,Jinja2==2.11.2,jmespath==0.10.0,jsonpatch==1.26,jsonpointer==2.0,keystoneauth1==4.2.1,kubernetes==11.0.0,libvirt-python==6.6.0,MarkupSafe==1.1.1,mccabe==0.6.1,more-itertools==8.4.0,munch==2.5.0,mypy==0.782,mypy-extensions==0.4.3,netaddr==0.8.0,netifaces==0.10.9,oauthlib==3.1.0,openstacksdk==0.48.0,os-service-types==1.7.0,packaging==20.4,paramiko==2.7.1,pbr==5.4.5,pluggy==0.13.1,py==1.9.0,pyasn1==0.4.8,pyasn1-modules==0.2.8,pycodestyle==2.6.0,pycparser==2.20,pyflakes==2.2.0,Pygments==2.6.1,PyNaCl==1.4.0,pyparsing==2.4.7,pytest==6.0.1,python-box==3.4.6,python-dateutil==2.8.1,python-dotenv==0.14.0,PyYAML==5.3.1,requests==2.24.0,requests-oauthlib==1.3.0,requestsexceptions==1.4.0,rich==6.0.0,rsa==4.6,ruamel.yaml==0.16.10,ruamel.yaml.clib==0.2.0,s3transfer==0.3.3,six==1.15.0,stevedore==3.2.0,toml==0.10.1,typed-ast==1.4.1,typing-extensions==3.7.4.3,urllib3==1.25.10,websocket-client==0.57.0,wget==3.2,zipp==3.1.0
py36 run-test-pre: PYTHONHASHSEED='718839036'
py36 run-test: commands[0] | py.test -s tests/test_basic.py
================================================================ test session starts =================================================================
platform linux -- Python 3.6.10, pytest-6.0.1, py-1.9.0, pluggy-0.13.1
cachedir: .tox/py36/.pytest_cache
rootdir: /home/kyr/suse/rookcheck, configfile: tox.ini
collected 8 items
tests/test_basic.py::test_deploy_filesystem
------------------------------------------------------------------- live log setup -------------------------------------------------------------------
15:47:23 ssh-agent -a /tmp/rookcheck/rookcheck-kyr-33f INFO : SSH_AUTH_SOCK=/tmp/rookcheck/rookcheck-kyr-33f6/ssh-agent.sock; export SSH_AUTH_SOCK;
15:47:23 ssh-agent -a /tmp/rookcheck/rookcheck-kyr-33f INFO : SSH_AGENT_PID=11655; export SSH_AGENT_PID;
15:47:23 ssh-agent -a /tmp/rookcheck/rookcheck-kyr-33f INFO : echo Agent pid 11655;
15:47:23 root INFO : Adding ssh-key to agent
15:47:23 tests.lib.workspace INFO : Workspace rookcheck-kyr-33f6 set up at /tmp/rookcheck/rookcheck-kyr-33f6
15:47:23 tests.lib.workspace INFO : public key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDNZNan85dK6vRg99v//NH7ed/XK9v3l9Z621N7P3httJaZ2BE+1bH4A3PDaxG59pbQjG4y1XS5hnklO7ov2Dt1ffaMqB+5jV041uFHdl+ybc0S4P/KyF4LxZah3yr43VjGPXAsm1tqOHFuLXtowvQtkdVYMGtZWGF+yhyjjtmQxpCLyiHxQNXaAlItdFsO2jlD7zdhx/gdXjz6qlWUWEp2tbT/1USZhOqfe73tajOgI6YQp/UlHzzKOy2nPTooG7z+HiDizIvQQVR1f41t+A2V5nHPEa9kg+PrH4MjHOKXI6UqySkONvpfeRNXUCPLJ6xOD+CARC8hqYt0n/xJlb41
15:47:23 tests.lib.workspace INFO : private key /tmp/rookcheck/rookcheck-kyr-33f6/private.key
ERROR
tests/test_basic.py::test_file_creation ERROR
tests/test_basic.py::test_service_mons ERROR
tests/test_basic.py::test_services ERROR
tests/test_basic.py::test_service_rbd ERROR
tests/test_basic.py::test_osd_number ERROR
tests/test_basic.py::test_add_node SKIPPED
tests/test_basic.py::test_add_storage ERROR
----------------------------------------------------------------- live log teardown ------------------------------------------------------------------
15:47:23 ssh-agent -k INFO : unset SSH_AUTH_SOCK;
15:47:23 ssh-agent -k INFO : unset SSH_AGENT_PID;
15:47:23 ssh-agent -k INFO : echo Agent pid 11655 killed;
15:47:23 tests.lib.workspace INFO : Removing workspace /tmp/rookcheck/rookcheck-kyr-33f6 from disk
======================================================================= ERRORS =======================================================================
______________________________________________________ ERROR at setup of test_deploy_filesystem ______________________________________________________
workspace = <tests.lib.workspace.Workspace object at 0x7f09f5b5d908>
@pytest.fixture(scope="module")
def rook_cluster(workspace):
> with Hardware(workspace) as hardware:
tests/conftest.py:105:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/lib/hardware/openstack_sdk.py:150: in __init__
super().__init__(workspace)
tests/lib/hardware/hardware_base.py:44: in __init__
self._conn = self.get_connection()
tests/lib/hardware/openstack_sdk.py:181: in get_connection
return openstack.connect()
.tox/py36/lib/python3.6/site-packages/openstack/__init__.py:63: in connect
options=options, **kwargs)
.tox/py36/lib/python3.6/site-packages/openstack/config/__init__.py:36: in get_cloud_region
return config.get_one(options=parsed_options, **kwargs)
.tox/py36/lib/python3.6/site-packages/openstack/config/loader.py:1111: in get_one
auth_plugin = loader.load_from_options(**config['auth'])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <keystoneauth1.loading._plugins.identity.generic.Password object at 0x7f09f5b5da20>, kwargs = {}, missing_required = [<Opt: auth-url>]
def load_from_options(self, **kwargs):
"""Create a plugin from the arguments retrieved from get_options.
A client can override this function to do argument validation or to
handle differences between the registered options and what is required
to create the plugin.
"""
missing_required = [o for o in self.get_options()
if o.required and kwargs.get(o.dest) is None]
if missing_required:
> raise exceptions.MissingRequiredOptions(missing_required)
E keystoneauth1.exceptions.auth_plugins.MissingRequiredOptions: Auth plugin requires parameters which were not given: auth_url
.tox/py36/lib/python3.6/site-packages/keystoneauth1/loading/base.py:162: MissingRequiredOptions
----------------------------------------------------------------- Captured log setup -----------------------------------------------------------------
15:47:23 ssh-agent -a /tmp/rookcheck/rookcheck-kyr-33f INFO : SSH_AUTH_SOCK=/tmp/rookcheck/rookcheck-kyr-33f6/ssh-agent.sock; export SSH_AUTH_SOCK;
15:47:23 ssh-agent -a /tmp/rookcheck/rookcheck-kyr-33f INFO : SSH_AGENT_PID=11655; export SSH_AGENT_PID;
15:47:23 ssh-agent -a /tmp/rookcheck/rookcheck-kyr-33f INFO : echo Agent pid 11655;
15:47:23 root INFO : Adding ssh-key to agent
15:47:23 tests.lib.workspace INFO : Workspace rookcheck-kyr-33f6 set up at /tmp/rookcheck/rookcheck-kyr-33f6
15:47:23 tests.lib.workspace INFO : public key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDNZNan85dK6vRg99v//NH7ed/XK9v3l9Z621N7P3httJaZ2BE+1bH4A3PDaxG59pbQjG4y1XS5hnklO7ov2Dt1ffaMqB+5jV041uFHdl+ybc0S4P/KyF4LxZah3yr43VjGPXAsm1tqOHFuLXtowvQtkdVYMGtZWGF+yhyjjtmQxpCLyiHxQNXaAlItdFsO2jlD7zdhx/gdXjz6qlWUWEp2tbT/1USZhOqfe73tajOgI6YQp/UlHzzKOy2nPTooG7z+HiDizIvQQVR1f41t+A2V5nHPEa9kg+PrH4MjHOKXI6UqySkONvpfeRNXUCPLJ6xOD+CARC8hqYt0n/xJlb41
15:47:23 tests.lib.workspace INFO : private key /tmp/rookcheck/rookcheck-kyr-33f6/private.key
________________________________________________________ ERROR at setup of test_file_creation ________________________________________________________
workspace = <tests.lib.workspace.Workspace object at 0x7f09f5b5d908>
@pytest.fixture(scope="module")
def rook_cluster(workspace):
> with Hardware(workspace) as hardware:
tests/conftest.py:105:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/lib/hardware/openstack_sdk.py:150: in __init__
super().__init__(workspace)
tests/lib/hardware/hardware_base.py:44: in __init__
self._conn = self.get_connection()
tests/lib/hardware/openstack_sdk.py:181: in get_connection
return openstack.connect()
.tox/py36/lib/python3.6/site-packages/openstack/__init__.py:63: in connect
options=options, **kwargs)
.tox/py36/lib/python3.6/site-packages/openstack/config/__init__.py:36: in get_cloud_region
return config.get_one(options=parsed_options, **kwargs)
.tox/py36/lib/python3.6/site-packages/openstack/config/loader.py:1111: in get_one
auth_plugin = loader.load_from_options(**config['auth'])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <keystoneauth1.loading._plugins.identity.generic.Password object at 0x7f09f5b5da20>, kwargs = {}, missing_required = [<Opt: auth-url>]
def load_from_options(self, **kwargs):
"""Create a plugin from the arguments retrieved from get_options.
A client can override this function to do argument validation or to
handle differences between the registered options and what is required
to create the plugin.
"""
missing_required = [o for o in self.get_options()
if o.required and kwargs.get(o.dest) is None]
if missing_required:
> raise exceptions.MissingRequiredOptions(missing_required)
E keystoneauth1.exceptions.auth_plugins.MissingRequiredOptions: Auth plugin requires parameters which were not given: auth_url
.tox/py36/lib/python3.6/site-packages/keystoneauth1/loading/base.py:162: MissingRequiredOptions
________________________________________________________ ERROR at setup of test_service_mons _________________________________________________________
workspace = <tests.lib.workspace.Workspace object at 0x7f09f5b5d908>
@pytest.fixture(scope="module")
def rook_cluster(workspace):
> with Hardware(workspace) as hardware:
tests/conftest.py:105:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/lib/hardware/openstack_sdk.py:150: in __init__
super().__init__(workspace)
tests/lib/hardware/hardware_base.py:44: in __init__
self._conn = self.get_connection()
tests/lib/hardware/openstack_sdk.py:181: in get_connection
return openstack.connect()
.tox/py36/lib/python3.6/site-packages/openstack/__init__.py:63: in connect
options=options, **kwargs)
.tox/py36/lib/python3.6/site-packages/openstack/config/__init__.py:36: in get_cloud_region
return config.get_one(options=parsed_options, **kwargs)
.tox/py36/lib/python3.6/site-packages/openstack/config/loader.py:1111: in get_one
auth_plugin = loader.load_from_options(**config['auth'])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <keystoneauth1.loading._plugins.identity.generic.Password object at 0x7f09f5b5da20>, kwargs = {}, missing_required = [<Opt: auth-url>]
def load_from_options(self, **kwargs):
"""Create a plugin from the arguments retrieved from get_options.
A client can override this function to do argument validation or to
handle differences between the registered options and what is required
to create the plugin.
"""
missing_required = [o for o in self.get_options()
if o.required and kwargs.get(o.dest) is None]
if missing_required:
> raise exceptions.MissingRequiredOptions(missing_required)
E keystoneauth1.exceptions.auth_plugins.MissingRequiredOptions: Auth plugin requires parameters which were not given: auth_url
.tox/py36/lib/python3.6/site-packages/keystoneauth1/loading/base.py:162: MissingRequiredOptions
__________________________________________________________ ERROR at setup of test_services ___________________________________________________________
workspace = <tests.lib.workspace.Workspace object at 0x7f09f5b5d908>
@pytest.fixture(scope="module")
def rook_cluster(workspace):
> with Hardware(workspace) as hardware:
tests/conftest.py:105:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/lib/hardware/openstack_sdk.py:150: in __init__
super().__init__(workspace)
tests/lib/hardware/hardware_base.py:44: in __init__
self._conn = self.get_connection()
tests/lib/hardware/openstack_sdk.py:181: in get_connection
return openstack.connect()
.tox/py36/lib/python3.6/site-packages/openstack/__init__.py:63: in connect
options=options, **kwargs)
.tox/py36/lib/python3.6/site-packages/openstack/config/__init__.py:36: in get_cloud_region
return config.get_one(options=parsed_options, **kwargs)
.tox/py36/lib/python3.6/site-packages/openstack/config/loader.py:1111: in get_one
auth_plugin = loader.load_from_options(**config['auth'])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <keystoneauth1.loading._plugins.identity.generic.Password object at 0x7f09f5b5da20>, kwargs = {}, missing_required = [<Opt: auth-url>]
def load_from_options(self, **kwargs):
"""Create a plugin from the arguments retrieved from get_options.
A client can override this function to do argument validation or to
handle differences between the registered options and what is required
to create the plugin.
"""
missing_required = [o for o in self.get_options()
if o.required and kwargs.get(o.dest) is None]
if missing_required:
> raise exceptions.MissingRequiredOptions(missing_required)
E keystoneauth1.exceptions.auth_plugins.MissingRequiredOptions: Auth plugin requires parameters which were not given: auth_url
.tox/py36/lib/python3.6/site-packages/keystoneauth1/loading/base.py:162: MissingRequiredOptions
_________________________________________________________ ERROR at setup of test_service_rbd _________________________________________________________
workspace = <tests.lib.workspace.Workspace object at 0x7f09f5b5d908>
@pytest.fixture(scope="module")
def rook_cluster(workspace):
> with Hardware(workspace) as hardware:
tests/conftest.py:105:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/lib/hardware/openstack_sdk.py:150: in __init__
super().__init__(workspace)
tests/lib/hardware/hardware_base.py:44: in __init__
self._conn = self.get_connection()
tests/lib/hardware/openstack_sdk.py:181: in get_connection
return openstack.connect()
.tox/py36/lib/python3.6/site-packages/openstack/__init__.py:63: in connect
options=options, **kwargs)
.tox/py36/lib/python3.6/site-packages/openstack/config/__init__.py:36: in get_cloud_region
return config.get_one(options=parsed_options, **kwargs)
.tox/py36/lib/python3.6/site-packages/openstack/config/loader.py:1111: in get_one
auth_plugin = loader.load_from_options(**config['auth'])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <keystoneauth1.loading._plugins.identity.generic.Password object at 0x7f09f5b5da20>, kwargs = {}, missing_required = [<Opt: auth-url>]
def load_from_options(self, **kwargs):
"""Create a plugin from the arguments retrieved from get_options.
A client can override this function to do argument validation or to
handle differences between the registered options and what is required
to create the plugin.
"""
missing_required = [o for o in self.get_options()
if o.required and kwargs.get(o.dest) is None]
if missing_required:
> raise exceptions.MissingRequiredOptions(missing_required)
E keystoneauth1.exceptions.auth_plugins.MissingRequiredOptions: Auth plugin requires parameters which were not given: auth_url
.tox/py36/lib/python3.6/site-packages/keystoneauth1/loading/base.py:162: MissingRequiredOptions
_________________________________________________________ ERROR at setup of test_osd_number __________________________________________________________
workspace = <tests.lib.workspace.Workspace object at 0x7f09f5b5d908>
@pytest.fixture(scope="module")
def rook_cluster(workspace):
> with Hardware(workspace) as hardware:
tests/conftest.py:105:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/lib/hardware/openstack_sdk.py:150: in __init__
super().__init__(workspace)
tests/lib/hardware/hardware_base.py:44: in __init__
self._conn = self.get_connection()
tests/lib/hardware/openstack_sdk.py:181: in get_connection
return openstack.connect()
.tox/py36/lib/python3.6/site-packages/openstack/__init__.py:63: in connect
options=options, **kwargs)
.tox/py36/lib/python3.6/site-packages/openstack/config/__init__.py:36: in get_cloud_region
return config.get_one(options=parsed_options, **kwargs)
.tox/py36/lib/python3.6/site-packages/openstack/config/loader.py:1111: in get_one
auth_plugin = loader.load_from_options(**config['auth'])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <keystoneauth1.loading._plugins.identity.generic.Password object at 0x7f09f5b5da20>, kwargs = {}, missing_required = [<Opt: auth-url>]
def load_from_options(self, **kwargs):
"""Create a plugin from the arguments retrieved from get_options.
A client can override this function to do argument validation or to
handle differences between the registered options and what is required
to create the plugin.
"""
missing_required = [o for o in self.get_options()
if o.required and kwargs.get(o.dest) is None]
if missing_required:
> raise exceptions.MissingRequiredOptions(missing_required)
E keystoneauth1.exceptions.auth_plugins.MissingRequiredOptions: Auth plugin requires parameters which were not given: auth_url
.tox/py36/lib/python3.6/site-packages/keystoneauth1/loading/base.py:162: MissingRequiredOptions
_________________________________________________________ ERROR at setup of test_add_storage _________________________________________________________
workspace = <tests.lib.workspace.Workspace object at 0x7f09f5b5d908>
@pytest.fixture(scope="module")
def rook_cluster(workspace):
> with Hardware(workspace) as hardware:
tests/conftest.py:105:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/lib/hardware/openstack_sdk.py:150: in __init__
super().__init__(workspace)
tests/lib/hardware/hardware_base.py:44: in __init__
self._conn = self.get_connection()
tests/lib/hardware/openstack_sdk.py:181: in get_connection
return openstack.connect()
.tox/py36/lib/python3.6/site-packages/openstack/__init__.py:63: in connect
options=options, **kwargs)
.tox/py36/lib/python3.6/site-packages/openstack/config/__init__.py:36: in get_cloud_region
return config.get_one(options=parsed_options, **kwargs)
.tox/py36/lib/python3.6/site-packages/openstack/config/loader.py:1111: in get_one
auth_plugin = loader.load_from_options(**config['auth'])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <keystoneauth1.loading._plugins.identity.generic.Password object at 0x7f09f5b5da20>, kwargs = {}, missing_required = [<Opt: auth-url>]
def load_from_options(self, **kwargs):
"""Create a plugin from the arguments retrieved from get_options.
A client can override this function to do argument validation or to
handle differences between the registered options and what is required
to create the plugin.
"""
missing_required = [o for o in self.get_options()
if o.required and kwargs.get(o.dest) is None]
if missing_required:
> raise exceptions.MissingRequiredOptions(missing_required)
E keystoneauth1.exceptions.auth_plugins.MissingRequiredOptions: Auth plugin requires parameters which were not given: auth_url
.tox/py36/lib/python3.6/site-packages/keystoneauth1/loading/base.py:162: MissingRequiredOptions
============================================================== short test summary info ===============================================================
ERROR tests/test_basic.py::test_deploy_filesystem - keystoneauth1.exceptions.auth_plugins.MissingRequiredOptions: Auth plugin requires parameters w...
ERROR tests/test_basic.py::test_file_creation - keystoneauth1.exceptions.auth_plugins.MissingRequiredOptions: Auth plugin requires parameters which...
ERROR tests/test_basic.py::test_service_mons - keystoneauth1.exceptions.auth_plugins.MissingRequiredOptions: Auth plugin requires parameters which ...
ERROR tests/test_basic.py::test_services - keystoneauth1.exceptions.auth_plugins.MissingRequiredOptions: Auth plugin requires parameters which were...
ERROR tests/test_basic.py::test_service_rbd - keystoneauth1.exceptions.auth_plugins.MissingRequiredOptions: Auth plugin requires parameters which w...
ERROR tests/test_basic.py::test_osd_number - keystoneauth1.exceptions.auth_plugins.MissingRequiredOptions: Auth plugin requires parameters which we...
ERROR tests/test_basic.py::test_add_storage - keystoneauth1.exceptions.auth_plugins.MissingRequiredOptions: Auth plugin requires parameters which w...
============================================================ 1 skipped, 7 errors in 0.47s ============================================================
ERROR: InvocationError for command /home/kyr/suse/rookcheck/.tox/py36/bin/py.test -s tests/test_basic.py (exited with code 1)
______________________________________________________________________ summary _______________________________________________________________________
ERROR: py36: commands failed