)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"5651460eed93ca2f267327a40829500a79385435","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"cd2e8d89_fe049f59","updated":"2024-03-06 22:33:29.000000000","message":"I\u0027m going to need some guidance on how to test, it is currently failing with\n\n  You are not authorized to perform the requested action: identity:create_application_credential.\n\nhttps://zuul.opendev.org/t/openstack/build/4a46086cd12c4b49985f82eefa61273e/log/job-output.txt#29252","commit_id":"ea8b8a615d47b1ae327b1caf3c5203b6d8b7d20c"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"fc9f55d723a221bb5d59df94037b14d7746a7b9f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"a71a096a_54a823b6","updated":"2024-03-07 06:46:15.000000000","message":"not a real review yet, just some comments while I was looking at the CI failure","commit_id":"0bd739bf015410d18a78bb35a9c044ea626ba89c"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"caf703e65f464b5de5845d03b8fef8f82a26015f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"30bef321_73a17c1b","updated":"2024-03-13 20:06:36.000000000","message":"recheck CI is green now","commit_id":"67b864e49ab541d267eeb10c524f1a6a57ed6d52"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"aa0a67ce2e96fcc07588832bcf6e5cd23353f3a7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"6e23459c_2bc4f974","updated":"2024-06-26 01:57:51.000000000","message":"Could this get some reviews from core reviewers please?","commit_id":"b56b8d2f0bb2f5a8adf69148eadc65d36dd5e9fa"}],"ci/roles/application_credential/tasks/main.yml":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"fc9f55d723a221bb5d59df94037b14d7746a7b9f","unresolved":true,"context_lines":[{"line_number":14,"context_line":"  openstack.cloud.role_assignment:"},{"line_number":15,"context_line":"    cloud: \"{{ cloud }}\""},{"line_number":16,"context_line":"    domain: default"},{"line_number":17,"context_line":"    project: ansible_project"},{"line_number":18,"context_line":"    role: admin"},{"line_number":19,"context_line":"    user: \"{{ user.user.id }}\""},{"line_number":20,"context_line":"  register: role_assignment"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"4c4b826b_a9c80be0","line":17,"updated":"2024-03-07 06:46:15.000000000","message":"I think you\u0027ll need to also create the project? cf. ci/roles/role_assignment/tasks/main.yml","commit_id":"0bd739bf015410d18a78bb35a9c044ea626ba89c"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"79933a2a78e4a256a229cea5d39dce2cf038a89b","unresolved":true,"context_lines":[{"line_number":14,"context_line":"  openstack.cloud.role_assignment:"},{"line_number":15,"context_line":"    cloud: \"{{ cloud }}\""},{"line_number":16,"context_line":"    domain: default"},{"line_number":17,"context_line":"    project: ansible_project"},{"line_number":18,"context_line":"    role: admin"},{"line_number":19,"context_line":"    user: \"{{ user.user.id }}\""},{"line_number":20,"context_line":"  register: role_assignment"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9eed1507_66493b61","line":17,"in_reply_to":"4c4b826b_a9c80be0","updated":"2024-03-07 20:23:35.000000000","message":"Or, I\u0027ll try the demo project","commit_id":"0bd739bf015410d18a78bb35a9c044ea626ba89c"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"06c82a47f3d06df8dad9d56d40792aadc72f8b75","unresolved":false,"context_lines":[{"line_number":14,"context_line":"  openstack.cloud.role_assignment:"},{"line_number":15,"context_line":"    cloud: \"{{ cloud }}\""},{"line_number":16,"context_line":"    domain: default"},{"line_number":17,"context_line":"    project: ansible_project"},{"line_number":18,"context_line":"    role: admin"},{"line_number":19,"context_line":"    user: \"{{ user.user.id }}\""},{"line_number":20,"context_line":"  register: role_assignment"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"acd87f53_fb5c7eb4","line":17,"in_reply_to":"9eed1507_66493b61","updated":"2024-03-08 03:33:01.000000000","message":"Done","commit_id":"0bd739bf015410d18a78bb35a9c044ea626ba89c"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"fc9f55d723a221bb5d59df94037b14d7746a7b9f","unresolved":true,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"- name: Assert application credential changed"},{"line_number":79,"context_line":"  assert:"},{"line_number":80,"context_line":"     that: project is changed"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"- name: Delete user"},{"line_number":83,"context_line":"  openstack.cloud.identity_user:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"253116de_40d057bb","line":80,"range":{"start_line":80,"start_character":11,"end_line":80,"end_character":18},"updated":"2024-03-07 06:46:15.000000000","message":"appcred?","commit_id":"0bd739bf015410d18a78bb35a9c044ea626ba89c"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"79933a2a78e4a256a229cea5d39dce2cf038a89b","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"- name: Assert application credential changed"},{"line_number":79,"context_line":"  assert:"},{"line_number":80,"context_line":"     that: project is changed"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"- name: Delete user"},{"line_number":83,"context_line":"  openstack.cloud.identity_user:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"65b7e1d2_14ead78f","line":80,"range":{"start_line":80,"start_character":11,"end_line":80,"end_character":18},"in_reply_to":"253116de_40d057bb","updated":"2024-03-07 20:23:35.000000000","message":"Done","commit_id":"0bd739bf015410d18a78bb35a9c044ea626ba89c"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"c3187d988a1367f1d148a25af54ac0609b40f3a5","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    state: present"},{"line_number":7,"context_line":"    name: ansible_creds"},{"line_number":8,"context_line":"    description: dummy description"},{"line_number":9,"context_line":"  register: appcred"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"- name: Assert return values of application_credential module"},{"line_number":12,"context_line":"  assert:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"791c819e_1c6ca705","line":9,"updated":"2024-03-12 01:43:49.000000000","message":"This is failing with Forbidden and I think I see now why:\n- These tests are run with the admin user, which is a system scoped user\n- Application credentials can only be created for the user associated with the current session [1]\n- The policy for allowing create application credential is project scoped\n\nTherefore this test will never pass when being run as user admin. Is there a way to run the test as user demo?\n\n[1] https://opendev.org/openstack/keystone/src/branch/master/keystone/api/users.py#L642\n[2] https://opendev.org/openstack/keystone/src/branch/master/keystone/common/policies/application_credential.py#L70","commit_id":"198d50d15d7ccd75e5e6b5370fba8be7c337cc3a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"653505817702b483ff90fbad1eba1a0084b6fdb4","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    state: present"},{"line_number":7,"context_line":"    name: ansible_creds"},{"line_number":8,"context_line":"    description: dummy description"},{"line_number":9,"context_line":"  register: appcred"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"- name: Assert return values of application_credential module"},{"line_number":12,"context_line":"  assert:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"e598bfde_0729b0d7","line":9,"in_reply_to":"791c819e_1c6ca705","updated":"2024-03-12 19:30:29.000000000","message":"So admin can also be project scoped...","commit_id":"198d50d15d7ccd75e5e6b5370fba8be7c337cc3a"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"4ef0c957fcdb502b1c484533be3a011a44c9a6ee","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    state: present"},{"line_number":7,"context_line":"    name: ansible_creds"},{"line_number":8,"context_line":"    description: dummy description"},{"line_number":9,"context_line":"  register: appcred"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"- name: Assert return values of application_credential module"},{"line_number":12,"context_line":"  assert:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"7a7d5ec0_2a8b8b6a","line":9,"in_reply_to":"e598bfde_0729b0d7","updated":"2024-03-13 01:04:34.000000000","message":"Done","commit_id":"198d50d15d7ccd75e5e6b5370fba8be7c337cc3a"}],"ci/run-collection.yml":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"fc9f55d723a221bb5d59df94037b14d7746a7b9f","unresolved":true,"context_lines":[{"line_number":6,"context_line":"  roles:"},{"line_number":7,"context_line":"    - { role: address_scope, tags: address_scope }"},{"line_number":8,"context_line":"    - { role: auth, tags: auth }"},{"line_number":9,"context_line":"    - { role: application_credential, tags: application_credential }"},{"line_number":10,"context_line":"    - { role: catalog_service, tags: catalog_service }"},{"line_number":11,"context_line":"    - { role: coe_cluster, tags: coe_cluster }"},{"line_number":12,"context_line":"    - { role: coe_cluster_template, tags: coe_cluster_template }"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"324eb4ac_dfac65ea","line":9,"updated":"2024-03-07 06:46:15.000000000","message":"nit: ap comes before au","commit_id":"0bd739bf015410d18a78bb35a9c044ea626ba89c"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"79933a2a78e4a256a229cea5d39dce2cf038a89b","unresolved":false,"context_lines":[{"line_number":6,"context_line":"  roles:"},{"line_number":7,"context_line":"    - { role: address_scope, tags: address_scope }"},{"line_number":8,"context_line":"    - { role: auth, tags: auth }"},{"line_number":9,"context_line":"    - { role: application_credential, tags: application_credential }"},{"line_number":10,"context_line":"    - { role: catalog_service, tags: catalog_service }"},{"line_number":11,"context_line":"    - { role: coe_cluster, tags: coe_cluster }"},{"line_number":12,"context_line":"    - { role: coe_cluster_template, tags: coe_cluster_template }"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"5751d795_06cc7fa3","line":9,"in_reply_to":"324eb4ac_dfac65ea","updated":"2024-03-07 20:23:35.000000000","message":"Done","commit_id":"0bd739bf015410d18a78bb35a9c044ea626ba89c"}],"plugins/modules/application_credential.py":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"fc9f55d723a221bb5d59df94037b14d7746a7b9f","unresolved":true,"context_lines":[{"line_number":235,"context_line":"                           application_credential\u003dcreds)"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        elif state \u003d\u003d \u0027absent\u0027 and creds:"},{"line_number":238,"context_line":"            # Delete creds"},{"line_number":239,"context_line":"            self.exit_json(changed\u003dTrue)"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        elif state \u003d\u003d \u0027absent\u0027 and not creds:"}],"source_content_type":"text/x-python","patch_set":4,"id":"c86f910b_1309d7e7","line":238,"updated":"2024-03-07 06:46:15.000000000","message":"this is missing the actual delete?","commit_id":"0bd739bf015410d18a78bb35a9c044ea626ba89c"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"79933a2a78e4a256a229cea5d39dce2cf038a89b","unresolved":false,"context_lines":[{"line_number":235,"context_line":"                           application_credential\u003dcreds)"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        elif state \u003d\u003d \u0027absent\u0027 and creds:"},{"line_number":238,"context_line":"            # Delete creds"},{"line_number":239,"context_line":"            self.exit_json(changed\u003dTrue)"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        elif state \u003d\u003d \u0027absent\u0027 and not creds:"}],"source_content_type":"text/x-python","patch_set":4,"id":"53638fc4_abcee685","line":238,"in_reply_to":"c86f910b_1309d7e7","updated":"2024-03-07 20:23:35.000000000","message":"Done","commit_id":"0bd739bf015410d18a78bb35a9c044ea626ba89c"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"08c38ccea6306fc4bc1defdb8be95e03bd1d2f30","unresolved":true,"context_lines":[{"line_number":85,"context_line":"  state:"},{"line_number":86,"context_line":"    description:"},{"line_number":87,"context_line":"      - Should the resource be present or absent."},{"line_number":88,"context_line":"      - Application credentials are immutable so running with an an existing present"},{"line_number":89,"context_line":"      - credential will result in the credential being deleted and recreated."},{"line_number":90,"context_line":"    choices: [present, absent]"},{"line_number":91,"context_line":"    default: present"}],"source_content_type":"text/x-python","patch_set":5,"id":"4ffad146_b52d1d92","line":88,"range":{"start_line":88,"start_character":62,"end_line":88,"end_character":67},"updated":"2024-03-08 02:03:21.000000000","message":"nit: \u0027an\u0027 needed just once.","commit_id":"ad715d93930e4800987cf9187aeedcebedae95fb"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"06c82a47f3d06df8dad9d56d40792aadc72f8b75","unresolved":false,"context_lines":[{"line_number":85,"context_line":"  state:"},{"line_number":86,"context_line":"    description:"},{"line_number":87,"context_line":"      - Should the resource be present or absent."},{"line_number":88,"context_line":"      - Application credentials are immutable so running with an an existing present"},{"line_number":89,"context_line":"      - credential will result in the credential being deleted and recreated."},{"line_number":90,"context_line":"    choices: [present, absent]"},{"line_number":91,"context_line":"    default: present"}],"source_content_type":"text/x-python","patch_set":5,"id":"19de4398_7a260bd3","line":88,"range":{"start_line":88,"start_character":62,"end_line":88,"end_character":67},"in_reply_to":"4ffad146_b52d1d92","updated":"2024-03-08 03:33:01.000000000","message":"Done","commit_id":"ad715d93930e4800987cf9187aeedcebedae95fb"}]}
