Bug 1753643 - containerized tempest - permission denied
Summary: containerized tempest - permission denied
Keywords:
Status: CLOSED EOL
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-tempest
Version: 15.0 (Stein)
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: ---
Assignee: Chandan Kumar
QA Contact: Martin Kopec
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-09-19 14:03 UTC by Martin Kopec
Modified: 2020-09-30 20:07 UTC (History)
8 users (show)

Fixed In Version:
Doc Type: No Doc Update
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-09-30 20:07:03 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
error_output (12.78 KB, text/plain)
2019-09-19 14:21 UTC, Martin Kopec
no flags Details

Description Martin Kopec 2019-09-19 14:03:44 UTC
Description of problem:
I found a couple of issues when I was running openstack-tempest container according our official tempest documentation. See the attached output.
1. When mounting a volume to the container ":z" should be used, like "-v path/from:path/to:z", otherwise we'll face a permission denied issue when the container will try to read the content of the mounted volume.
2. The container cannot write to the folder created outside of the container and just mounted via -v. I'm attaching an output where you can see how I was trying to workaround the issue by setting file permissions.

Version-Release number of selected component (if applicable):
[stack@undercloud-0 ~]$ podman images
REPOSITORY                                        TAG      IMAGE ID       CREATED       SIZE
registry.redhat.io/rhosp-beta/openstack-tempest   latest   0f6f9a72402c   2 weeks ago   886 MB

Steps to Reproduce:
Follow the official documentation or see the attached output.

Actual results:
[stack@undercloud-0 ~]$ podman-tempest -c 'set -e; /home/stack/container_tempest/tempest_script.sh'
2019-09-19 10:15:45.432 12 INFO tempest [-] Using tempest config file /etc/tempest/tempest.conf
2019-09-19 10:15:45.574 12 ERROR tempest [-] [('/etc/tempest/tempest.conf', '/home/stack/tempest_workspace/etc/tempest.conf', "[Errno 13] Permission denied: '/home/stack/tempest_workspace/etc/tempest.conf'"), ('/etc/tempest/logging.conf.sample', '/home/stack/tempest_workspace/etc/logging.conf.sample', "[Errno 13] Permission denied: '/home/stack/tempest_workspace/etc/logging.conf.sample'"), ('/etc/tempest/accounts.yaml.sample', '/home/stack/tempest_workspace/etc/accounts.yaml.sample', "[Errno 13] Permission denied: '/home/stack/tempest_workspace/etc/accounts.yaml.sample'"), ('/etc/tempest/whitelist.yaml', '/home/stack/tempest_workspace/etc/whitelist.yaml', "[Errno 13] Permission denied: '/home/stack/tempest_workspace/etc/whitelist.yaml'"), ('/etc/tempest', '/home/stack/tempest_workspace/etc', "[Errno 13] Permission denied: '/home/stack/tempest_workspace/etc'")]: shutil.Error: [('/etc/tempest/tempest.conf', '/home/stack/tempest_workspace/etc/tempest.conf', "[Errno 13] Permission denied: '/home/stack/tempest_workspace/etc/tempest.conf'"), ('/etc/tempest/logging.conf.sample', '/home/stack/tempest_workspace/etc/logging.conf.sample', "[Errno 13] Permission denied: '/home/stack/tempest_workspace/etc/logging.conf.sample'"), ('/etc/tempest/accounts.yaml.sample', '/home/stack/tempest_workspace/etc/accounts.yaml.sample', "[Errno 13] Permission denied: '/home/stack/tempest_workspace/etc/accounts.yaml.sample'"), ('/etc/tempest/whitelist.yaml', '/home/stack/tempest_workspace/etc/whitelist.yaml', "[Errno 13] Permission denied: '/home/stack/tempest_workspace/etc/whitelist.yaml'"), ('/etc/tempest', '/home/stack/tempest_workspace/etc', "[Errno 13] Permission denied: '/home/stack/tempest_workspace/etc'")]

Additional info:
The container should be redesigned, the workarounds like creating directories with special permissions are not the right way to continue.

The container should create a directory which is needed for its execution itself after the container is started. In the context of the current documentation - tempest_workspace directory should be created by the container when it's started. In that case the dir will have correct permissions to be accessed by the container.

When I was inspecting containers of other services (f.e. mariadb) I saw they had defined list of mountpoints - the files which are mounted to the container when it's started. Again in our case it would meant that one mountpoint would be for /home/stack/overcloudrc, another one for /home/stack/deployer-input.conf, another one for /etc/openstack/tempest.conf (it would use this tempest.conf by default let's say) and the last one for tempest_workspace for example /var/lib/tempest_workspace.

The container should also provide some parameters (I'm not a container master, but it has to be possible somehow) which a user could use to override some of the mountpoints or/and affect container behavior (for example --force which would override tempest_workspace content).

Comment 2 Martin Kopec 2019-09-19 14:21:13 UTC
Created attachment 1616751 [details]
error_output

Comment 3 Charles Benon 2020-03-03 11:35:11 UTC
Could we get an update ?

I have a customer facing the same situation on RHOSP16 (documentation is the same as RHOSP15 but I can open another bug toward RHOSP16 if you want).

So far, the workaround he used is:
-Give 777 rights to tempest_workspace Directory
-Run the container without label:
podman run -it -v /home/stack/tempest/container_tempest:/home/stack/container tempest -v /home/stack/tempest/tempest_workspace:/home/stack/tempest_workspace —security-opt label=disable registry.redhatio/rhosp-rhel8/openstack-tempest:16.0 /bin/bash

Comment 4 Martin Kopec 2020-03-23 10:44:36 UTC
Hi Charles,

I'm sorry for a late response, unfortunately we don't have any updates yet, the workaround is all we got for now.
A new BZ is not necessary at the moment, the container design is not the best. It is one of the first attempts to containerize tempest. We need some time to think it through and we will update tempest containers for 15 and 16 as well.

Comment 5 Arx Cruz 2020-06-03 12:22:36 UTC
Hello,

Running podman with --privileged=true solve the problem.

The main problem is, the mounted volume tempest_workspace and container_tempest is always mounted as root, and so, the user tempest (from the tempest container) doesn't have permission to read the overcloudrc.
if you use:

alias podman-tempest="podman run -i --privileged=true \
    -v "$(pwd)"/container_tempest:/home/stack/container_tempest:suid \
    -v "$(pwd)"/tempest_workspace:/home/stack/tempest_workspace:suid \
    registry.redhat.io/rhosp-beta/openstack-tempest \
    /bin/bash"

and then run podman-tempest -c 'set -e; /home/stack/container_tempest/tempest_script.sh'

It works fine.

Below the output from my tests

stack@undercloud-0:~[stack@undercloud-0 ~]$ alias podman-tempest="podman run -i --privileged=true \
>     -v "$(pwd)"/container_tempest:/home/stack/container_tempest:suid \
>     -v "$(pwd)"/tempest_workspace:/home/stack/tempest_workspace:suid \
>     registry.redhat.io/rhosp-beta/openstack-tempest \
>     /bin/bash"
stack@undercloud-0:~[stack@undercloud-0 ~]$ podman-tempest -c 'set -e; /home/stack/container_tempest/tempest_script.sh'
2020-06-03 12:14:30.422 13 INFO tempest [-] Using tempest config file /etc/tempest/tempest.conf
/usr/lib/python3.6/site-packages/oslo_config/types.py:59: UserWarning: converting '3000' to a string
  warnings.warn('converting \'%s\' to a string' % str_val)
/home/stack/tempest_workspace ~
2020-06-03 12:14:32.020 16 INFO tempest [-] Using tempest config file /home/stack/tempest_workspace/etc/tempest.conf
2020-06-03 12:14:32.158 16 DEBUG config_tempest.constants [-] Setting basic default values load_basic_defaults /usr/lib/python3.6/site-packages/config_tempest/main.py:78
2020-06-03 12:14:32.158 16 DEBUG config_tempest.constants [-] Setting [DEFAULT] debug = true set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.159 16 DEBUG config_tempest.constants [-] Setting [DEFAULT] use_stderr = false set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.159 16 DEBUG config_tempest.constants [-] Setting [DEFAULT] log_file = tempest.log set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.159 16 DEBUG config_tempest.constants [-] Setting [identity] username = demo set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.159 16 DEBUG config_tempest.constants [-] Setting [identity] password = secrete set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.160 16 DEBUG config_tempest.constants [-] Setting [identity] project_name = demo set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.160 16 DEBUG config_tempest.constants [-] Setting [identity] alt_username = alt_demo set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.160 16 DEBUG config_tempest.constants [-] Setting [identity] alt_password = secrete set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.160 16 DEBUG config_tempest.constants [-] Setting [identity] alt_project_name = alt_demo set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.160 16 DEBUG config_tempest.constants [-] Setting [identity] disable_ssl_certificate_validation = true set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.161 16 DEBUG config_tempest.constants [-] Setting [scenario] img_dir = etc set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.161 16 DEBUG config_tempest.constants [-] Setting [auth] tempest_roles = _member_ set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.161 16 DEBUG config_tempest.constants [-] Setting [auth] admin_username = admin set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.161 16 DEBUG config_tempest.constants [-] Setting [auth] admin_project_name = admin set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.162 16 DEBUG config_tempest.constants [-] Setting [auth] admin_domain_name = Default set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.162 16 DEBUG config_tempest.constants [-] Setting [object-storage] reseller_admin_role = ResellerAdmin set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.162 16 DEBUG config_tempest.constants [-] Setting [oslo-concurrency] lock_path = /tmp set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.162 16 DEBUG config_tempest.constants [-] Setting [compute-feature-enabled] live_migration = false set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.163 16 DEBUG config_tempest.constants [-] Setting [compute-feature-enabled] live_migrate_paused_instances = true set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.163 16 DEBUG config_tempest.constants [-] Setting [compute-feature-enabled] preserve_ports = true set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.163 16 DEBUG config_tempest.constants [-] Setting [network-feature-enabled] ipv6_subnet_attributes = true set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.163 16 DEBUG config_tempest.constants [-] Setting [image] image_path = http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.164 16 INFO config_tempest.constants [-] Reading deployer input from file /home/stack/container_tempest/tempest-deployer-input.conf
2020-06-03 12:14:32.164 16 INFO config_tempest.constants [-] Adding options from deployer-input file '/home/stack/container_tempest/tempest-deployer-input.conf'
2020-06-03 12:14:32.165 16 DEBUG config_tempest.constants [-] Setting [auth] use_dynamic_credentials = true set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.165 16 DEBUG config_tempest.constants [-] Setting [compute] region = regionOne set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.165 16 DEBUG config_tempest.constants [-] Setting [compute-feature-enabled] console_output = false set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.165 16 DEBUG config_tempest.constants [-] Setting [identity] region = regionOne set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.166 16 DEBUG config_tempest.constants [-] Setting [image] region = regionOne set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.166 16 DEBUG config_tempest.constants [-] Setting [network] region = regionOne set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.166 16 DEBUG config_tempest.constants [-] Setting [object-storage] region = regionOne set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.167 16 DEBUG config_tempest.constants [-] Setting [orchestration] stack_owner_role = swiftoperator set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.167 16 DEBUG config_tempest.constants [-] Setting [orchestration] region = regionOne set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.167 16 DEBUG config_tempest.constants [-] Setting [volume] backend1_name = tripleo_iscsi set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.167 16 DEBUG config_tempest.constants [-] Setting [volume] region = regionOne set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.168 16 DEBUG config_tempest.constants [-] Setting [volume-feature-enabled] bootable = true set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.168 16 DEBUG config_tempest.constants [-] Setting [auth] admin_username = admin set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.168 16 DEBUG config_tempest.constants [-] Setting [auth] admin_project_name = admin set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.168 16 DEBUG config_tempest.constants [-] Setting [auth] admin_password = 4Kt22EzjfNL1OviYwkO3KiFjA set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.168 16 DEBUG config_tempest.constants [-] Setting [identity] uri = http://10.0.0.111:5000 set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.169 16 DEBUG config_tempest.constants [-] Option '[identity] region = regionOne' was defined by user, NOT overwriting into value 'regionOne' set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:103
2020-06-03 12:14:32.169 16 DEBUG config_tempest.constants [-] Setting [object-storage] reseller_admin = ResellerAdmin set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.169 16 DEBUG config_tempest.constants [-] Setting [identity] uri_v3 = http://10.0.0.111:5000 set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.182 16 DEBUG config_tempest.constants [-] Setting [identity] uri_v3 = http://10.0.0.111:5000/v3 set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:32.704 16 INFO tempest.lib.common.rest_client [req-444bd545-fa8b-45d0-a3e0-8db76c76bb46 ] Request (main): 201 POST http://10.0.0.111:5000/v3/auth/tokens 0.520s
2020-06-03 12:14:32.917 16 INFO tempest.lib.common.rest_client [req-db580f5e-864d-4646-939d-c1e94543b39e ] Request (main): 200 GET http://10.0.0.111:5000/v3/projects 0.211s
2020-06-03 12:14:32.917 16 DEBUG config_tempest.constants [-] Setting [auth] admin_project_id = 71ca2343c4d44b7fa96d8cf2a834495d set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:33.135 16 INFO tempest.lib.common.rest_client [req-9605aea4-3ed6-4474-894a-fd43c8acc7a6 ] Request (main): 200 GET http://10.0.0.111:5000/v3/services 0.212s
2020-06-03 12:14:33.208 16 DEBUG config_tempest.constants [-] Setting [service_available] aodh = True set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:33.209 16 DEBUG config_tempest.constants [-] Setting [service_available] ironic = False set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:33.209 16 INFO config_tempest.constants [-] Service metering has no endpoints
2020-06-03 12:14:33.209 16 DEBUG config_tempest.constants [-] Setting [service_available] ceilometer = True set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:33.215 16 DEBUG config_tempest.constants [-] Option '[compute-feature-enabled] console_output = false' was defined by user, NOT overwriting into value 'True' set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:103
2020-06-03 12:14:33.566 16 INFO tempest.lib.common.rest_client [req-db328f0a-b57c-4e7e-9336-b7c6cb9cf964 ] Request (main): 200 GET http://10.0.0.111:8774/v2.1/os-hosts 0.350s
2020-06-03 12:14:33.569 16 DEBUG config_tempest.constants [-] Setting [compute-feature-enabled] resize = True set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:33.569 16 DEBUG config_tempest.constants [-] Setting [compute] min_microversion = 2.1 set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:33.569 16 DEBUG config_tempest.constants [-] Setting [compute] max_microversion = 2.72 set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:33.570 16 DEBUG config_tempest.constants [-] Setting [service_available] nova = True set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:33.570 16 DEBUG config_tempest.constants [-] Setting [service_available] sahara = False set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:33.570 16 DEBUG config_tempest.constants [-] Setting [service_available] trove = False set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:33.570 16 DEBUG config_tempest.constants [-] Setting [service_available] panko = True set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:33.777 16 DEBUG config_tempest.constants [-] Setting [validation] image_ssh_user = cirros set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:34.616 16 INFO tempest.lib.common.rest_client [req-ad65bfb7-e798-4a47-8e19-46d869cc9114 ] Request (main): 200 GET http://10.0.0.111:9292/v2/images 0.838s
2020-06-03 12:14:34.617 16 DEBUG config_tempest.constants [-] Setting [image] http_image = http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:34.617 16 DEBUG config_tempest.constants [-] Setting [service_available] glance = True set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:34.617 16 DEBUG config_tempest.constants [-] Setting [service_available] zaqar = False set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:34.617 16 DEBUG config_tempest.constants [-] Setting [service_available] gnocchi = True set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:35.422 16 DEBUG config_tempest.constants [-] Setting [service_available] neutron = True set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:36.198 16 INFO tempest.lib.common.rest_client [txc474a33c91a345e797ab1-005ed7942c ] Request (main): 200 GET http://10.0.0.111:8080/healthcheck 0.003s
2020-06-03 12:14:36.371 16 INFO tempest.lib.common.rest_client [req-3d66a67a-9d4c-43fe-95f1-f5c700a77a20 ] Request (main): 200 GET http://10.0.0.111:5000/v3/roles 0.172s
2020-06-03 12:14:36.371 16 INFO config_tempest.constants [-] Creating Member role
2020-06-03 12:14:36.577 16 INFO tempest.lib.common.rest_client [req-356fae59-df42-4b28-90fb-3013d561947d ] Request (main): 409 POST http://10.0.0.111:5000/v3/roles 0.205s
2020-06-03 12:14:36.577 16 INFO config_tempest.constants [-] Role Member already exists
2020-06-03 12:14:36.578 16 DEBUG config_tempest.constants [-] Setting [object-storage] operator_role = admin set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:36.578 16 DEBUG config_tempest.constants [-] Setting [service_available] swift = True set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:36.578 16 DEBUG config_tempest.constants [-] Setting [service_available] octavia = False set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:36.579 16 DEBUG config_tempest.constants [-] Setting [service_available] heat = True set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:36.579 16 DEBUG config_tempest.constants [-] Setting [service_available] manila = False set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:36.579 16 DEBUG config_tempest.constants [-] Setting [service_available] manila = False set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:36.579 16 INFO config_tempest.constants [-] Service metering has no endpoints
2020-06-03 12:14:36.580 16 DEBUG config_tempest.constants [-] Setting [service_available] ceilometer = True set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:37.502 16 DEBUG config_tempest.constants [-] Setting [service_available] cinder = True set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:38.194 16 DEBUG config_tempest.constants [-] Setting [volume] min_microversion = 3.0 set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:38.195 16 DEBUG config_tempest.constants [-] Setting [volume] max_microversion = 3.59 set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:38.195 16 DEBUG config_tempest.constants [-] Setting [service_available] cinder = True set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:38.195 16 DEBUG config_tempest.constants [-] Setting [service_available] mistral = False set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:38.195 16 INFO config_tempest.constants [-] Creating user 'demo' with project 'demo' and password 'secrete'
2020-06-03 12:14:38.319 16 INFO tempest.lib.common.rest_client [req-be950362-64a8-4139-bde1-4d0b378b92b7 ] Request (main): 409 POST http://10.0.0.111:5000/v3/projects 0.123s
2020-06-03 12:14:38.319 16 INFO config_tempest.constants [-] (no change) Project 'demo' already exists
2020-06-03 12:14:38.421 16 INFO tempest.lib.common.rest_client [req-160165e3-8786-46e4-b3fb-a477f22d1ad7 ] Request (main): 200 GET http://10.0.0.111:5000/v3/projects 0.101s
2020-06-03 12:14:38.904 16 INFO tempest.lib.common.rest_client [req-d9e1073c-65ad-43eb-8419-e414f31767c5 ] Request (main): 409 POST http://10.0.0.111:5000/v3/users 0.482s
2020-06-03 12:14:38.904 16 INFO config_tempest.constants [-] User 'demo' already exists.
2020-06-03 12:14:38.904 16 INFO config_tempest.constants [-] Creating user 'alt_demo' with project 'alt_demo' and password 'secrete'
2020-06-03 12:14:39.160 16 INFO tempest.lib.common.rest_client [req-eee4142c-04a2-43d0-90c9-69631e16228e ] Request (main): 409 POST http://10.0.0.111:5000/v3/projects 0.255s
2020-06-03 12:14:39.160 16 INFO config_tempest.constants [-] (no change) Project 'alt_demo' already exists
2020-06-03 12:14:39.289 16 INFO tempest.lib.common.rest_client [req-f530887e-c29c-461a-b2d2-402563981199 ] Request (main): 200 GET http://10.0.0.111:5000/v3/projects 0.128s
2020-06-03 12:14:39.779 16 INFO tempest.lib.common.rest_client [req-63de28e5-afbe-45ac-bf06-13cbbd9783c7 ] Request (main): 409 POST http://10.0.0.111:5000/v3/users 0.489s
2020-06-03 12:14:39.779 16 INFO config_tempest.constants [-] User 'alt_demo' already exists.
2020-06-03 12:14:40.009 16 INFO tempest.lib.common.rest_client [req-c9c4757c-f474-4a2c-827e-cb1f7a9f77b8 ] Request (main): 200 GET http://10.0.0.111:5000/v3/projects 0.229s
2020-06-03 12:14:40.152 16 INFO tempest.lib.common.rest_client [req-036d4733-7023-4739-a7d9-6b92fa837d75 ] Request (main): 200 GET http://10.0.0.111:5000/v3/users 0.143s
2020-06-03 12:14:40.357 16 INFO tempest.lib.common.rest_client [req-a5eb9e1a-1115-4739-abc0-27ef32bc7be1 ] Request (main): 200 GET http://10.0.0.111:5000/v3/roles 0.204s
2020-06-03 12:14:40.503 16 INFO tempest.lib.common.rest_client [req-adf289fc-3f27-43de-8dfc-f8b0f14edaff ] Request (main): 204 PUT http://10.0.0.111:5000/v3/projects/c99f9ebd2af2488f889ba73b8fb35e8c/users/d248c29fbb0d41ccae646aee029dca8d/roles/e14600dc908246f4abd5d653726ae32b 0.145s
2020-06-03 12:14:40.503 16 DEBUG config_tempest.constants [-] User 'admin' was given the 'admin' role in project 'demo' give_role_to_user /usr/lib/python3.6/site-packages/config_tempest/users.py:77
2020-06-03 12:14:40.553 16 INFO tempest.lib.common.rest_client [req-e5791a49-8c6a-4a60-becf-e1559c02f7af ] Request (main): 200 GET http://10.0.0.111:8774/v2.1/flavors 0.049s
2020-06-03 12:14:40.555 16 DEBUG config_tempest.constants [-] Setting [volume] volume_size = 1 set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:40.556 16 INFO config_tempest.constants [-] (no change) Found flavor 'm1.nano'
2020-06-03 12:14:40.556 16 DEBUG config_tempest.constants [-] Setting [compute] flavor_ref = c6e706f5-6f76-4717-9ea8-6f1c935202cc set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:40.556 16 INFO config_tempest.constants [-] (no change) Found flavor 'm1.micro'
2020-06-03 12:14:40.556 16 DEBUG config_tempest.constants [-] Setting [compute] flavor_ref_alt = 1acd9a16-a848-4b24-aac2-e1e026690c25 set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:40.588 16 INFO tempest.lib.common.rest_client [req-3a61106a-c214-4343-9ec1-de261d3c5a2f ] Request (main): 200 GET http://10.0.0.111:9292/v2/images 0.031s
2020-06-03 12:14:40.589 16 INFO config_tempest.constants [-] (no change) Found image 'cirros-0.4.0-x86_64-disk.img'
2020-06-03 12:14:40.589 16 INFO config_tempest.constants [-] Downloading image 6455305f-03f5-41e2-ba65-6607927f11e5 to /home/stack/tempest_workspace/etc/cirros-0.4.0-x86_64-disk.img
2020-06-03 12:14:41.949 16 INFO tempest.lib.common.rest_client [req-7985a7a1-8a5d-4d52-b514-db2561b54a7d ] Request (main): 200 GET http://10.0.0.111:9292/v2/images/6455305f-03f5-41e2-ba65-6607927f11e5/file 1.359s
2020-06-03 12:14:41.949 16 DEBUG config_tempest.constants [-] <class 'bytes'> _download_image /usr/lib/python3.6/site-packages/config_tempest/services/image.py:223
2020-06-03 12:14:41.983 16 INFO tempest.lib.common.rest_client [req-55e70283-8cd2-4fed-8555-e2f0715a8e45 ] Request (main): 200 GET http://10.0.0.111:9292/v2/images 0.026s
2020-06-03 12:14:41.983 16 INFO config_tempest.constants [-] (no change) Found image 'cirros-0.4.0-x86_64-disk.img_alt'
2020-06-03 12:14:42.001 16 INFO tempest.lib.common.rest_client [req-9cefa466-32d1-4cc2-b648-cd6f6a429611 ] Request (main): 200 GET http://10.0.0.111:9292/v2/images/6455305f-03f5-41e2-ba65-6607927f11e5 0.017s
2020-06-03 12:14:42.001 16 DEBUG config_tempest.constants [-] Setting [scenario] img_file = cirros-0.4.0-x86_64-disk.img set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:42.001 16 DEBUG config_tempest.constants [-] Setting [compute] image_ref = 6455305f-03f5-41e2-ba65-6607927f11e5 set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:42.001 16 DEBUG config_tempest.constants [-] Setting [compute] image_ref_alt = dfc798c0-02be-4825-8888-6007bcb5b3ef set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:42.001 16 INFO config_tempest.constants [-] Setting up network
2020-06-03 12:14:42.001 16 DEBUG config_tempest.constants [-] Is neutron present: True create_tempest_networks /usr/lib/python3.6/site-packages/config_tempest/services/network.py:30
2020-06-03 12:14:42.002 16 INFO config_tempest.constants [-] No network supplied, trying auto discover for network
2020-06-03 12:14:42.819 16 INFO tempest.lib.common.rest_client [req-34b6cc9b-65d8-4bc2-8c3d-3719b149978f ] Request (main): 200 GET http://10.0.0.111:9696/v2.0/networks 0.817s
2020-06-03 12:14:42.820 16 INFO config_tempest.constants [-] Found network, using: 2ac64661-590f-4bb9-a482-2ea69349a4d4
2020-06-03 12:14:42.820 16 DEBUG config_tempest.constants [-] Setting [network] public_network_id = 2ac64661-590f-4bb9-a482-2ea69349a4d4 set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:42.820 16 DEBUG config_tempest.constants [-] Setting [network] floating_network_name = nova set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:43.019 16 INFO tempest.lib.common.rest_client [req-d7d46faa-40a0-40b0-a9bc-5c58b96a8e44 ] Request (main): 200 GET http://10.0.0.111:5000/v3/services?type=metering 0.198s
2020-06-03 12:14:43.019 16 DEBUG config_tempest.constants [-] Setting [service_available] ceilometer = True set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:43.019 16 DEBUG config_tempest.constants [-] Setting [compute-feature-enabled] attach_encrypted_volume = False set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:43.019 16 DEBUG config_tempest.constants [-] Setting [heat_plugin] minimal_instance_type = c6e706f5-6f76-4717-9ea8-6f1c935202cc set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:43.020 16 DEBUG config_tempest.constants [-] Setting [heat_plugin] instance_type = 1acd9a16-a848-4b24-aac2-e1e026690c25 set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:43.020 16 DEBUG config_tempest.constants [-] Setting [heat_plugin] minimal_image_ref = 6455305f-03f5-41e2-ba65-6607927f11e5 set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:43.020 16 DEBUG config_tempest.constants [-] Setting [heat_plugin] image_ref = dfc798c0-02be-4825-8888-6007bcb5b3ef set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:43.848 16 INFO tempest.lib.common.rest_client [req-e6786f2d-b68c-4c69-b5d5-6cbc47dc40f4 ] Request (main): 200 GET http://10.0.0.111:8776/v3/71ca2343c4d44b7fa96d8cf2a834495d/os-services?binary=cinder-backup 0.827s
2020-06-03 12:14:43.850 16 DEBUG config_tempest.constants [-] Setting [volume-feature-enabled] backup = False set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:44.632 16 INFO tempest.lib.common.rest_client [req-138f4684-b89b-4482-a929-849663a3dc7e ] Request (main): 200 GET http://10.0.0.111:8776/v3/71ca2343c4d44b7fa96d8cf2a834495d/os-services?binary=cinder-backup 0.781s
2020-06-03 12:14:44.634 16 DEBUG config_tempest.constants [-] Setting [volume-feature-enabled] backup = False set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:47.048 16 DEBUG config_tempest.constants [-] Setting [service_available] horizon = True set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:47.049 16 DEBUG config_tempest.constants [-] Setting [dashboard] dashboard_url = http://10.0.0.111/dashboard/ set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:47.049 16 DEBUG config_tempest.constants [-] Setting [dashboard] login_url = http://10.0.0.111/dashboard/auth/login/ set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:47.049 16 DEBUG config_tempest.constants [-] Setting [identity-feature-enabled] api_v2 = False set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:47.049 16 DEBUG config_tempest.constants [-] Setting [identity-feature-enabled] api_v3 = True set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:47.049 16 DEBUG config_tempest.constants [-] Setting [image-feature-enabled] api_v1 = False set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:47.049 16 DEBUG config_tempest.constants [-] Setting [image-feature-enabled] api_v2 = True set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:47.050 16 DEBUG config_tempest.constants [-] Setting [volume-feature-enabled] api_v2 = False set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:47.050 16 DEBUG config_tempest.constants [-] Setting [volume-feature-enabled] api_v3 = True set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:47.050 16 DEBUG config_tempest.constants [-] Setting [volume-feature-enabled] api_v2 = False set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:47.050 16 DEBUG config_tempest.constants [-] Setting [volume-feature-enabled] api_v3 = True set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:47.060 16 DEBUG config_tempest.constants [-] Setting [identity-feature-enabled] api_extensions = OS-OAUTH1,OS-PKI,OS-REVOKE,OS-FEDERATION,OS-ENDPOINT-POLICY,OS-EC2,OS-SIMPLE-CERT,OS-INHERIT,s3tokens,OS-EP-FILTER,OS-TRUST set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:47.061 16 DEBUG config_tempest.constants [-] Setting [network-feature-enabled] api_extensions = address-scope,agent,agent-resources-synced,allowed-address-pairs,auto-allocated-topology,availability_zone,availability_zone_filter,default-subnetpools,dhcp_agent_scheduler,dns-integration,empty-string-filtering,external-net,extra_dhcp_opt,extraroute,flavors,ip-substring-filtering,router,ext-gw-mode,multi-provider,net-mtu,net-mtu-writable,network_availability_zone,network-ip-availability,pagination,port-mac-address-regenerate,port-resource-request,binding,binding-extended,port-security,project-id,provider,qos,qos-bw-limit-direction,qos-bw-minimum-ingress,qos-default,qos-rule-type-details,qos-rules-alias,quotas,quota_details,rbac-policies,rbac-security-groups,revision-if-match,standard-attr-revisions,port-security-groups-filtering,security-group,service-type,sorting,standard-attr-description,subnet_onboard,subnet-service-types,subnet_allocation,standard-attr-tag,standard-attr-timestamp,trunk,trunk-details set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:47.061 16 DEBUG config_tempest.constants [-] Setting [object-storage-feature-enabled] discoverable_apis = formpost,bulk_delete,versioned_writes,bulk_upload,container_quotas,tempurl,s3api,ratelimit,slo,account_quotas,staticweb set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:47.061 16 DEBUG config_tempest.constants [-] Setting [volume-feature-enabled] api_extensions = os-admin-actions,os-availability-zone,backups,capabilities,cgsnapshots,consistencygroups,os-extended-services,os-extended-snapshot-attributes,os-hosts,qos-specs,os-quota-class-sets,os-quota-sets,OS-SCH-HNT,scheduler-stats,os-services,os-snapshot-actions,os-snapshot-manage,os-snapshot-unmanage,os-types-extra-specs,os-types-manage,os-used-limits,os-volume-actions,os-volume-encryption-metadata,os-vol-host-attr,os-vol-image-meta,os-volume-manage,os-vol-mig-status-attr,os-vol-tenant-attr,os-volume-transfer,os-volume-type-access,encryption,os-volume-unmanage set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:47.061 16 DEBUG config_tempest.constants [-] Setting [volume-feature-enabled] api_extensions = os-admin-actions,os-availability-zone,backups,capabilities,cgsnapshots,consistencygroups,os-extended-services,os-extended-snapshot-attributes,os-hosts,qos-specs,os-quota-class-sets,os-quota-sets,OS-SCH-HNT,scheduler-stats,os-services,os-snapshot-actions,os-snapshot-manage,os-snapshot-unmanage,os-types-extra-specs,os-types-manage,os-used-limits,os-volume-actions,os-volume-encryption-metadata,os-vol-host-attr,os-vol-image-meta,os-volume-manage,os-vol-mig-status-attr,os-vol-tenant-attr,os-volume-transfer,os-volume-type-access,encryption,os-volume-unmanage,os-admin-actions,os-availability-zone,backups,capabilities,cgsnapshots,consistencygroups,os-extended-services,os-extended-snapshot-attributes,os-hosts,qos-specs,os-quota-class-sets,os-quota-sets,OS-SCH-HNT,scheduler-stats,os-services,os-snapshot-actions,os-snapshot-manage,os-snapshot-unmanage,os-types-extra-specs,os-types-manage,os-used-limits,os-volume-actions,os-volume-encryption-metadata,os-vol-host-attr,os-vol-image-meta,os-volume-manage,os-vol-mig-status-attr,os-vol-tenant-attr,os-volume-transfer,os-volume-type-access,encryption,os-volume-unmanage set /usr/lib/python3.6/site-packages/config_tempest/tempest_conf.py:107
2020-06-03 12:14:47.061 16 INFO config_tempest.constants [-] Creating configuration file /home/stack/tempest_workspace/etc/tempest.conf
{2} tempest.api.compute.flavors.test_flavors.FlavorsV2TestJSON.test_get_flavor [0.671925s] ... ok
{2} tempest.api.compute.flavors.test_flavors.FlavorsV2TestJSON.test_list_flavors [0.073702s] ... ok
{5} tempest.api.compute.security_groups.test_security_group_rules.SecurityGroupRulesTestJSON.test_security_group_rules_create [1.913675s] ... ok
{0} tempest.api.identity.admin.v3.test_groups.GroupsV3TestJSON.test_group_users_add_list_delete [5.848250s] ... ok
{5} tempest.api.compute.security_groups.test_security_group_rules.SecurityGroupRulesTestJSON.test_security_group_rules_list [3.657173s] ... ok
{5} setUpClass (tempest.api.identity.admin.v2.test_services.ServicesTestJSON) ... SKIPPED: Identity api v2 is not enabled
{4} tempest.api.compute.security_groups.test_security_groups.SecurityGroupsTestJSON.test_security_groups_create_list_delete [4.623216s] ... ok
{5} tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_api_media_types [0.522259s] ... ok
{5} tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_api_version_resources [0.753507s] ... ok
{5} tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_api_version_statuses [0.351530s] ... ok
{5} tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_list_api_versions [0.013726s] ... ok
{0} tempest.api.identity.admin.v3.test_regions.RegionsTestJSON.test_create_region_with_specific_id [1.803703s] ... ok
{3} tempest.api.compute.servers.test_server_addresses.ServerAddressesTestJSON.test_list_server_addresses [0.087665s] ... ok
{3} tempest.api.compute.servers.test_server_addresses.ServerAddressesTestJSON.test_list_server_addresses_by_network [0.165748s] ... ok
{5} tempest.api.network.test_extensions.ExtensionsTestJSON.test_list_show_extensions [4.124870s] ... ok
{2} tempest.api.network.test_floating_ips.FloatingIPTestJSON.test_create_floating_ip_specifying_a_fixed_ip_address [6.633273s] ... ok
{3} setUpClass (tempest.api.identity.admin.v2.test_users.UsersTestJSON) ... SKIPPED: Identity api v2 is not enabled
{0} tempest.api.image.v2.test_versions.VersionsTest.test_list_versions [0.008491s] ... ok
{2} tempest.api.network.test_floating_ips.FloatingIPTestJSON.test_create_list_show_update_delete_floating_ip [7.298891s] ... ok
{4} tempest.api.identity.admin.v3.test_trusts.TrustsV3TestJSON.test_get_trusts_all [8.285096s] ... ok
{3} tempest.api.identity.admin.v3.test_credentials.CredentialsTestJSON.test_credentials_create_get_update_delete [1.401515s] ... ok
{4} setUpClass (tempest.api.identity.v2.test_api_discovery.TestApiDiscovery) ... SKIPPED: Identity api v2 is not enabled
{4} tempest.api.identity.v3.test_domains.DefaultDomainTestJSON.test_default_domain_exists [0.335796s] ... ok
{6} tempest.api.compute.servers.test_create_server.ServersTestJSON.test_list_servers [0.151909s] ... ok
{6} tempest.api.compute.servers.test_create_server.ServersTestJSON.test_verify_server_details [0.000453s] ... ok
{5} tempest.api.network.test_networks.NetworksIpV6Test.test_create_update_delete_network_subnet [8.856391s] ... ok
{5} tempest.api.network.test_networks.NetworksIpV6Test.test_external_network_visibility [0.220837s] ... ok
{5} tempest.api.network.test_networks.NetworksIpV6Test.test_list_networks [0.129785s] ... ok
{5} tempest.api.network.test_networks.NetworksIpV6Test.test_list_subnets [0.066473s] ... ok
{5} tempest.api.network.test_networks.NetworksIpV6Test.test_show_network [0.191794s] ... ok
{5} tempest.api.network.test_networks.NetworksIpV6Test.test_show_subnet [0.114613s] ... ok
{7} tempest.api.compute.servers.test_create_server.ServersTestBootFromVolume.test_list_servers [0.351417s] ... ok
{7} tempest.api.compute.servers.test_create_server.ServersTestBootFromVolume.test_verify_server_details [0.000813s] ... ok
{0} tempest.api.network.test_networks.BulkNetworkOpsIpV6Test.test_bulk_create_delete_network [10.477330s] ... ok
{3} tempest.api.identity.admin.v3.test_endpoints.EndPointsTestJSON.test_update_endpoint [3.326884s] ... ok
{0} tempest.api.network.test_networks.BulkNetworkOpsIpV6Test.test_bulk_create_delete_port [10.286278s] ... ok
{2} tempest.api.network.test_networks.BulkNetworkOpsTest.test_bulk_create_delete_network [12.057259s] ... ok
{1} tempest.api.compute.servers.test_attach_interfaces.AttachInterfacesUnderV243Test.test_add_remove_fixed_ip [48.972221s] ... ok

Comment 6 Martin Kopec 2020-06-04 17:42:47 UTC
The additional argument '--privileged=true' used when creating the alias per the documentation fixes the issue. The request for modification of the documentation is tracked in the following BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1844152

Comment 7 stchen 2020-09-30 20:07:03 UTC
Closing EOL, OSP 15 has been retired as of Sept 19, 2020


Note You need to log in before you can comment on or make changes to this bug.