)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"b1920f696a9c0ffdd8f6b67a64327c0245602764","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"46ff0c35_f01aeb70","updated":"2022-06-21 05:50:48.000000000","message":"AFAIK endpoints should be removed when we removed the associated services. There are still users left but I think we can leave them for manual cleanup, because these does not affect access to API.","commit_id":"a829311e2c25a770b1f6431d6eaa3ffaff20de1e"},{"author":{"_account_id":30073,"name":"Brendan Shephard","email":"bshephar@bne-home.net","username":"bshephar"},"change_message_id":"9a3d7e2e472dc0e046ce9a0f3da84b1b48a18442","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"dc5fd69b_edb4a788","updated":"2022-06-21 12:18:47.000000000","message":"recheck","commit_id":"4e15c9e72f1854fa7ff46b75760b93ee4e642125"},{"author":{"_account_id":30073,"name":"Brendan Shephard","email":"bshephar@bne-home.net","username":"bshephar"},"change_message_id":"2b3d683d0c4e8ca660505b3dae15c82fa0dadd2c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"0dce5418_397e1f04","updated":"2022-06-27 08:30:11.000000000","message":"recheck","commit_id":"1d9093bbefa0433b974a2d104b4e7aeffb600f9b"}],"tripleo_ansible/roles/tripleo_keystone_resources/tasks/cleanup.yml":[{"author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"change_message_id":"30c332ae26238d2aaa4146a39edfece7762ae872","unresolved":true,"context_lines":[{"line_number":14,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"# under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"- name: Set fact to remove services"},{"line_number":18,"context_line":"  set_fact:"},{"line_number":19,"context_line":"    removed_services: {}"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"- name: Cleanup keystone services that have been removed"},{"line_number":22,"context_line":"  block:"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"c74ff9ae_c893d40d","line":19,"range":{"start_line":17,"start_character":0,"end_line":19,"end_character":24},"updated":"2022-06-22 11:16:39.000000000","message":"probably set this in defaults.","commit_id":"ea9c4d050752bf0729b5b99e35920152c3625f62"},{"author":{"_account_id":30073,"name":"Brendan Shephard","email":"bshephar@bne-home.net","username":"bshephar"},"change_message_id":"2891952d9083af2e3548dbe45f55ba58404b97bc","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"# under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"- name: Set fact to remove services"},{"line_number":18,"context_line":"  set_fact:"},{"line_number":19,"context_line":"    removed_services: {}"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"- name: Cleanup keystone services that have been removed"},{"line_number":22,"context_line":"  block:"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"8df06ce7_351fadb8","line":19,"range":{"start_line":17,"start_character":0,"end_line":19,"end_character":24},"in_reply_to":"c74ff9ae_c893d40d","updated":"2022-06-27 01:42:46.000000000","message":"Ack","commit_id":"ea9c4d050752bf0729b5b99e35920152c3625f62"},{"author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"change_message_id":"30c332ae26238d2aaa4146a39edfece7762ae872","unresolved":true,"context_lines":[{"line_number":29,"context_line":"      removed_services: \"{{ removed_services | combine({item.Name: item.Type}) }}\""},{"line_number":30,"context_line":"    loop: \"{{ keystone_service_list.stdout }}\""},{"line_number":31,"context_line":"    when:"},{"line_number":32,"context_line":"      - item.Name not in tripleo_keystone_resources_catalog_config"},{"line_number":33,"context_line":"      - item.Name !\u003d \"keystone\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  - name: Delete keystone services not enabled"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"00ad7756_5678507e","line":32,"range":{"start_line":32,"start_character":25,"end_line":32,"end_character":66},"updated":"2022-06-22 11:16:39.000000000","message":"we can further filter it either here with \u0027dict2items | haskey(attribute\u003d\u0027service\u0027)| list\u0027.","commit_id":"ea9c4d050752bf0729b5b99e35920152c3625f62"},{"author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"change_message_id":"1679ccefda9921434716db71dbe6c5ebdd54216d","unresolved":true,"context_lines":[{"line_number":29,"context_line":"      removed_services: \"{{ removed_services | combine({item.Name: item.Type}) }}\""},{"line_number":30,"context_line":"    loop: \"{{ keystone_service_list.stdout }}\""},{"line_number":31,"context_line":"    when:"},{"line_number":32,"context_line":"      - item.Name not in tripleo_keystone_resources_catalog_config"},{"line_number":33,"context_line":"      - item.Name !\u003d \"keystone\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  - name: Delete keystone services not enabled"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"7c1d5316_0d95344a","line":32,"range":{"start_line":32,"start_character":25,"end_line":32,"end_character":66},"in_reply_to":"00ad7756_5678507e","updated":"2022-06-28 09:33:43.000000000","message":"I see things without service attributes. Would have been good to ignore those when checking. Though we don\u0027t expect services/endpoints for those existing.\n\nkeystone_resources:\n  cinder:\n    users:\n      cinder:\n        password: UAJOAm1UcTkrgoV0VDdmP8w88\n        roles:\n        - admin\n        - service\n  cinderv3:\n    endpoints:\n      admin: http://172.17.1.57:8776/v3/%(tenant_id)s\n      internal: http://172.17.1.57:8776/v3/%(tenant_id)s\n      public: http://10.0.0.102:8776/v3/%(tenant_id)s\n    region: regionOne\n    service: volumev3\n    users:\n      cinderv3:\n        password: UAJOAm1UcTkrgoV0VDdmP8w88\n        roles:\n        - admin\n        - service","commit_id":"ea9c4d050752bf0729b5b99e35920152c3625f62"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c85e61bdef4d4378b4fd7a92bd091b4c6980f49d","unresolved":true,"context_lines":[{"line_number":29,"context_line":"      removed_services: \"{{ removed_services | combine({item.Name: item.Type}) }}\""},{"line_number":30,"context_line":"    loop: \"{{ keystone_service_list.stdout }}\""},{"line_number":31,"context_line":"    when:"},{"line_number":32,"context_line":"      - item.Name not in tripleo_keystone_resources_catalog_config"},{"line_number":33,"context_line":"      - item.Name !\u003d \"keystone\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  - name: Delete keystone services not enabled"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"1c79df3e_334f07fb","line":32,"range":{"start_line":32,"start_character":25,"end_line":32,"end_character":66},"in_reply_to":"7c1d5316_0d95344a","updated":"2022-06-30 00:31:22.000000000","message":"I think that is quite specific to cinder or manila which exposes different services per api version, and it\u0027d be rare to remove these services (the main objective is to leverage this clean up in undercloud upgrade afaik), but yeah would be better to address that in a follow-up.","commit_id":"ea9c4d050752bf0729b5b99e35920152c3625f62"}],"tripleo_ansible/roles/tripleo_keystone_resources/tasks/main.yml":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"5cd7f548785ba3beb781be2c842174686c9ff123","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"- name: Run cleanup tasks"},{"line_number":69,"context_line":"  include_tasks: cleanup.yml"},{"line_number":70,"context_line":"  when: tripleo_keystone_resources_cleanup"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"- name: Create Keystone Roles"},{"line_number":73,"context_line":"  include_tasks: roles.yml"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"7df69109_30bc2492","line":70,"range":{"start_line":70,"start_character":2,"end_line":70,"end_character":42},"updated":"2022-06-27 02:51:27.000000000","message":"just leaving the local discussion for records.\n\nWe better provide a flag to disable this clean up, to avoid unexpected clean up in case any 3rd party software is integrated outside of TripleO.","commit_id":"3a89aa3eda864a901093542fdf5fa011fd84f143"}],"tripleo_ansible/roles/tripleo_keystone_resources/tasks/services.yml":[{"author":{"_account_id":30073,"name":"Brendan Shephard","email":"bshephar@bne-home.net","username":"bshephar"},"change_message_id":"8ffcb433b86b8c45bbf2ff30a99dc971cbf5cdbb","unresolved":true,"context_lines":[{"line_number":61,"context_line":"      - item !\u003d \"keystone\""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"  - name: Delete keystone services not enabled"},{"line_number":64,"context_line":"    ansible.builtin.shell: \u003e"},{"line_number":65,"context_line":"      openstack service delete \"{{ item }}\""},{"line_number":66,"context_line":"    loop: \"{{ removed_services }}\""},{"line_number":67,"context_line":"    register: cleanup_result"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"33393992_ebe88161","line":64,"updated":"2022-06-21 05:29:48.000000000","message":"Why not use `openstack.cloud.catalog_service`? Because I need the service type and name, which would increase the complexity of what information we need to gather from keystone on line 47. It would need to be formatted into a new data structure to be used with the module.\n\nIt reduces complexity to just use the shell module for this purpose.","commit_id":"0897f241636b35f1fd1b6fdbf69f3c242d581960"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"b1920f696a9c0ffdd8f6b67a64327c0245602764","unresolved":true,"context_lines":[{"line_number":61,"context_line":"      - item !\u003d \"keystone\""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"  - name: Delete keystone services not enabled"},{"line_number":64,"context_line":"    ansible.builtin.shell: \u003e"},{"line_number":65,"context_line":"      openstack service delete \"{{ item }}\""},{"line_number":66,"context_line":"    loop: \"{{ removed_services }}\""},{"line_number":67,"context_line":"    register: cleanup_result"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"655fb4df_a59731eb","line":64,"in_reply_to":"33393992_ebe88161","updated":"2022-06-21 05:50:48.000000000","message":"+1. We already use that module in tht[1].\n\n[1] https://github.com/openstack/tripleo-heat-templates/blob/8cb7c81d2094c0bdfd735dcef45f02db5b195199/deployment/cinder/cinder-api-container-puppet.yaml#L429","commit_id":"0897f241636b35f1fd1b6fdbf69f3c242d581960"},{"author":{"_account_id":30073,"name":"Brendan Shephard","email":"bshephar@bne-home.net","username":"bshephar"},"change_message_id":"a37991e84d9d1b475c394648c49a2e06a50118e2","unresolved":true,"context_lines":[{"line_number":61,"context_line":"      - item !\u003d \"keystone\""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"  - name: Delete keystone services not enabled"},{"line_number":64,"context_line":"    ansible.builtin.shell: \u003e"},{"line_number":65,"context_line":"      openstack service delete \"{{ item }}\""},{"line_number":66,"context_line":"    loop: \"{{ removed_services }}\""},{"line_number":67,"context_line":"    register: cleanup_result"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"ae9ca9b8_00bc3880","line":64,"in_reply_to":"655fb4df_a59731eb","updated":"2022-06-21 06:01:05.000000000","message":"We use it in this file too:\nhttps://review.opendev.org/c/openstack/tripleo-ansible/+/846902/3/tripleo_ansible/roles/tripleo_keystone_resources/tasks/services.yml#18\n\nIt just increases the complexity of the solution though. Using Shell is quite simple and clean and I don\u0027t need to format a new data structure out of stdout values that I get from `openstack service list`.","commit_id":"0897f241636b35f1fd1b6fdbf69f3c242d581960"},{"author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"change_message_id":"adc788ac360cb8986d4c6a988a8cd8a66b7172e2","unresolved":true,"context_lines":[{"line_number":61,"context_line":"      - item !\u003d \"keystone\""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"  - name: Delete keystone services not enabled"},{"line_number":64,"context_line":"    ansible.builtin.shell: \u003e"},{"line_number":65,"context_line":"      openstack service delete \"{{ item }}\""},{"line_number":66,"context_line":"    loop: \"{{ removed_services }}\""},{"line_number":67,"context_line":"    register: cleanup_result"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"04c2666c_7367e6b4","line":64,"in_reply_to":"655fb4df_a59731eb","updated":"2022-06-21 06:38:16.000000000","message":"openstack service list -c \"Name\" -c \"Type\" -f json would give a list(?). I think we should use the available module or command everywhere. But I won\u0027t block it for that.","commit_id":"0897f241636b35f1fd1b6fdbf69f3c242d581960"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"372ddf14a17f12a17274647be4243ea0e83abf8f","unresolved":true,"context_lines":[{"line_number":61,"context_line":"      - item !\u003d \"keystone\""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"  - name: Delete keystone services not enabled"},{"line_number":64,"context_line":"    ansible.builtin.shell: \u003e"},{"line_number":65,"context_line":"      openstack service delete \"{{ item }}\""},{"line_number":66,"context_line":"    loop: \"{{ removed_services }}\""},{"line_number":67,"context_line":"    register: cleanup_result"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"c74bf8e5_5cf413c8","line":64,"in_reply_to":"ae9ca9b8_00bc3880","updated":"2022-06-21 06:18:12.000000000","message":"Ugh. Sorry I misread your comment.\n\nSo the problem here is that we need to pass both name and service_type because these are required by the catalog_service module, while we require only name if we use shells.\n\nThen I tend to agree with using the shell command, but will give it another thought to consider cleaner approach to use the native module.","commit_id":"0897f241636b35f1fd1b6fdbf69f3c242d581960"},{"author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"change_message_id":"adc788ac360cb8986d4c6a988a8cd8a66b7172e2","unresolved":true,"context_lines":[{"line_number":52,"context_line":"    set_fact:"},{"line_number":53,"context_line":"      removed_services: []"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"  - name: List services to be disabled"},{"line_number":56,"context_line":"    set_fact:"},{"line_number":57,"context_line":"      removed_services: \"{{ removed_services + [item] }}\""},{"line_number":58,"context_line":"    loop: \"{{ keystone_service_list.stdout_lines }}\""},{"line_number":59,"context_line":"    when:"},{"line_number":60,"context_line":"      - item not in batched_tripleo_keystone_resources_data"},{"line_number":61,"context_line":"      - item !\u003d \"keystone\""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"  - name: Delete keystone services not enabled"},{"line_number":64,"context_line":"    ansible.builtin.shell: \u003e"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"6ae2e456_233adbdd","line":61,"range":{"start_line":55,"start_character":0,"end_line":61,"end_character":26},"updated":"2022-06-21 06:38:16.000000000","message":"Would not this delete all services not in the current batch? This won\u0027t work it would delete enabled service not in last batch . We need to intersect list of services in tripleo_keystone_resources_catalog_config with keystone_service_list. I think you\u0027ve to move this to main.yaml.","commit_id":"a829311e2c25a770b1f6431d6eaa3ffaff20de1e"},{"author":{"_account_id":30073,"name":"Brendan Shephard","email":"bshephar@bne-home.net","username":"bshephar"},"change_message_id":"58191ae1f93012fd154271fb443b07b7a57711d2","unresolved":true,"context_lines":[{"line_number":52,"context_line":"    set_fact:"},{"line_number":53,"context_line":"      removed_services: []"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"  - name: List services to be disabled"},{"line_number":56,"context_line":"    set_fact:"},{"line_number":57,"context_line":"      removed_services: \"{{ removed_services + [item] }}\""},{"line_number":58,"context_line":"    loop: \"{{ keystone_service_list.stdout_lines }}\""},{"line_number":59,"context_line":"    when:"},{"line_number":60,"context_line":"      - item not in batched_tripleo_keystone_resources_data"},{"line_number":61,"context_line":"      - item !\u003d \"keystone\""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"  - name: Delete keystone services not enabled"},{"line_number":64,"context_line":"    ansible.builtin.shell: \u003e"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"dca56576_189b4b00","line":61,"range":{"start_line":55,"start_character":0,"end_line":61,"end_character":26},"in_reply_to":"6ae2e456_233adbdd","updated":"2022-06-21 07:20:43.000000000","message":"Yeah, this is what I was originally doing on the first patch. I was using keystone_resources, but it\u0027s the same variable:\n\n```\n/home/stack/overcloud-deploy/overcloud/config-download/overcloud/external_deploy_steps_tasks.yaml:      tripleo_keystone_resources_catalog_config: \u0027{{ keystone_resources }}\u0027\n```\n\nhttps://review.opendev.org/c/openstack/tripleo-ansible/+/840571/1/tripleo_ansible/roles/tripleo_keystone_resources/tasks/services.yml#53\n\nThen we had that conversation about using the batched resources. But I don\u0027t think it would be necessary to check batched resources at all. We just need to check for each enabled service with the services that need to be configured and remove the delta.","commit_id":"a829311e2c25a770b1f6431d6eaa3ffaff20de1e"},{"author":{"_account_id":30073,"name":"Brendan Shephard","email":"bshephar@bne-home.net","username":"bshephar"},"change_message_id":"6262566c92b91234d52d4f330741f49ad010c7b7","unresolved":true,"context_lines":[{"line_number":52,"context_line":"    set_fact:"},{"line_number":53,"context_line":"      removed_services: []"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"  - name: List services to be disabled"},{"line_number":56,"context_line":"    set_fact:"},{"line_number":57,"context_line":"      removed_services: \"{{ removed_services + [item] }}\""},{"line_number":58,"context_line":"    loop: \"{{ keystone_service_list.stdout_lines }}\""},{"line_number":59,"context_line":"    when:"},{"line_number":60,"context_line":"      - item not in batched_tripleo_keystone_resources_data"},{"line_number":61,"context_line":"      - item !\u003d \"keystone\""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"  - name: Delete keystone services not enabled"},{"line_number":64,"context_line":"    ansible.builtin.shell: \u003e"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"a3565068_e7f5bd98","line":61,"range":{"start_line":55,"start_character":0,"end_line":61,"end_character":26},"in_reply_to":"dca56576_189b4b00","updated":"2022-06-21 07:23:28.000000000","message":"Maybe a seperate cleanup.yml file would be more appropriate and then just include it from the services.yml","commit_id":"a829311e2c25a770b1f6431d6eaa3ffaff20de1e"}],"tripleo_ansible/roles/tripleo_packages/tasks/update.yml":[{"author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"change_message_id":"30c332ae26238d2aaa4146a39edfece7762ae872","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"# Copyright 2022 Red Hat, Inc."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"2ba48af0_41508684","line":2,"range":{"start_line":2,"start_character":2,"end_line":2,"end_character":30},"updated":"2022-06-22 11:16:39.000000000","message":"not relevant.","commit_id":"ea9c4d050752bf0729b5b99e35920152c3625f62"}]}
