Hello to eveyrone,

Please, could someone help me with swift capabilities not working when I'm tempesting openstack test stack ? 

Tempest : 

rm -rf /tmp/tempest-lock/; refstack-client test -v -c /opt/tempest/tempest.conf -- --regex tempest.api.object_storage.test_account_quotas_negative.AccountQuotasNegativeTest

(.venv) root@ca6353106d83:/opt/refstack-client# rm -rf /tmp/tempest-lock/; refstack-client test -v -c /opt/tempest/tempest.conf -- --regex tempest.api.object_storage.test_account_quotas_negative.AccountQuotasNegativeTest
2021-12-13 17:44:33.001 4358 INFO tempest [-] Using tempest config file /etc/tempest/tempest.conf
2021-12-13 17:44:33,839 refstack_client:518 INFO Starting Tempest test...
2021-12-13 17:44:33.839 4358 INFO refstack_client [-] Starting Tempest test...
{0} setUpClass (tempest.api.object_storage.test_account_quotas_negative.AccountQuotasNegativeTest) [0.000000s] ... FAILED

Captured traceback:
~~~~~~~~~~~~~~~~~~~
    Traceback (most recent call last):

      File "/opt/refstack-client/.tempest/tempest/test.py", line 181, in setUpClass
    raise value.with_traceback(trace)

      File "/opt/refstack-client/.tempest/tempest/test.py", line 174, in setUpClass
    cls.resource_setup()

      File "/opt/refstack-client/.tempest/tempest/api/object_storage/test_account_quotas_negative.py", line 36, in resource_setup
    super(AccountQuotasNegativeTest, cls).resource_setup()

      File "/opt/refstack-client/.tempest/tempest/api/object_storage/base.py", line 95, in resource_setup
    body = cls.capabilities_client.list_capabilities()

      File "/opt/refstack-client/.tempest/tempest/lib/services/object_storage/capabilities_client.py", line 32, in list_capabilities
    self._error_checker(resp, body)

      File "/opt/refstack-client/.tempest/tempest/lib/common/rest_client.py", line 799, in _error_checker
    raise exceptions.Unauthorized(resp_body, resp=resp)

    tempest.lib.exceptions.Unauthorized: Unauthorized
Details: {'code': 401, 'title': 'Unauthorized', 'message': 'The request you have made requires authentication.'}


==============================
Failed 1 tests - output below:
==============================

setUpClass (tempest.api.object_storage.test_account_quotas_negative.AccountQuotasNegativeTest)
----------------------------------------------------------------------------------------------

Captured traceback:
~~~~~~~~~~~~~~~~~~~
    Traceback (most recent call last):

      File "/opt/refstack-client/.tempest/tempest/test.py", line 181, in setUpClass
    raise value.with_traceback(trace)

      File "/opt/refstack-client/.tempest/tempest/test.py", line 174, in setUpClass
    cls.resource_setup()

      File "/opt/refstack-client/.tempest/tempest/api/object_storage/test_account_quotas_negative.py", line 36, in resource_setup
    super(AccountQuotasNegativeTest, cls).resource_setup()

      File "/opt/refstack-client/.tempest/tempest/api/object_storage/base.py", line 95, in resource_setup
    body = cls.capabilities_client.list_capabilities()

      File "/opt/refstack-client/.tempest/tempest/lib/services/object_storage/capabilities_client.py", line 32, in list_capabilities
    self._error_checker(resp, body)

      File "/opt/refstack-client/.tempest/tempest/lib/common/rest_client.py", line 799, in _error_checker
    raise exceptions.Unauthorized(resp_body, resp=resp)

    tempest.lib.exceptions.Unauthorized: Unauthorized
Details: {'code': 401, 'title': 'Unauthorized', 'message': 'The request you have made requires authentication.'}



======
Totals
======
Ran: 1 tests in 0.0000 sec.
 - Passed: 0
 - Skipped: 0
 - Expected Fail: 0
 - Unexpected Success: 0
 - Failed: 1
Sum of execute time for each test: 0.0000 sec.

==============
Worker Balance
==============
 - Worker 0 (1 tests) => 0:00:00
2021-12-13 17:44:43,144 refstack_client:581 INFO Tempest test complete.
2021-12-13 17:44:43.144 4358 INFO refstack_client [-] Tempest test complete.
2021-12-13 17:44:43,146 refstack_client:582 INFO Subunit results located in: /opt/refstack-client/.tempest/.stestr/137
2021-12-13 17:44:43.146 4358 INFO refstack_client [-] Subunit results located in: /opt/refstack-client/.tempest/.stestr/137
2021-12-13 17:44:43,148 refstack_client:585 INFO Number of passed tests: 0
2021-12-13 17:44:43.148 4358 INFO refstack_client [-] Number of passed tests: 0
2021-12-13 17:44:43,150 refstack_client:597 INFO JSON results saved in: /opt/refstack-client/.tempest/.stestr/137.json
2021-12-13 17:44:43.150 4358 INFO refstack_client [-] JSON results saved in: /opt/refstack-client/.tempest/.stestr/137.json


TEMPEST LOG : 

    Response - Headers: {'date': 'Mon, 13 Dec 2021 16:44:41 GMT', 'server': 'Apache', 'content-length': '8013', 'x-subject-token': '<omitted>', 'vary': 'X-Auth-Token', 'x-openstack-request-id': 'req-00b11c98-7ffa-4a1a-88b1-a054fda5d7e9', 'content-type': 'application/json', 'connection': 'close', 'status': '201', 'content-location': 'http://192.168.205.254:35357/v3/auth/tokens'}
        Body: b'{"token": {"methods": ["password"], "user": {"domain": {"id": "default", "name": "Default"}, "id": "23ebe05900764afaa29f72519d40693a", "name": "refstack", "password_expires_at": null}, "audit_ids": ["4UgDYqQoSla7SWJOdjHXng"], "expires_at": "2021-12-14T16:44:42.000000Z", "issued_at": "2021-12-13T16:44:42.000000Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "704cf29c27d045199d11a11fe62206b6", "name": "refstack"}, "is_domain": false, "roles": [{"id": "89125ace2bc945af8f12d889c9f5589b", "name": "_member_"}, {"id": "47da66772503466881afc1ae391141e7", "name": "swiftoperator"}, {"id": "e47f85a3982f4a18a44d24d6c2ed6588", "name": "ResellerAdmin"}], "catalog": [{"endpoints": [{"id": "27daafd92ace480da6cf0fcaf4c054d7", "interface": "internal", "region_id": "RegionOne", "url": "http://192.168.205.254:8000/v1", "region": "RegionOne"}, {"id": "8ffc139d5a6c4d86b06557b01956dcb7", "interface": "admin", "region_id": "RegionOne", "url": "http://192.168.205.254:8000/v1", "region": "RegionOne"}, {"id": "e4b48ef6f9cd4bbea5f2e0fb9bf16af1", "interface": "public", "region_id": "RegionOne", "url": "https://api.refstack.ultimum.cloud:8000/v1", "region": "RegionOne"}], "id": "10b7ca67118d45dca197b8ac17f29349", "type": "cloudformation", "name": "heat-cfn"}, {"endpoints": [{"id": "06788107c3d94af9976b9fb4b3011d4f", "interface": "public", "region_id": "RegionOne", "url": "https://api.refstack.ultimum.cloud:5000", "region": "RegionOne"}, {"id": "0d745366b77546f7bd24259c04810b8b", "interface": "internal", "region_id": "RegionOne", "url": "http://192.168.205.254:5000", "region": "RegionOne"}, {"id": "1771c125743b4485b818a2aaa4d6f913", "interface": "admin", "region_id": "RegionOne", "url": "http://192.168.205.254:35357", "region": "RegionOne"}], "id": "1ee3179487894931a223ed3caaf8cdb5", "type": "identity", "name": "keystone"}, {"endpoints": [{"id": "1ce9a0af0c14454aa6043b5efe32dddb", "interface": "internal", "region_id": "RegionOne", "url": "http://192.168.205.254:9001", "region": "RegionOne"}, {"id": "5bcfbaa0af46423ab3de1e789affa187", "interface": "admin", "region_id": "RegionOne", "url": "http://192.168.205.254:9001", "region": "RegionOne"}, {"id": "cbc613e8806a48ac98cf4cc42cca80f2", "interface": "public", "region_id": "RegionOne", "url": "https://api.refstack.ultimum.cloud:9001", "region": "RegionOne"}], "id": "493ace4e817d4eae9aa4a1341bd01046", "type": "dns", "name": "designate"}, {"endpoints": [{"id": "18bea710b4284f5387081eac6833dc9e", "interface": "public", "region_id": "RegionOne", "url": "https://api.refstack.ultimum.cloud:8774/v2/704cf29c27d045199d11a11fe62206b6", "region": "RegionOne"}, {"id": "7f1bd52d8b154bc7973c0f32c57103f9", "interface": "internal", "region_id": "RegionOne", "url": "http://192.168.205.254:8774/v2/704cf29c27d045199d11a11fe62206b6", "region": "RegionOne"}, {"id": "c28543c29f574cc6b4320fba45394a83", "interface": "admin", "region_id": "RegionOne", "url": "http://192.168.205.254:8774/v2/704cf29c27d045199d11a11fe62206b6", "region": "RegionOne"}], "id": "52d1f52dc8f44e5ba7a40732a660a288", "type": "compute_legacy", "name": "nova_legacy"}, {"endpoints": [{"id": "33d722f6c2cf4865b3487b8c4ce96c14", "interface": "admin", "region_id": "RegionOne", "url": "http://192.168.205.254:9696", "region": "RegionOne"}, {"id": "4744e2aa77cb4ba186752fb0ef25e9d3", "interface": "internal", "region_id": "RegionOne", "url": "http://192.168.205.254:9696", "region": "RegionOne"}, {"id": "4a980da3677c429ebf645a0e1733949c", "interface": "public", "region_id": "RegionOne", "url": "https://api.refstack.ultimum.cloud:9696", "region": "RegionOne"}], "id": "56866ea275ec4f5e8f805a08f040c8e0", "type": "network", "name": "neutron"}, {"endpoints": [{"id": "4550e2b070aa4bd6a07ab00d72ef4266", "interface": "admin", "region_id": "RegionOne", "url": "http://192.168.205.254:8780", "region": "RegionOne"}, {"id": "86fc799751384f709c450db05d523d93", "interface": "public", "region_id": "RegionOne", "url": "https://api.refstack.ultimum.cloud:8780", "region": "RegionOne"}, {"id": "bfb36483e5dc40a5bfbf1b4ae6bf60cb", "interface": "internal", "region_id": _log_request_full /opt/refstack-client/.tempest/tempest/lib/common/rest_client.py:450
2021-12-13 17:44:42.789 4369 INFO tempest.lib.common.rest_client [req-4ee89585-59ff-4f5a-8ba3-9eebb1d5e6aa ] Request (AccountQuotasNegativeTest:setUpClass): 201 POST http://192.168.205.254:35357/v3/auth/tokens 0.548s
2021-12-13 17:44:42.790 4369 DEBUG tempest.lib.common.rest_client [req-4ee89585-59ff-4f5a-8ba3-9eebb1d5e6aa ] Request - Headers: {'Content-Type': 'application/json', 'Accept': 'application/json'}
        Body: <omitted>
    Response - Headers: {'date': 'Mon, 13 Dec 2021 16:44:42 GMT', 'server': 'Apache', 'content-length': '8015', 'x-subject-token': '<omitted>', 'vary': 'X-Auth-Token', 'x-openstack-request-id': 'req-4ee89585-59ff-4f5a-8ba3-9eebb1d5e6aa', 'content-type': 'application/json', 'connection': 'close', 'status': '201', 'content-location': 'http://192.168.205.254:35357/v3/auth/tokens'}
        Body: b'{"token": {"methods": ["password"], "user": {"domain": {"id": "default", "name": "Default"}, "id": "adcde758a0d5439ba6f8a1a35d641726", "name": "refstack2", "password_expires_at": null}, "audit_ids": ["0clvtk_FQQWVN-RRLSkCWg"], "expires_at": "2021-12-14T16:44:42.000000Z", "issued_at": "2021-12-13T16:44:42.000000Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "2aabe1b9860c44a08eabdc3133538089", "name": "refstack2"}, "is_domain": false, "roles": [{"id": "e47f85a3982f4a18a44d24d6c2ed6588", "name": "ResellerAdmin"}, {"id": "47da66772503466881afc1ae391141e7", "name": "swiftoperator"}, {"id": "89125ace2bc945af8f12d889c9f5589b", "name": "_member_"}], "catalog": [{"endpoints": [{"id": "27daafd92ace480da6cf0fcaf4c054d7", "interface": "internal", "region_id": "RegionOne", "url": "http://192.168.205.254:8000/v1", "region": "RegionOne"}, {"id": "8ffc139d5a6c4d86b06557b01956dcb7", "interface": "admin", "region_id": "RegionOne", "url": "http://192.168.205.254:8000/v1", "region": "RegionOne"}, {"id": "e4b48ef6f9cd4bbea5f2e0fb9bf16af1", "interface": "public", "region_id": "RegionOne", "url": "https://api.refstack.ultimum.cloud:8000/v1", "region": "RegionOne"}], "id": "10b7ca67118d45dca197b8ac17f29349", "type": "cloudformation", "name": "heat-cfn"}, {"endpoints": [{"id": "06788107c3d94af9976b9fb4b3011d4f", "interface": "public", "region_id": "RegionOne", "url": "https://api.refstack.ultimum.cloud:5000", "region": "RegionOne"}, {"id": "0d745366b77546f7bd24259c04810b8b", "interface": "internal", "region_id": "RegionOne", "url": "http://192.168.205.254:5000", "region": "RegionOne"}, {"id": "1771c125743b4485b818a2aaa4d6f913", "interface": "admin", "region_id": "RegionOne", "url": "http://192.168.205.254:35357", "region": "RegionOne"}], "id": "1ee3179487894931a223ed3caaf8cdb5", "type": "identity", "name": "keystone"}, {"endpoints": [{"id": "1ce9a0af0c14454aa6043b5efe32dddb", "interface": "internal", "region_id": "RegionOne", "url": "http://192.168.205.254:9001", "region": "RegionOne"}, {"id": "5bcfbaa0af46423ab3de1e789affa187", "interface": "admin", "region_id": "RegionOne", "url": "http://192.168.205.254:9001", "region": "RegionOne"}, {"id": "cbc613e8806a48ac98cf4cc42cca80f2", "interface": "public", "region_id": "RegionOne", "url": "https://api.refstack.ultimum.cloud:9001", "region": "RegionOne"}], "id": "493ace4e817d4eae9aa4a1341bd01046", "type": "dns", "name": "designate"}, {"endpoints": [{"id": "18bea710b4284f5387081eac6833dc9e", "interface": "public", "region_id": "RegionOne", "url": "https://api.refstack.ultimum.cloud:8774/v2/2aabe1b9860c44a08eabdc3133538089", "region": "RegionOne"}, {"id": "7f1bd52d8b154bc7973c0f32c57103f9", "interface": "internal", "region_id": "RegionOne", "url": "http://192.168.205.254:8774/v2/2aabe1b9860c44a08eabdc3133538089", "region": "RegionOne"}, {"id": "c28543c29f574cc6b4320fba45394a83", "interface": "admin", "region_id": "RegionOne", "url": "http://192.168.205.254:8774/v2/2aabe1b9860c44a08eabdc3133538089", "region": "RegionOne"}], "id": "52d1f52dc8f44e5ba7a40732a660a288", "type": "compute_legacy", "name": "nova_legacy"}, {"endpoints": [{"id": "33d722f6c2cf4865b3487b8c4ce96c14", "interface": "admin", "region_id": "RegionOne", "url": "http://192.168.205.254:9696", "region": "RegionOne"}, {"id": "4744e2aa77cb4ba186752fb0ef25e9d3", "interface": "internal", "region_id": "RegionOne", "url": "http://192.168.205.254:9696", "region": "RegionOne"}, {"id": "4a980da3677c429ebf645a0e1733949c", "interface": "public", "region_id": "RegionOne", "url": "https://api.refstack.ultimum.cloud:9696", "region": "RegionOne"}], "id": "56866ea275ec4f5e8f805a08f040c8e0", "type": "network", "name": "neutron"}, {"endpoints": [{"id": "4550e2b070aa4bd6a07ab00d72ef4266", "interface": "admin", "region_id": "RegionOne", "url": "http://192.168.205.254:8780", "region": "RegionOne"}, {"id": "86fc799751384f709c450db05d523d93", "interface": "public", "region_id": "RegionOne", "url": "https://api.refstack.ultimum.cloud:8780", "region": "RegionOne"}, {"id": "bfb36483e5dc40a5bfbf1b4ae6bf60cb", "interface": "internal", "region_id _log_request_full /opt/refstack-client/.tempest/tempest/lib/common/rest_client.py:450
2021-12-13 17:44:42.849 4369 INFO tempest.lib.common.rest_client [tx815e181e33fb4854b2631-0061b7787a ] Request (AccountQuotasNegativeTest:setUpClass): 401 GET https://api.refstack.ultimum.cloud:8080/info 0.049s
2021-12-13 17:44:42.849 4369 DEBUG tempest.lib.common.rest_client [tx815e181e33fb4854b2631-0061b7787a ] Request - Headers: {'Content-Type': 'application/json', 'Accept': 'application/json'}
        Body: None
    Response - Headers: {'content-type': 'application/json', 'content-length': '114', 'www-authenticate': 'Keystone uri="http://192.168.205.254:5000"', 'x-trans-id': 'tx815e181e33fb4854b2631-0061b7787a', 'x-openstack-request-id': 'tx815e181e33fb4854b2631-0061b7787a', 'date': 'Mon, 13 Dec 2021 16:44:42 GMT', 'connection': 'close', 'status': '401', 'content-location': 'https://api.refstack.ultimum.cloud:8080/info'}
        Body: b'{"error": {"code": 401, "title": "Unauthorized", "message": "The request you have made requires authentication."}}' _log_request_full /opt/refstack-client/.tempest/tempest/lib/common/rest_client.py:450



Test from command line  and from curl 

. /etc/kolla/refstack.sh ; curl  -H "X-Auth-Token: $(openstack token issue -f value -c id)" https://api.refstack.ultimum.cloud:8080/info
/usr/lib/python3/dist-packages/secretstorage/dhcrypto.py:15: CryptographyDeprecationWarning: int_from_bytes is deprecated, use int.from_bytes instead
  from cryptography.utils import int_from_bytes
/usr/lib/python3/dist-packages/secretstorage/util.py:19: CryptographyDeprecationWarning: int_from_bytes is deprecated, use int.from_bytes instead
  from cryptography.utils import int_from_bytes
{"swift": {"version": "2.27.1.dev9", "strict_cors_mode": true, "policies": [{"name": "Policy-0", "aliases": "Policy-0", "default": true}], "allow_account_management": true, "account_autocreate": true, "max_file_size": 5368709122, "max_meta_name_length": 128, "max_meta_value_length": 256, "max_meta_count": 90, "max_meta_overall_size": 4096, "max_header_size": 8192, "max_object_name_length": 1024, "container_listing_limit": 10000, "account_listing_limit": 10000, "max_account_name_length": 256, "max_container_name_length": 256, "extra_header_count": 0}, "container_sync": {"realms": {}}, "bulk_upload": {"max_containers_per_extraction": 10000, "max_failed_extractions": 1000}, "bulk_delete": {"max_deletes_per_request": 10000, "max_failed_deletes": 1000}, "tempurl": {"methods": ["GET", "HEAD", "PUT", "POST", "DELETE"], "incoming_remove_headers": ["x-timestamp"], "incoming_allow_headers": [], "outgoing_remove_headers": ["x-object-meta-*"], "outgoing_allow_headers": ["x-object-meta-public-*"], "allowed_digests": ["sha1", "sha256", "sha512"]}, "ratelimit": {"account_ratelimit": 0.0, "max_sleep_time_seconds": 60.0, "container_ratelimits": [], "container_listing_ratelimits": []}, "container_quotas": {}, "account_quotas": {}, "slo": {"max_manifest_segments": 1000, "max_manifest_size": 8388608, "yield_frequency": 10, "min_segment_size": 1, "allow_async_delete": false}}


Swiftclient : 

ubuntu@deploy:/opt/kolla-ansible$  . /etc/kolla/refstack.sh ; swift --os-auth-url http://192.168.205.254:5000/v3 --auth-version 3 --os-project-name refstack --os-project-domain-name default  --os-username refstack --os-user-domain-name default  --os-password refstack capabilities
/usr/lib/python3/dist-packages/secretstorage/dhcrypto.py:15: CryptographyDeprecationWarning: int_from_bytes is deprecated, use int.from_bytes instead
  from cryptography.utils import int_from_bytes
/usr/lib/python3/dist-packages/secretstorage/util.py:19: CryptographyDeprecationWarning: int_from_bytes is deprecated, use int.from_bytes instead
  from cryptography.utils import int_from_bytes
Capabilities GET failed: http://192.168.205.254:8080/info 401 Unauthorized  [first 60 chars of response] b'{"error": {"code": 401, "title": "Unauthorized", "message": '
Failed Transaction ID: txc1d8607e26eb4cd587459-0061b7791b



It looks like swift client is broken, isn't it  ? 

Thank you very much,
Kevko




Michal Arbet
Openstack Engineer

Ultimum Technologies a.s.
Na Poříčí 1047/26, 11000 Praha 1
Czech Republic

+420 604 228 897 
michal.arbet@ultimum.io
https://ultimum.io