)]}'
{"ci/environments/scenario001-standalone.yaml":[{"author":{"_account_id":25402,"name":"Francesco Pantano","email":"fpantano@redhat.com","username":"fmount"},"change_message_id":"1de943fd720ef39b6abd6d32c21a83e285be73c4","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    mon:"},{"line_number":111,"context_line":"      mon_key1: \"mon_value1\""},{"line_number":112,"context_line":"      mon_key2: \"mon_value2\""},{"line_number":113,"context_line":"   #rgw:"},{"line_number":114,"context_line":"   #  rgw_key1: \"rgw_value1\""},{"line_number":115,"context_line":"   #  rgw_key2: \"rgw_value2\""},{"line_number":116,"context_line":"  NovaEnableRbdBackend: true"},{"line_number":117,"context_line":"  CinderEnableRbdBackend: true"},{"line_number":118,"context_line":"  CinderBackupBackend: ceph"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7faddb67_6195d1e3","line":115,"range":{"start_line":113,"start_character":3,"end_line":115,"end_character":27},"updated":"2019-08-01 06:11:18.000000000","message":"I comment out this section because I want to see that is produced an empty dict for the rgw override section (rgw: {})","commit_id":"5fffade965a5d8526dd9a149ccf8f992c546352a"}],"deployment/ceph-ansible/ceph-base.yaml":[{"author":{"_account_id":25402,"name":"Francesco Pantano","email":"fpantano@redhat.com","username":"fmount"},"change_message_id":"1de943fd720ef39b6abd6d32c21a83e285be73c4","unresolved":false,"context_lines":[{"line_number":390,"context_line":"                - yaql:"},{"line_number":391,"context_line":"                    data: {get_param: CephConfigOverrides}"},{"line_number":392,"context_line":"                    expression: dict($.data.get(global, {}).keys().zip($.data.get(global, {}).values()))"},{"line_number":393,"context_line":"            osd:"},{"line_number":394,"context_line":"              yaql:"},{"line_number":395,"context_line":"                data: {get_param: CephConfigOverrides}"},{"line_number":396,"context_line":"                expression: dict($.data.get(osd, {}).keys().zip($.data.get(osd, {}).values()))"},{"line_number":397,"context_line":"            mds:"},{"line_number":398,"context_line":"              yaql:"},{"line_number":399,"context_line":"                data: {get_param: CephConfigOverrides}"},{"line_number":400,"context_line":"                expression: dict($.data.get(mds, {}).keys().zip($.data.get(mds, {}).values()))"},{"line_number":401,"context_line":"            rgw:"},{"line_number":402,"context_line":"              yaql:"},{"line_number":403,"context_line":"                data: {get_param: CephConfigOverrides}"},{"line_number":404,"context_line":"                expression: dict($.data.get(rgw, {}).keys().zip($.data.get(rgw, {}).values()))"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"          ip_version:"},{"line_number":407,"context_line":"            if:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7faddb67_c18b65bd","line":404,"range":{"start_line":393,"start_character":11,"end_line":404,"end_character":94},"updated":"2019-08-01 06:11:18.000000000","message":"I\u0027m wondering if there is a way to create a sort of template and just use one block that iterates across the section list [osd, mds, rgw] (where sections are just parameters) and reduce this code to just a single block.\n\n+gfidente +fultonj wdyt?","commit_id":"5fffade965a5d8526dd9a149ccf8f992c546352a"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"b3ade5250f54b8c7ba7a3beafb3d2a86fcafba5a","unresolved":false,"context_lines":[{"line_number":390,"context_line":"                - yaql:"},{"line_number":391,"context_line":"                    data: {get_param: CephConfigOverrides}"},{"line_number":392,"context_line":"                    expression: dict($.data.get(global, {}).keys().zip($.data.get(global, {}).values()))"},{"line_number":393,"context_line":"            osd:"},{"line_number":394,"context_line":"              yaql:"},{"line_number":395,"context_line":"                data: {get_param: CephConfigOverrides}"},{"line_number":396,"context_line":"                expression: dict($.data.get(osd, {}).keys().zip($.data.get(osd, {}).values()))"},{"line_number":397,"context_line":"            mds:"},{"line_number":398,"context_line":"              yaql:"},{"line_number":399,"context_line":"                data: {get_param: CephConfigOverrides}"},{"line_number":400,"context_line":"                expression: dict($.data.get(mds, {}).keys().zip($.data.get(mds, {}).values()))"},{"line_number":401,"context_line":"            rgw:"},{"line_number":402,"context_line":"              yaql:"},{"line_number":403,"context_line":"                data: {get_param: CephConfigOverrides}"},{"line_number":404,"context_line":"                expression: dict($.data.get(rgw, {}).keys().zip($.data.get(rgw, {}).values()))"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"          ip_version:"},{"line_number":407,"context_line":"            if:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7faddb67_a17c29b6","line":404,"range":{"start_line":393,"start_character":11,"end_line":404,"end_character":94},"in_reply_to":"7faddb67_c18b65bd","updated":"2019-08-01 06:18:04.000000000","message":"wait, this shouldn\u0027t be necessary, let me try an update","commit_id":"5fffade965a5d8526dd9a149ccf8f992c546352a"},{"author":{"_account_id":18002,"name":"John Fulton","email":"fulton@redhat.com","username":"fultonj"},"change_message_id":"7f27ce9a08e8b000d22f738d12cc558eff6fabe9","unresolved":false,"context_lines":[{"line_number":251,"context_line":"          osd_pool_default_size: {get_param: CephPoolDefaultSize}"},{"line_number":252,"context_line":"          osd_pool_default_pg_num: {get_param: CephPoolDefaultPgNum}"},{"line_number":253,"context_line":"          osd_pool_default_pgp_num: {get_param: CephPoolDefaultPgNum}"},{"line_number":254,"context_line":"          rgw_keystone_api_version: 3"},{"line_number":255,"context_line":"          rgw_keystone_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]}"},{"line_number":256,"context_line":"          rgw_keystone_accepted_roles: \u0027Member, admin\u0027"},{"line_number":257,"context_line":"          rgw_keystone_accepted_admin_roles: ResellerAdmin"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7faddb67_305641d0","line":254,"range":{"start_line":254,"start_character":10,"end_line":254,"end_character":13},"updated":"2019-08-01 12:15:02.000000000","message":"Since you\u0027re already updating the code which manages the variables under [global], do you want to add a conditional so that it only includes the rgw_* variables if RGW is enabled (as requested in rhbz 1472811)? Just an optional idea.","commit_id":"ff4f4841d4e51ae09ee249495d33855f5d8ecfbd"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"45a63bdbf6630b0156457b7c77276b6f0ad2496f","unresolved":false,"context_lines":[{"line_number":251,"context_line":"          osd_pool_default_size: {get_param: CephPoolDefaultSize}"},{"line_number":252,"context_line":"          osd_pool_default_pg_num: {get_param: CephPoolDefaultPgNum}"},{"line_number":253,"context_line":"          osd_pool_default_pgp_num: {get_param: CephPoolDefaultPgNum}"},{"line_number":254,"context_line":"          rgw_keystone_api_version: 3"},{"line_number":255,"context_line":"          rgw_keystone_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]}"},{"line_number":256,"context_line":"          rgw_keystone_accepted_roles: \u0027Member, admin\u0027"},{"line_number":257,"context_line":"          rgw_keystone_accepted_admin_roles: ResellerAdmin"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7faddb67_d01a4dc4","line":254,"range":{"start_line":254,"start_character":10,"end_line":254,"end_character":13},"in_reply_to":"7faddb67_305641d0","updated":"2019-08-01 12:41:19.000000000","message":"it would be nice, but at first look it seems a bigger issue to solve :D","commit_id":"ff4f4841d4e51ae09ee249495d33855f5d8ecfbd"},{"author":{"_account_id":25402,"name":"Francesco Pantano","email":"fpantano@redhat.com","username":"fmount"},"change_message_id":"9c3355ef013c571a103dd8a2958d2f2ec7795981","unresolved":false,"context_lines":[{"line_number":392,"context_line":"            - ceph_config_overrides_with_sections"},{"line_number":393,"context_line":"            - yaql:"},{"line_number":394,"context_line":"                data:"},{"line_number":395,"context_line":"                  default: {get_attr: [DefaultCephConfigOverrides, value]}"},{"line_number":396,"context_line":"                  overrides: {get_param: CephConfigOverrides}"},{"line_number":397,"context_line":"                expression: let(root \u003d\u003e $) -\u003e $root.data.default.where($ !\u003d null).mergeWith($root.data.overrides.where($ !\u003d null))"},{"line_number":398,"context_line":"            - global:"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7faddb67_702ef943","line":395,"range":{"start_line":395,"start_character":18,"end_line":395,"end_character":74},"updated":"2019-08-01 12:13:55.000000000","message":"Maybe I\u0027m wrong but seems like the get_attr here doesn\u0027t return the expected parameter defined above (resulting in None).\nThis is just a clue found tweaking with these parameters in a debugging session","commit_id":"ff4f4841d4e51ae09ee249495d33855f5d8ecfbd"},{"author":{"_account_id":25402,"name":"Francesco Pantano","email":"fpantano@redhat.com","username":"fmount"},"change_message_id":"b737adf00a7af7ecbcaf8ec392e83b8a9b6cff38","unresolved":false,"context_lines":[{"line_number":392,"context_line":"            - ceph_config_overrides_with_sections"},{"line_number":393,"context_line":"            - yaql:"},{"line_number":394,"context_line":"                data:"},{"line_number":395,"context_line":"                  default: {get_attr: [DefaultCephConfigOverrides, value]}"},{"line_number":396,"context_line":"                  overrides: {get_param: CephConfigOverrides}"},{"line_number":397,"context_line":"                expression: let(root \u003d\u003e $) -\u003e $root.data.default.where($ !\u003d null).mergeWith($root.data.overrides.where($ !\u003d null))"},{"line_number":398,"context_line":"            - global:"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7faddb67_908ff528","line":395,"range":{"start_line":395,"start_character":18,"end_line":395,"end_character":74},"in_reply_to":"7faddb67_702ef943","updated":"2019-08-01 12:36:41.000000000","message":"https://bugs.launchpad.net/heat/+bug/1705216","commit_id":"ff4f4841d4e51ae09ee249495d33855f5d8ecfbd"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"45a63bdbf6630b0156457b7c77276b6f0ad2496f","unresolved":false,"context_lines":[{"line_number":392,"context_line":"            - ceph_config_overrides_with_sections"},{"line_number":393,"context_line":"            - yaql:"},{"line_number":394,"context_line":"                data:"},{"line_number":395,"context_line":"                  default: {get_attr: [DefaultCephConfigOverrides, value]}"},{"line_number":396,"context_line":"                  overrides: {get_param: CephConfigOverrides}"},{"line_number":397,"context_line":"                expression: let(root \u003d\u003e $) -\u003e $root.data.default.where($ !\u003d null).mergeWith($root.data.overrides.where($ !\u003d null))"},{"line_number":398,"context_line":"            - global:"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7faddb67_907e15e2","line":395,"range":{"start_line":395,"start_character":18,"end_line":395,"end_character":74},"in_reply_to":"7faddb67_908ff528","updated":"2019-08-01 12:41:19.000000000","message":"indeed the where($ !\u003d none) should get us around that","commit_id":"ff4f4841d4e51ae09ee249495d33855f5d8ecfbd"},{"author":{"_account_id":25402,"name":"Francesco Pantano","email":"fpantano@redhat.com","username":"fmount"},"change_message_id":"c31f77f0a117c3eb77e697cd5f974f7f50ea4eb2","unresolved":false,"context_lines":[{"line_number":393,"context_line":"            - yaql:"},{"line_number":394,"context_line":"                data:"},{"line_number":395,"context_line":"                  default:"},{"line_number":396,"context_line":"                    map_merge:"},{"line_number":397,"context_line":"                    - {get_attr: [DefaultCephConfigOverrides, value]}"},{"line_number":398,"context_line":"                  overrides: {get_param: CephConfigOverrides}"},{"line_number":399,"context_line":"                expression: let(root \u003d\u003e $) -\u003e $.data.default.mergeWith($.data.overrides)"},{"line_number":400,"context_line":"            - global:"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"7faddb67_f7b41838","line":397,"range":{"start_line":396,"start_character":20,"end_line":397,"end_character":69},"updated":"2019-08-01 19:12:43.000000000","message":"This should fix the issue we\u0027ve seen on populating the \"default\" map.","commit_id":"84d325b7a48b809d59da2a2591502f80a8aa19b6"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"921287b56563bcce192a36c9c82c0af1ad533c11","unresolved":false,"context_lines":[{"line_number":396,"context_line":"                    map_merge:"},{"line_number":397,"context_line":"                    - {get_attr: [DefaultCephConfigOverrides, value]}"},{"line_number":398,"context_line":"                  overrides: {get_param: CephConfigOverrides}"},{"line_number":399,"context_line":"                expression: let(root \u003d\u003e $) -\u003e $.data.default.mergeWith($.data.overrides)"},{"line_number":400,"context_line":"            - global:"},{"line_number":401,"context_line":"                map_merge:"},{"line_number":402,"context_line":"                - {get_attr: [DefaultCephConfigOverrides, value, global]}"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"7faddb67_9ebcd8dc","line":399,"updated":"2019-08-02 07:46:26.000000000","message":"we could remove the call to let() now as well","commit_id":"84d325b7a48b809d59da2a2591502f80a8aa19b6"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"b1118e6fb2a983b08bf9345a275c4942cdd14df7","unresolved":false,"context_lines":[{"line_number":393,"context_line":"            - yaql:"},{"line_number":394,"context_line":"                data:"},{"line_number":395,"context_line":"                  default:"},{"line_number":396,"context_line":"                    map_merge:"},{"line_number":397,"context_line":"                    - {get_attr: [DefaultCephConfigOverrides, value]}"},{"line_number":398,"context_line":"                  overrides: {get_param: CephConfigOverrides}"},{"line_number":399,"context_line":"                expression: $.data.default.mergeWith($.data.overrides)"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"7faddb67_1819bcd5","line":396,"updated":"2019-08-05 17:17:28.000000000","message":"What is the purpose of this map_merge, when you only list a single map (the one on L397)? Just as you did on L398, would this work?\n\n- yaql:\n    data:\n      default: {get_attr: [DefaultCephConfigOverrides, value]}\n      overrides: {get_param: CephConfigOverrides}","commit_id":"2501f4747c609482ac4e500aaf8ed5519e174bc7"},{"author":{"_account_id":25402,"name":"Francesco Pantano","email":"fpantano@redhat.com","username":"fmount"},"change_message_id":"b1b69524b8cab57439baefe603e7672a0dd7c7e4","unresolved":false,"context_lines":[{"line_number":393,"context_line":"            - yaql:"},{"line_number":394,"context_line":"                data:"},{"line_number":395,"context_line":"                  default:"},{"line_number":396,"context_line":"                    map_merge:"},{"line_number":397,"context_line":"                    - {get_attr: [DefaultCephConfigOverrides, value]}"},{"line_number":398,"context_line":"                  overrides: {get_param: CephConfigOverrides}"},{"line_number":399,"context_line":"                expression: $.data.default.mergeWith($.data.overrides)"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"7faddb67_2929c2e4","line":396,"in_reply_to":"7faddb67_1819bcd5","updated":"2019-08-06 07:11:31.000000000","message":"Hi Alan,\nthe form you suggest is the first version of our PS that didn\u0027t work since the \"default\" map resulted in None (and, as a consequence, no mergeWith method was available).\nMy suspect here (after a live debugging session) is that the combination of yaql and the inputs using the `get_attr` form make us hitting the [1] (I can confirm it doesn\u0027t appear using `get_param` instead).\nUsing the map_merge it seems to be able to get an iterator and yield the requested elements, rebuilding the map you see in the DefaultCephConfigOverrides, giving us the expected result after the expression evaluation.\n\n\n[1] https://bugs.launchpad.net/heat/+bug/1705216","commit_id":"2501f4747c609482ac4e500aaf8ed5519e174bc7"}]}
