stackhpc / stackhpc/openstack-config

KeyError when assigning quotas

Ouverte
#58 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

bug
Langage dominant
Jinja
Étoiles
5
Forks
8
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

When attempting to assign quotas to a project if the quotas changes it will cause a KeyError: 'project_id'.

TASK [stackhpc.openstack.os_projects : Ensure quotas are set] ****************************************************************************************************************************************************************************************************************************************
Friday 22 August 2025  12:49:34 +0000 (0:00:01.327)       0:00:22.558 *********
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: KeyError: 'project_id'
failed: [localhost] (item=demo) => changed=false
  ansible_loop_var: item
  item:
    description: OpenStack demo project
    keypairs:
    - name: id_ed25519
      public_key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICKx4TMa8vtpOe3qHeMX4Z7JZyucBcqlfv8iFY6dZkzB
    name: demo
    project_domain: default
    quotas:
      backup_gigabytes: -1
      backups: -1
      cores: -1
      floatingip: -1
      gigabytes: -1
      injected_file_size: -1
      injected_files: -1
      instances: -1
      key_pairs: -1
      per_volume_gigabytes: -1
      ram: -1
      security_group: -1
      security_group_rule: -1
      snapshots: -1
      volumes: -1
    user_domain: default
    users:
    - description: StackHPC Demo user
      email: demo@stackhpc.com
      name: demo
      password: *****
      roles:
      - member
      - reader
  module_stderr: |-
    Traceback (most recent call last):
      File "/home/stack/.ansible/tmp/ansible-tmp-1755866974.7532272-708515-178033976670647/AnsiballZ_quota.py", line 107, in <module>
        _ansiballz_main()
      File "/home/stack/.ansible/tmp/ansible-tmp-1755866974.7532272-708515-178033976670647/AnsiballZ_quota.py", line 99, in _ansiballz_main
        invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
      File "/home/stack/.ansible/tmp/ansible-tmp-1755866974.7532272-708515-178033976670647/AnsiballZ_quota.py", line 47, in invoke_module
        runpy.run_module(mod_name='ansible_collections.openstack.cloud.plugins.modules.quota', init_globals=dict(_module_fqn='ansible_collections.openstack.cloud.plugins.modules.quota', _modlib_path=modlib_path),
      File "/usr/lib64/python3.9/runpy.py", line 225, in run_module
        return _run_module_code(code, init_globals, run_name, mod_spec)
      File "/usr/lib64/python3.9/runpy.py", line 97, in _run_module_code
        _run_code(code, mod_globals, init_globals,
      File "/usr/lib64/python3.9/runpy.py", line 87, in _run_code
        exec(code, run_globals)
      File "/tmp/ansible_openstack.cloud.quota_payload_85q5nn83/ansible_openstack.cloud.quota_payload.zip/ansible_collections/openstack/cloud/plugins/modules/quota.py", line 560, in <module>
      File "/tmp/ansible_openstack.cloud.quota_payload_85q5nn83/ansible_openstack.cloud.quota_payload.zip/ansible_collections/openstack/cloud/plugins/modules/quota.py", line 556, in main
      File "/tmp/ansible_openstack.cloud.quota_payload_85q5nn83/ansible_openstack.cloud.quota_payload.zip/ansible_collections/openstack/cloud/plugins/module_utils/openstack.py", line 417, in __call__
      File "/tmp/ansible_openstack.cloud.quota_payload_85q5nn83/ansible_openstack.cloud.quota_payload.zip/ansible_collections/openstack/cloud/plugins/modules/quota.py", line 536, in run
      File "/home/stack/openstack-config/ansible/openstack-config-venv/lib64/python3.9/site-packages/openstack/block_storage/v3/_proxy.py", line 1741, in update_quota_set
        return res.commit(self, **query)
      File "/home/stack/openstack-config/ansible/openstack-config-venv/lib64/python3.9/site-packages/openstack/resource.py", line 1793, in commit
        request = self._prepare_request(
      File "/home/stack/openstack-config/ansible/openstack-config-venv/lib64/python3.9/site-packages/openstack/resource.py", line 1251, in _prepare_request
        uri = base_path % self._uri.attributes
    KeyError: 'project_id'
  module_stdout: ''
  msg: |-
    MODULE FAILURE
    See stdout/stderr for the exact error
  rc: 1

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par le module de quotas dans ansible_collections/openstack/cloud/plugins/modules/quota.py autour de la ligne 536, puis examinez l’appel openstack block_storage v3 update_quota_set indiqué dans le traceback. Reproduisez la tâche Ensure quotas are set avec des quotas modifiés. C’est terminé lorsque l’attribution des quotas s’effectue sans l’erreur KeyError: 'project_id'.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
ansible, python
Domaine
cloud, infrastructure
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
52/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.