Bug 2058518
| Summary: | [RHOSP 17.0] swiftclient forbids ceilometer from polling swift objects | |||
|---|---|---|---|---|
| Product: | Red Hat OpenStack | Reporter: | Matthias Runge <mrunge> | |
| Component: | openstack-tripleo-heat-templates | Assignee: | Yadnesh Kulkarni <ykulkarn> | |
| Status: | CLOSED WONTFIX | QA Contact: | Leonid Natapov <lnatapov> | |
| Severity: | high | Docs Contact: | mgeary <mgeary> | |
| Priority: | high | |||
| Version: | 17.0 (Wallaby) | CC: | augol, erpeters, jelynch, lmadsen, mburns, mmagr, mrunge, ykulkarn | |
| Target Milestone: | z1 | Keywords: | Triaged, ZStream | |
| Target Release: | 17.0 | |||
| Hardware: | Unspecified | |||
| OS: | Unspecified | |||
| Whiteboard: | ||||
| Fixed In Version: | openstack-tripleo-heat-templates-14.3.1-0.20221102130639.feca772.el9ost | Doc Type: | Known Issue | |
| Doc Text: |
There is currently a known issue when the Object Storage service (swift) client blocks a Telemetry service (ceilometer) user from fetching object details under the condition of the Telemetry service user having inadequate privileges to poll objects from the Object Storage service. Workaround: Associate the `ResellerAdmin` role with the Telemetry service user by using the command `openstack role add --user ceilometer --project service ResellerAdmin`.
|
Story Points: | --- | |
| Clone Of: | ||||
| : | 2162456 (view as bug list) | Environment: | ||
| Last Closed: | 2023-01-23 13:27:44 UTC | Type: | Bug | |
| Regression: | --- | Mount Type: | --- | |
| Documentation: | --- | CRM: | ||
| Verified Versions: | Category: | --- | ||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
| Cloudforms Team: | --- | Target Upstream Version: | ||
| Embargoed: | ||||
| Bug Depends On: | ||||
| Bug Blocks: | 2126786 | |||
@mrunge any suggestions on how to adjust this? Looks like it's trying to authenticate against an API that maybe doesn't exist? Seems like the configuration is correct, but that the backend systems aren't available for polling. Assigning 'ResellerAdmin' role to ceilometer user seems to fix this issue
~~~
$ openstack role add --user ceilometer --project service ResellerAdmin
~~~
After this ceilometer could poll swift containers of all projects
~~~
2022-07-27 13:58:41.605 15 DEBUG swiftclient [-] RESP BODY: b'[{"name": "testcont", "count": 0, "bytes": 0, "last_modified": "2022-07-26T10:04:29.069490"}]' http_log /usr/lib/python3.9/site-packages/swiftclient/client.py:163
2022-07-27 13:58:41.618 15 DEBUG swiftclient [-] REQ: curl -i None?format=json -X GET -H "X-Auth-Token: gAAAAABi4USRGuiW..." -H "Accept-Encoding: gzip" http_log /usr/lib/python3.9/site-packages/swiftclient/client.py:157
2022-07-27 13:58:41.618 15 DEBUG swiftclient [-] RESP STATUS: 200 OK http_log /usr/lib/python3.9/site-packages/swiftclient/client.py:158
2022-07-27 13:58:41.618 15 DEBUG swiftclient [-] RESP HEADERS: {'content-type': 'application/json; charset=utf-8', 'x-account-container-count': '1', 'x-account-object-count': '2', 'x-account-bytes-used': '32677888', 'x-timestamp': '1658818296.07454', 'x-account-storage-policy-policy-0-container-count': '1', 'x-account-storage-policy-policy-0-object-count': '2', 'x-account-storage-policy-policy-0-bytes-used': '32677888', 'accept-ranges': 'bytes', 'content-length': '98', 'x-account-project-domain-id': 'default', 'x-trans-id': 'txec7ccf4dff924a588e2e1-0062e14491', 'x-openstack-request-id': 'txec7ccf4dff924a588e2e1-0062e14491', 'date': 'Wed, 27 Jul 2022 13:58:41 GMT'} http_log /usr/lib/python3.9/site-packages/swiftclient/client.py:159
2022-07-27 13:58:41.618 15 DEBUG swiftclient [-] RESP BODY: b'[{"name": "glance", "count": 2, "bytes": 32677888, "last_modified": "2022-07-26T06:51:36.138870"}]' http_log /usr/lib/python3.9/site-packages/swiftclient/client.py:163
2022-07-27 13:58:41.629 15 DEBUG swiftclient [-] REQ: curl -i None?format=json -X GET -H "X-Auth-Token: gAAAAABi4USRGuiW..." -H "Accept-Encoding: gzip" http_log /usr/lib/python3.9/site-packages/swiftclient/client.py:157
2022-07-27 13:58:41.629 15 DEBUG swiftclient [-] RESP STATUS: 200 OK http_log /usr/lib/python3.9/site-packages/swiftclient/client.py:158
2022-07-27 13:58:41.629 15 DEBUG swiftclient [-] RESP HEADERS: {'content-type': 'application/json; charset=utf-8', 'content-length': '2', 'x-account-container-count': '0', 'x-account-object-count': '0', 'x-account-bytes-used': '0', 'x-timestamp': '1658930321.62755', 'x-put-timestamp': '1658930321.62755', 'x-trans-id': 'txa96ed7a03940417d9ae94-0062e14491', 'x-openstack-request-id': 'txa96ed7a03940417d9ae94-0062e14491', 'date': 'Wed, 27 Jul 2022 13:58:41 GMT'} http_log /usr/lib/python3.9/site-packages/swiftclient/client.py:159
~~~
Fix merged upstream master https://review.opendev.org/c/openstack/tripleo-heat-templates/+/854033 Forbidden messages appear in OSP17.0.1
openstack-tripleo-heat-templates-14.3.1-0.20221208160327.feca772.el9ost.noarch
polling.yaml
------------
[root@controller-0 ~]# cat /var/lib/config-data/puppet-generated/ceilometer/etc/ceilometer/polling.yaml
---
sources:
- name: some_pollsters
interval: 30
meters:
- cpu
- disk.*
- ip.*
- image.*
- memory
- memory.*
- network.*
- perf.*
- port
- port.*
- switch
- switch.*
- storage.*
- volume.*
-------------------------
2023-01-17 09:01:03.863 14 ERROR ceilometer.polling.manager
2023-01-17 09:01:03.864 14 DEBUG ceilometer.polling.manager [-] Skip pollster network.services.lb.outgoing.bytes, no resources found this cycle poll_and_notify /usr/lib/python3.9/site-packages/ceilometer/polling/manager.py:177
2023-01-17 09:01:03.930 14 WARNING ceilometer.neutron_client [-] The resource could not be found.: neutronclient.common.exceptions.NotFound: The resource could not be found.
2023-01-17 09:01:03.931 14 DEBUG ceilometer.polling.manager [-] Skip pollster network.services.vpn.connections, no resources found this cycle poll_and_notify /usr/lib/python3.9/site-packages/ceilometer/polling/manager.py:177
2023-01-17 09:01:03.931 14 DEBUG ceilometer.polling.manager [-] Skip pollster switch.port.transmit.packets, no resources found this cycle poll_and_notify /usr/lib/python3.9/site-packages/ceilometer/polling/manager.py:177
2023-01-17 09:01:03.931 14 INFO ceilometer.polling.manager [-] Polling pollster storage.objects in the context of some_pollsters
2023-01-17 09:01:03.984 14 INFO swiftclient [-] REQ: curl -i None -I -H "X-Auth-Token: gAAAAABjxmPOS9uQ..."
2023-01-17 09:01:03.984 14 INFO swiftclient [-] RESP STATUS: 403 Forbidden
2023-01-17 09:01:03.985 14 INFO swiftclient [-] RESP HEADERS: {'content-length': '12', 'x-trans-id': 'tx000009c427ba0b07d8b5d-0063c663cf-5ef6-default', 'x-openstack-request-id': 'tx000009c427ba0b07d8b5d-0063c663cf-5ef6-default', 'accept-ranges':
'bytes', 'content-type': 'text/plain; charset=utf-8', 'date': 'Tue, 17 Jan 2023 09:01:03 GMT'}
2023-01-17 09:01:03.985 14 ERROR ceilometer.polling.manager [-] Continue after error from storage.objects: Account HEAD failed: http://172.17.3.95:8080/swift/v1/AUTH_435189f702f5412994c086c6567eee86 403 Forbidden (txn: tx000009c427ba0b07d8b5d-00
63c663cf-5ef6-default): swiftclient.exceptions.ClientException: Account HEAD failed: http://172.17.3.95:8080/swift/v1/AUTH_435189f702f5412994c086c6567eee86 403 Forbidden (txn: tx000009c427ba0b07d8b5d-0063c663cf-5ef6-default)
2023-01-17 09:01:03.985 14 ERROR ceilometer.polling.manager Traceback (most recent call last):
2023-01-17 09:01:03.985 14 ERROR ceilometer.polling.manager File "/usr/lib/python3.9/site-packages/ceilometer/polling/manager.py", line 194, in poll_and_notify
2023-01-17 09:01:03.985 14 ERROR ceilometer.polling.manager for sample in samples:
2023-01-17 09:01:03.985 14 ERROR ceilometer.polling.manager File "/usr/lib/python3.9/site-packages/ceilometer/objectstore/swift.py", line 114, in get_samples
2023-01-17 09:01:03.985 14 ERROR ceilometer.polling.manager for tenant, account in self._iter_accounts(manager.keystone,
2023-01-17 09:01:03.985 14 ERROR ceilometer.polling.manager File "/usr/lib/python3.9/site-packages/ceilometer/objectstore/swift.py", line 77, in _iter_accounts
2023-01-17 09:01:03.985 14 ERROR ceilometer.polling.manager cache[self.CACHE_KEY_METHOD] = list(self._get_account_info(
2023-01-17 09:01:03.985 14 ERROR ceilometer.polling.manager File "/usr/lib/python3.9/site-packages/ceilometer/objectstore/swift.py", line 101, in _get_account_info
2023-01-17 09:01:03.985 14 ERROR ceilometer.polling.manager raise e
2023-01-17 09:01:03.985 14 ERROR ceilometer.polling.manager File "/usr/lib/python3.9/site-packages/ceilometer/objectstore/swift.py", line 93, in _get_account_info
2023-01-17 09:01:03.985 14 ERROR ceilometer.polling.manager yield (t.id, swift_api_method(
2023-01-17 09:01:03.985 14 ERROR ceilometer.polling.manager File "/usr/lib/python3.9/site-packages/swiftclient/client.py", line 924, in head_account
2023-01-17 09:01:03.985 14 ERROR ceilometer.polling.manager raise ClientException.from_response(resp, 'Account HEAD failed', body)
2023-01-17 09:01:03.985 14 ERROR ceilometer.polling.manager swiftclient.exceptions.ClientException: Account HEAD failed: http://172.17.3.95:8080/swift/v1/AUTH_435189f702f5412994c086c6567eee86 403 Forbidden (txn: tx000009c427ba0b07d8b5d-0063c663c
f-5ef6-default)
|
Description of problem: The following polling.yaml file --- sources: - name: some_pollsters interval: 30 meters: - cpu - disk.* - ip.* - image.* - memory - memory.* - network.* - perf.* - port - port.* - switch - switch.* - storage.* - volume.* generated by following the documentation https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/16.2/html/service_telemetry_framework_1.3/assembly-completing-the-stf-configuration_assembly#creating-the-base-configuration-for-stf_assembly-completing-the-stf-configuration causes the following errors in ceilometer/central.log 2022-02-17 17:49:10.917 15 ERROR ceilometer.polling.manager [-] Continue after error from storage.objects: Account HEAD failed: http://10.239.8.138:8080/swift/v1/AUTH_bbeb4893f55840848ad7a598a0e6dcf8 403 Forbidden: swiftclient.exceptions.ClientException: Account HEAD failed: http://10.239.8.138:8080/swift/v1/AUTH_bbeb4893f55840848ad7a598a0e6dcf8 403 Forbidden 2022-02-17 17:49:10.917 15 ERROR ceilometer.polling.manager Traceback (most recent call last): 2022-02-17 17:49:10.917 15 ERROR ceilometer.polling.manager File "/usr/lib/python3.6/site-packages/ceilometer/polling/manager.py", line 187, in poll_and_notify 2022-02-17 17:49:10.917 15 ERROR ceilometer.polling.manager for sample in samples: 2022-02-17 17:49:10.917 15 ERROR ceilometer.polling.manager File "/usr/lib/python3.6/site-packages/ceilometer/objectstore/swift.py", line 113, in get_samples 2022-02-17 17:49:10.917 15 ERROR ceilometer.polling.manager cache, tenants): 2022-02-17 17:49:10.917 15 ERROR ceilometer.polling.manager File "/usr/lib/python3.6/site-packages/ceilometer/objectstore/swift.py", line 80, in _iter_accounts 2022-02-17 17:49:10.917 15 ERROR ceilometer.polling.manager ksclient, tenants)) 2022-02-17 17:49:10.917 15 ERROR ceilometer.polling.manager File "/usr/lib/python3.6/site-packages/ceilometer/objectstore/swift.py", line 99, in _get_account_info 2022-02-17 17:49:10.917 15 ERROR ceilometer.polling.manager raise e 2022-02-17 17:49:10.917 15 ERROR ceilometer.polling.manager File "/usr/lib/python3.6/site-packages/ceilometer/objectstore/swift.py", line 94, in _get_account_info 2022-02-17 17:49:10.917 15 ERROR ceilometer.polling.manager keystone_client.get_auth_token(ksclient))) 2022-02-17 17:49:10.917 15 ERROR ceilometer.polling.manager File "/usr/lib/python3.6/site-packages/swiftclient/client.py", line 871, in head_account 2022-02-17 17:49:10.917 15 ERROR ceilometer.polling.manager raise ClientException.from_response(resp, 'Account HEAD failed', body) 2022-02-17 17:49:10.917 15 ERROR ceilometer.polling.manager swiftclient.exceptions.ClientException: Account HEAD failed: http://10.239.8.138:8080/swift/v1/AUTH_bbeb4893f55840848ad7a598a0e6dcf8 403 Forbidden 2022-02-17 17:49:10.917 15 ERROR ceilometer.polling.manager 2022-02-17 17:49:10.929 15 WARNING ceilometer.neutron_client [-] The resource could not be found.: neutronclient.common.exceptions.NotFound: The resource could not be found. 2022-02-17 17:49:38.403 15 WARNING ceilometer.neutron_client [-] The resource could not be found.: neutronclient.common.exceptions.NotFound: The resource could not be found. 2022-02-17 17:49:38.415 15 WARNING ceilometer.neutron_client [-] The resource could not be found.: neutronclient.common.exceptions.NotFound: The resource could not be found. 2022-02-17 17:49:38.451 15 INFO ceilometer.polling.manager [-] Polling pollster image.size in the context of some_pollsters 2022-02-17 17:49:40.092 15 INFO ceilometer.polling.manager [-] Polling pollster storage.objects.containers in the context of some_pollsters 2022-02-17 17:49:40.416 15 INFO swiftclient [-] REQ: curl -i http://10.239.8.138:8080/swift/v1/AUTH_bbeb4893f55840848ad7a598a0e6dcf8 -I -H "X-Auth-Token: gAAAAABiDoqy4aVP..." 2022-02-17 17:49:40.416 15 INFO swiftclient [-] RESP STATUS: 403 Forbidden 2022-02-17 17:49:40.416 15 INFO swiftclient [-] RESP HEADERS: {'Content-Length': '12', 'X-Trans-Id': 'tx0000000000000000018dc-00620e8ab4-806ad4-default', 'X-Openstack-Request-Id': 'tx0000000000000000018dc-00620e8ab 4-806ad4-default', 'Accept-Ranges': 'bytes', 'Content-Type': 'text/plain; charset=utf-8', 'Date': 'Thu, 17 Feb 2022 17:49:40 GMT'} 2022-02-17 17:49:40.417 15 ERROR ceilometer.polling.manager [-] Continue after error from storage.objects.containers: Account HEAD failed: http://10.239.8.138:8080/swift/v1/AUTH_bbeb4893f55840848ad7a598a0e6dcf8 403 Forbidden: swiftclient.exceptions.ClientException: Account HEAD failed: http://10.239.8.138:8080/swift/v1/AUTH_bbeb4893f55840848ad7a598a0e6dcf8 403 Forbidden 2022-02-17 17:49:40.417 15 ERROR ceilometer.polling.manager Traceback (most recent call last): 2022-02-17 17:49:40.417 15 ERROR ceilometer.polling.manager File "/usr/lib/python3.6/site-packages/ceilometer/polling/manager.py", line 187, in poll_and_notify 2022-02-17 17:49:40.417 15 ERROR ceilometer.polling.manager for sample in samples: 2022-02-17 17:49:40.417 15 ERROR ceilometer.polling.manager File "/usr/lib/python3.6/site-packages/ceilometer/objectstore/swift.py", line 149, in get_samples 2022-02-17 17:49:40.417 15 ERROR ceilometer.polling.manager cache, tenants): 2022-02-17 17:49:40.417 15 ERROR ceilometer.polling.manager File "/usr/lib/python3.6/site-packages/ceilometer/objectstore/swift.py", line 80, in _iter_accounts 2022-02-17 17:49:40.417 15 ERROR ceilometer.polling.manager ksclient, tenants)) 2022-02-17 17:49:40.417 15 ERROR ceilometer.polling.manager File "/usr/lib/python3.6/site-packages/ceilometer/objectstore/swift.py", line 99, in _get_account_info 2022-02-17 17:49:40.417 15 ERROR ceilometer.polling.manager raise e 2022-02-17 17:49:40.417 15 ERROR ceilometer.polling.manager File "/usr/lib/python3.6/site-packages/ceilometer/objectstore/swift.py", line 94, in _get_account_info 2022-02-17 17:49:40.417 15 ERROR ceilometer.polling.manager keystone_client.get_auth_token(ksclient))) 2022-02-17 17:49:40.417 15 ERROR ceilometer.polling.manager File "/usr/lib/python3.6/site-packages/swiftclient/client.py", line 871, in head_account 2022-02-17 17:49:40.417 15 ERROR ceilometer.polling.manager raise ClientException.from_response(resp, 'Account HEAD failed', body) 2022-02-17 17:49:40.417 15 ERROR ceilometer.polling.manager swiftclient.exceptions.ClientException: Account HEAD failed: http://10.239.8.138:8080/swift/v1/AUTH_bbeb4893f55840848ad7a598a0e6dcf8 403 Forbidden 2022-02-17 17:49:40.417 15 ERROR ceilometer.polling.manager 2022-02-17 17:49:40.442 15 INFO ceilometer.polling.manager [-] Polling pollster storage.objects.size in the context of some_pollsters