Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 2279782

Summary: If application is not in CephPools, then do not try to set it
Product: Red Hat OpenStack Reporter: John Fulton <johfulto>
Component: tripleo-ansibleAssignee: Manoj Katari <mkatari>
Status: CLOSED ERRATA QA Contact: Alfredo <alfrgarc>
Severity: low Docs Contact:
Priority: low    
Version: 17.1 (Wallaby)CC: fpantano, mariel
Target Milestone: z4Keywords: Triaged
Target Release: 17.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: tripleo-ansible-3.3.1-17.1.20240521070751.8debef3.el9ost Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-11-21 09:40:22 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:

Description John Fulton 2024-05-08 18:30:54 UTC
Stack update fails with:

2024-05-08 10:19:38,280 p=356942 u=stack n=ansible | 2024-05-08 10:19:38.279445 | 5254006d-8384-59af-b1b3-000000000106 |      FATAL | Enable application on Ceph pools | iajohn01-overcloud-controller-0 | error={"msg": "The task includes an option with an undefined variable. The error was: 'dict object' has no attribute 'application'\n\nThe error appears to be in '/usr/share/ansible/roles/tripleo_cephadm/tasks/pools.yaml': line 32, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n    - name: Enable application on Ceph pools\n      ^ here\n"}

It happens here:

https://github.com/openstack-archive/tripleo-ansible/blob/stable/wallaby/tripleo_ansible/roles/tripleo_cephadm/tasks/pools.yaml#L32-L38

The input should be defined in THT like this:

  CephPools:
    - name: volumes
      pg_num: 256
      pgp_num: 256
      application: rbd

but if it were like this:

  CephPools:
    - name: volumes
      pg_num: 256
      pgp_num: 256

It's better to not attempt to set the application and cause the update to fail.

Thus we could add something like the following to pools.yaml's "Enable application on Ceph pools" task.

  when:
    - tripleo_cephadm_pools is defined
    - tripleo_cephadm_pools | length > 0
    - tripleo_cephadm_pools.application is defined

Comment 1 Manoj Katari 2024-05-09 06:19:24 UTC
Thanks John for identifying the issue and fix.

'tripleo_cephadm_pools.application ' will not work as it is the list of dictionaries as shown below

tripleo_cephadm_pools: [{'name': 'vms', 'rule_name': 'replicated_rule', 'application': 'rbd'}, {'name': 'images', 'rule_name': 'replicated_rule', 'application': 'rbd'}, {'name': 'backups', 'rule_name': 'replicated_rule', 'application': 'rbd'}, {'application': 'rbd', 'name': 'volumes', 'rule_name': 'HDD'}, {'application': 'rbd', 'name': 'cinderfast', 'pg_num': 32, 'rule_name': 'SSD'}]


so 'when: item.application is defined' should be added for the task 'Enable application on Ceph pools'.

Comment 10 errata-xmlrpc 2024-11-21 09:40:22 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (RHOSP 17.1.4 bug fix and enhancement advisory), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2024:9974