Skip to content

[Openstack] Not possible to synchronise a new tenant offer when using a domain other than the one used by Openstack administrator #65

@Ketchup31

Description

@Ketchup31

Hi,

I am trying to setup a new offering for a openstack tenant.

I created:

  1. A new domain
  2. A new project in this domain
  3. A new user with Admin rights
  4. Affect the user to this domain

I can login to Openstack with credentials I created in steps above.

I set in Waldur values requested in attributes but I get this error message in "old" admin portal:

Forbidden('You are not authorized to perform the requested action: identity:list_domains. (HTTP 403) (Request-ID: req-a0c252f8-6203-46fd-8654-9e603d0aa215)')

If I set the values with openstack administrator account, it works. But i do not want to use the domain of the admin account, and wish to create a dedicated domain where all projects created via Waldur will be hosted.

Do you have any idea about what i did wrong or what I can do?

Thank you for your help.

Best regards,
Pascal

Waldur latest (04/04/2025 evening)
docker-compose install

waldur-mastermind-worker  | [2025-04-05 06:27:42,323: ERROR/ForkPoolWorker-8] Task waldur_core.core.tasks.IndependentBackendMethodTask[784d6e2e-fe12-4d44-80a2-a591138a1aeb] raised unexpected: OpenStackBackendError(Forbidden('You are not authorized to perform the requested action: identity:list_domains. (HTTP 403) (Request-ID: req-9d5e9d2b-7d62-469d-9542-6594a911de22)'))
waldur-mastermind-worker  | Traceback (most recent call last):
waldur-mastermind-worker  |   File "/usr/src/waldur/src/waldur_openstack/backend.py", line 248, in pull_tenants
waldur-mastermind-worker  |     backend_tenants = keystone.projects.list(domain=self._get_domain())
waldur-mastermind-worker  |                                                     ^^^^^^^^^^^^^^^^^^
waldur-mastermind-worker  |   File "/usr/src/waldur/src/waldur_openstack/backend.py", line 281, in _get_domain
waldur-mastermind-worker  |     return keystone.domains.find(name=self.settings.domain or "Default")
waldur-mastermind-worker  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
waldur-mastermind-worker  |   File "/usr/local/lib/python3.11/site-packages/keystoneclient/base.py", line 75, in func
waldur-mastermind-worker  |     return f(*args, **new_kwargs)
waldur-mastermind-worker  |            ^^^^^^^^^^^^^^^^^^^^^^
waldur-mastermind-worker  |   File "/usr/local/lib/python3.11/site-packages/keystoneclient/base.py", line 438, in find
waldur-mastermind-worker  |     elements = self._list(
waldur-mastermind-worker  |                ^^^^^^^^^^^
waldur-mastermind-worker  |   File "/usr/local/lib/python3.11/site-packages/keystoneclient/base.py", line 125, in _list
waldur-mastermind-worker  |     resp, body = self.client.get(url, **kwargs)
waldur-mastermind-worker  |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
waldur-mastermind-worker  |   File "/usr/local/lib/python3.11/site-packages/keystoneauth1/adapter.py", line 673, in get
waldur-mastermind-worker  |     return self.request(url, 'GET', **kwargs)
waldur-mastermind-worker  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
waldur-mastermind-worker  |   File "/usr/local/lib/python3.11/site-packages/keystoneauth1/adapter.py", line 657, in request
waldur-mastermind-worker  |     resp = self._request(url, method, **kwargs)
waldur-mastermind-worker  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
waldur-mastermind-worker  |   File "/usr/local/lib/python3.11/site-packages/keystoneauth1/adapter.py", line 294, in _request
waldur-mastermind-worker  |     return self.session.request(url, method, **kwargs)
waldur-mastermind-worker  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
waldur-mastermind-worker  |   File "/usr/local/lib/python3.11/site-packages/keystoneauth1/session.py", line 1118, in request
waldur-mastermind-worker  |     raise exceptions.from_response(resp, method, url)
waldur-mastermind-worker  | keystoneauth1.exceptions.http.Forbidden: You are not authorized to perform the requested action: identity:list_domains. (HTTP 403) (Request-ID: req-9d5e9d2b-7d62-469d-9542-6594a911de22)
waldur-mastermind-worker  |
waldur-mastermind-worker  | During handling of the above exception, another exception occurred:
waldur-mastermind-worker  |
waldur-mastermind-worker  | Traceback (most recent call last):
waldur-mastermind-worker  |   File "/usr/local/lib/python3.11/site-packages/celery/app/trace.py", line 453, in trace_task
waldur-mastermind-worker  |     R = retval = fun(*args, **kwargs)
waldur-mastermind-worker  |                  ^^^^^^^^^^^^^^^^^^^^
waldur-mastermind-worker  |   File "/usr/local/lib/python3.11/site-packages/celery/app/trace.py", line 736, in __protected_call__
waldur-mastermind-worker  |     return self.run(*args, **kwargs)
waldur-mastermind-worker  |            ^^^^^^^^^^^^^^^^^^^^^^^^^
waldur-mastermind-worker  |   File "/usr/src/waldur/src/waldur_core/core/tasks.py", line 111, in run
waldur-mastermind-worker  |     result = self.execute(instance, *self.args, **self.kwargs)
waldur-mastermind-worker  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
waldur-mastermind-worker  |   File "/usr/src/waldur/src/waldur_core/core/tasks.py", line 270, in execute
waldur-mastermind-worker  |     getattr(backend, backend_method)(*args, **kwargs)
waldur-mastermind-worker  |   File "/usr/src/waldur/src/waldur_core/structure/backend.py", line 53, in sync
waldur-mastermind-worker  |     self.pull_resources()
waldur-mastermind-worker  |   File "/usr/src/waldur/src/waldur_openstack/backend.py", line 242, in pull_resources
waldur-mastermind-worker  |     self.pull_tenants()
waldur-mastermind-worker  |   File "/usr/src/waldur/src/waldur_openstack/backend.py", line 250, in pull_tenants
waldur-mastermind-worker  |     raise OpenStackBackendError(e)
waldur-mastermind-worker  | waldur_openstack.exceptions.OpenStackBackendError: You are not authorized to perform the requested action: identity:list_domains. (HTTP 403) (Request-ID: req-9d5e9d2b-7d62-469d-9542-6594a911de22)
waldur-mastermind-worker  | [2025-04-05 06:27:42,325: INFO/MainProcess] Task waldur_core.core.tasks.ErrorStateTransitionTask[b30f467a-6771-405a-9d5f-259615b73c09] received
waldur-mastermind-worker  | [2025-04-05 06:27:42,355: ERROR/ForkPoolWorker-1] Instance: structure.servicesettings:1.
waldur-mastermind-worker  | Error: Forbidden('You are not authorized to perform the requested action: identity:list_domains. (HTTP 403) (Request-ID: req-9d5e9d2b-7d62-469d-9542-6594a911de22)').
waldur-mastermind-worker  | Traceback (most recent call last):
waldur-mastermind-worker  |   File "/usr/src/waldur/src/waldur_openstack/backend.py", line 248, in pull_tenants
waldur-mastermind-worker  |     backend_tenants = keystone.projects.list(domain=self._get_domain())
waldur-mastermind-worker  |                                                     ^^^^^^^^^^^^^^^^^^
waldur-mastermind-worker  |   File "/usr/src/waldur/src/waldur_openstack/backend.py", line 281, in _get_domain
waldur-mastermind-worker  |     return keystone.domains.find(name=self.settings.domain or "Default")
waldur-mastermind-worker  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
waldur-mastermind-worker  |   File "/usr/local/lib/python3.11/site-packages/keystoneclient/base.py", line 75, in func
waldur-mastermind-worker  |     return f(*args, **new_kwargs)
waldur-mastermind-worker  |            ^^^^^^^^^^^^^^^^^^^^^^
waldur-mastermind-worker  |   File "/usr/local/lib/python3.11/site-packages/keystoneclient/base.py", line 438, in find
waldur-mastermind-worker  |     elements = self._list(
waldur-mastermind-worker  |                ^^^^^^^^^^^
waldur-mastermind-worker  |   File "/usr/local/lib/python3.11/site-packages/keystoneclient/base.py", line 125, in _list
waldur-mastermind-worker  |     resp, body = self.client.get(url, **kwargs)
waldur-mastermind-worker  |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
waldur-mastermind-worker  |   File "/usr/local/lib/python3.11/site-packages/keystoneauth1/adapter.py", line 673, in get
waldur-mastermind-worker  |     return self.request(url, 'GET', **kwargs)
waldur-mastermind-worker  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
waldur-mastermind-worker  |   File "/usr/local/lib/python3.11/site-packages/keystoneauth1/adapter.py", line 657, in request
waldur-mastermind-worker  |     resp = self._request(url, method, **kwargs)
waldur-mastermind-worker  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
waldur-mastermind-worker  |   File "/usr/local/lib/python3.11/site-packages/keystoneauth1/adapter.py", line 294, in _request
waldur-mastermind-worker  |     return self.session.request(url, method, **kwargs)
waldur-mastermind-worker  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
waldur-mastermind-worker  |   File "/usr/local/lib/python3.11/site-packages/keystoneauth1/session.py", line 1118, in request
waldur-mastermind-worker  |     raise exceptions.from_response(resp, method, url)
waldur-mastermind-worker  | keystoneauth1.exceptions.http.Forbidden: You are not authorized to perform the requested action: identity:list_domains. (HTTP 403) (Request-ID: req-9d5e9d2b-7d62-469d-9542-6594a911de22)
waldur-mastermind-worker  |
waldur-mastermind-worker  | During handling of the above exception, another exception occurred:
waldur-mastermind-worker  |
waldur-mastermind-worker  | Traceback (most recent call last):
waldur-mastermind-worker  |   File "/usr/local/lib/python3.11/site-packages/celery/app/trace.py", line 453, in trace_task
waldur-mastermind-worker  |     R = retval = fun(*args, **kwargs)
waldur-mastermind-worker  |                  ^^^^^^^^^^^^^^^^^^^^
waldur-mastermind-worker  |   File "/usr/local/lib/python3.11/site-packages/celery/app/trace.py", line 736, in __protected_call__
waldur-mastermind-worker  |     return self.run(*args, **kwargs)
waldur-mastermind-worker  |            ^^^^^^^^^^^^^^^^^^^^^^^^^
waldur-mastermind-worker  |   File "/usr/src/waldur/src/waldur_core/core/tasks.py", line 111, in run
waldur-mastermind-worker  |     result = self.execute(instance, *self.args, **self.kwargs)
waldur-mastermind-worker  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
waldur-mastermind-worker  |   File "/usr/src/waldur/src/waldur_core/core/tasks.py", line 270, in execute
waldur-mastermind-worker  |     getattr(backend, backend_method)(*args, **kwargs)
waldur-mastermind-worker  |   File "/usr/src/waldur/src/waldur_core/structure/backend.py", line 53, in sync
waldur-mastermind-worker  |     self.pull_resources()
waldur-mastermind-worker  |   File "/usr/src/waldur/src/waldur_openstack/backend.py", line 242, in pull_resources
waldur-mastermind-worker  |     self.pull_tenants()
waldur-mastermind-worker  |   File "/usr/src/waldur/src/waldur_openstack/backend.py", line 250, in pull_tenants
waldur-mastermind-worker  |     raise OpenStackBackendError(e)
waldur-mastermind-worker  | waldur_openstack.exceptions.OpenStackBackendError: You are not authorized to perform the requested action: identity:list_domains. (HTTP 403) (Request-ID: req-9d5e9d2b-7d62-469d-9542-6594a911de22)
waldur-mastermind-worker  | NoneType: None
waldur-mastermind-worker  | [2025-04-05 06:27:42,360: INFO/ForkPoolWorker-1] State of ServiceSettings instance `XXX Tenant (OpenStack)` (PK: 1) changed from UPDATING to ERRED, with method `set_erred`
waldur-mastermind-worker  | [2025-04-05 06:27:42,367: INFO/ForkPoolWorker-1] Task waldur_core.core.tasks.ErrorStateTransitionTask[b30f467a-6771-405a-9d5f-259615b73c09] succeeded in 0.041079137998167425s: None

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions