)]}'
{"ci/roles/security_group/tasks/main.yml":[{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"86ec015341dc544c48d137a3fc8c68dc26c5f2ff","unresolved":true,"context_lines":[{"line_number":61,"context_line":"     remote_ip_prefix: 0.0.0.0/0"},{"line_number":62,"context_line":"     direction: egress"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"- name: Get security group by name"},{"line_number":65,"context_line":"  openstack.cloud.security_group_info:"},{"line_number":66,"context_line":"     cloud: \"{{ cloud }}\""},{"line_number":67,"context_line":"     name: \"{{ secgroup_name }}\""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"bf437b9b_e2a9113a","line":64,"range":{"start_line":64,"start_character":0,"end_line":64,"end_character":34},"updated":"2020-12-07 09:36:34.000000000","message":"Can we also add test for \"all security groups\" without \"name\"?","commit_id":"0db137620cc5fe6a959adf6a8d29f590b856b2ae"}],"plugins/modules/security_group_info.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"35de8348720231c14bd484241a25bd36f69a2358","unresolved":false,"context_lines":[{"line_number":53,"context_line":"      - A list of tags to filter the list result by."},{"line_number":54,"context_line":"      - Resources that match any tag in this list will be excluded."},{"line_number":55,"context_line":"    type: list"},{"line_number":56,"context_line":"    elements: str"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"requirements: [\"openstacksdk\"]"},{"line_number":59,"context_line":"\u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"00e960aa_ef2766ee","line":56,"updated":"2021-01-09 12:12:17.000000000","message":"Well, not all of them have tags, so I guess it needs to be another base class?","commit_id":"0db137620cc5fe6a959adf6a8d29f590b856b2ae"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"86ec015341dc544c48d137a3fc8c68dc26c5f2ff","unresolved":true,"context_lines":[{"line_number":30,"context_line":"      - Filter the list result by the revision number of the"},{"line_number":31,"context_line":"      - resource."},{"line_number":32,"context_line":"    type: int"},{"line_number":33,"context_line":"  tags:"},{"line_number":34,"context_line":"    description:"},{"line_number":35,"context_line":"      - A list of tags to filter the list result by."},{"line_number":36,"context_line":"      - Resources that match all tags in this list will be returned."},{"line_number":37,"context_line":"    type: list"},{"line_number":38,"context_line":"    elements: str"},{"line_number":39,"context_line":"  any_tags:"},{"line_number":40,"context_line":"    description:"},{"line_number":41,"context_line":"      - A list of tags to filter the list result by."},{"line_number":42,"context_line":"      - Resources that match any tag in this list will be returned."},{"line_number":43,"context_line":"    type: list"},{"line_number":44,"context_line":"    elements: str"},{"line_number":45,"context_line":"  not_tags:"},{"line_number":46,"context_line":"    description:"},{"line_number":47,"context_line":"      - A list of tags to filter the list result by."},{"line_number":48,"context_line":"      - Resources that match all tags in this list will be excluded."},{"line_number":49,"context_line":"    type: list"},{"line_number":50,"context_line":"    elements: str"},{"line_number":51,"context_line":"  not_any_tags:"},{"line_number":52,"context_line":"    description:"},{"line_number":53,"context_line":"      - A list of tags to filter the list result by."},{"line_number":54,"context_line":"      - Resources that match any tag in this list will be excluded."},{"line_number":55,"context_line":"    type: list"},{"line_number":56,"context_line":"    elements: str"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"requirements: [\"openstacksdk\"]"},{"line_number":59,"context_line":"\u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"68089f2b_3a74405d","line":56,"range":{"start_line":33,"start_character":0,"end_line":56,"end_character":17},"updated":"2020-12-07 09:36:34.000000000","message":"this is interesting, I wonder if we can include this in common openstack module args here: https://opendev.org/openstack/ansible-collections-openstack/src/branch/master/plugins/module_utils/openstack.py#L118-L132\nsince other openstack resources have tags as well","commit_id":"0db137620cc5fe6a959adf6a8d29f590b856b2ae"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"35de8348720231c14bd484241a25bd36f69a2358","unresolved":false,"context_lines":[{"line_number":165,"context_line":"                name_or_id\u003dname,"},{"line_number":166,"context_line":"                ignore_missing\u003dTrue)"},{"line_number":167,"context_line":"            if sg:"},{"line_number":168,"context_line":"                attrs[\u0027id\u0027] \u003d sg.id"},{"line_number":169,"context_line":"            else:"},{"line_number":170,"context_line":"                self.exit("},{"line_number":171,"context_line":"                    changed\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":2,"id":"a9b03551_9621d1b4","line":168,"updated":"2021-01-09 12:12:17.000000000","message":"+1","commit_id":"0db137620cc5fe6a959adf6a8d29f590b856b2ae"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"86ec015341dc544c48d137a3fc8c68dc26c5f2ff","unresolved":true,"context_lines":[{"line_number":164,"context_line":"            sg \u003d self.conn.network.find_security_group("},{"line_number":165,"context_line":"                name_or_id\u003dname,"},{"line_number":166,"context_line":"                ignore_missing\u003dTrue)"},{"line_number":167,"context_line":"            if sg:"},{"line_number":168,"context_line":"                attrs[\u0027id\u0027] \u003d sg.id"},{"line_number":169,"context_line":"            else:"},{"line_number":170,"context_line":"                self.exit("},{"line_number":171,"context_line":"                    changed\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1c37a5eb_fcda7b93","line":168,"range":{"start_line":167,"start_character":12,"end_line":168,"end_character":35},"updated":"2020-12-07 09:36:34.000000000","message":"why can\u0027t we return data right here if we found a group?","commit_id":"0db137620cc5fe6a959adf6a8d29f590b856b2ae"},{"author":{"_account_id":32673,"name":"Tino Schreiber","username":"tischrei"},"change_message_id":"3e1961f158767e2e0ec5523ec55fcab8a2813304","unresolved":true,"context_lines":[{"line_number":164,"context_line":"            sg \u003d self.conn.network.find_security_group("},{"line_number":165,"context_line":"                name_or_id\u003dname,"},{"line_number":166,"context_line":"                ignore_missing\u003dTrue)"},{"line_number":167,"context_line":"            if sg:"},{"line_number":168,"context_line":"                attrs[\u0027id\u0027] \u003d sg.id"},{"line_number":169,"context_line":"            else:"},{"line_number":170,"context_line":"                self.exit("},{"line_number":171,"context_line":"                    changed\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":2,"id":"295212f3_88602db3","line":168,"range":{"start_line":167,"start_character":12,"end_line":168,"end_character":35},"in_reply_to":"1c37a5eb_fcda7b93","updated":"2021-01-20 15:20:26.000000000","message":"\u003e why can\u0027t we return data right here if we found a group?\n\nBecause a user might also filter with other attributes than name. If the user has a security group filtered by name but for instance: the description or tag does not fit the result will not include this named sg.","commit_id":"0db137620cc5fe6a959adf6a8d29f590b856b2ae"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"35de8348720231c14bd484241a25bd36f69a2358","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        if project_id:"},{"line_number":179,"context_line":"            attrs[\u0027project_id\u0027] \u003d project_id"},{"line_number":180,"context_line":"        if revision_number:"},{"line_number":181,"context_line":"            attrs[\u0027revision_number\u0027] \u003d revision_number"},{"line_number":182,"context_line":"        if tags:"},{"line_number":183,"context_line":"            attrs[\u0027tags\u0027] \u003d \u0027,\u0027.join(tags)"},{"line_number":184,"context_line":"        if any_tags:"}],"source_content_type":"text/x-python","patch_set":2,"id":"0998495d_c9e4128f","line":181,"updated":"2021-01-09 12:12:17.000000000","message":"nit: this could be a loop over supported fields","commit_id":"0db137620cc5fe6a959adf6a8d29f590b856b2ae"},{"author":{"_account_id":32673,"name":"Tino Schreiber","username":"tischrei"},"change_message_id":"3e1961f158767e2e0ec5523ec55fcab8a2813304","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        if project_id:"},{"line_number":179,"context_line":"            attrs[\u0027project_id\u0027] \u003d project_id"},{"line_number":180,"context_line":"        if revision_number:"},{"line_number":181,"context_line":"            attrs[\u0027revision_number\u0027] \u003d revision_number"},{"line_number":182,"context_line":"        if tags:"},{"line_number":183,"context_line":"            attrs[\u0027tags\u0027] \u003d \u0027,\u0027.join(tags)"},{"line_number":184,"context_line":"        if any_tags:"}],"source_content_type":"text/x-python","patch_set":2,"id":"f4cf9879_8edd22ea","line":181,"in_reply_to":"0998495d_c9e4128f","updated":"2021-01-20 15:20:26.000000000","message":"\u003e nit: this could be a loop over supported fields\n\nI didn\u0027t get your remark.","commit_id":"0db137620cc5fe6a959adf6a8d29f590b856b2ae"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"8a626bc78b3086ca1c547962750a7656349a21a2","unresolved":true,"context_lines":[{"line_number":189,"context_line":"            attrs[\u0027not_any_tags\u0027] \u003d \u0027,\u0027.join(not_any_tags)"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        for raw in self.conn.network.security_groups(**attrs):"},{"line_number":192,"context_line":"            dt \u003d raw.to_dict()"},{"line_number":193,"context_line":"            data.append(dt)"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"        self.exit("}],"source_content_type":"text/x-python","patch_set":2,"id":"be067f5a_919091bc","line":192,"updated":"2020-12-04 15:26:52.000000000","message":"nit: perhaps we need to pop location, since we do this in other modules as well","commit_id":"0db137620cc5fe6a959adf6a8d29f590b856b2ae"},{"author":{"_account_id":32673,"name":"Tino Schreiber","username":"tischrei"},"change_message_id":"3e1961f158767e2e0ec5523ec55fcab8a2813304","unresolved":false,"context_lines":[{"line_number":189,"context_line":"            attrs[\u0027not_any_tags\u0027] \u003d \u0027,\u0027.join(not_any_tags)"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        for raw in self.conn.network.security_groups(**attrs):"},{"line_number":192,"context_line":"            dt \u003d raw.to_dict()"},{"line_number":193,"context_line":"            data.append(dt)"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"        self.exit("}],"source_content_type":"text/x-python","patch_set":2,"id":"34b8751f_6fb4ac3c","line":192,"in_reply_to":"be067f5a_919091bc","updated":"2021-01-20 15:20:26.000000000","message":"Done","commit_id":"0db137620cc5fe6a959adf6a8d29f590b856b2ae"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"12ab407790ae755601b4b864c9a2c9c5dd810295","unresolved":true,"context_lines":[{"line_number":167,"context_line":"                name_or_id\u003dname,"},{"line_number":168,"context_line":"                ignore_missing\u003dTrue)"},{"line_number":169,"context_line":"            if sg:"},{"line_number":170,"context_line":"                attrs[\u0027id\u0027] \u003d sg.id"},{"line_number":171,"context_line":"            else:"},{"line_number":172,"context_line":"                self.exit("},{"line_number":173,"context_line":"                    changed\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1bd5a2b3_39b4ec91","line":170,"range":{"start_line":170,"start_character":16,"end_line":170,"end_character":27},"updated":"2021-01-21 12:00:57.000000000","message":"left comments in sdk patch[1] - is \u0027security_group_id\u0027 there same as \u0027id\u0027? Can we use attrs[\u0027security_group_id\u0027] here?\n[1] https://review.opendev.org/c/openstack/openstacksdk/+/765980/1/openstack/network/v2/security_group_rule.py#31","commit_id":"eb6accc611aaaffda83a9e895a764af60dae5498"},{"author":{"_account_id":32673,"name":"Tino Schreiber","username":"tischrei"},"change_message_id":"9fc1ebee0f7dba4d5a7cd2ac999921f6451af14a","unresolved":true,"context_lines":[{"line_number":167,"context_line":"                name_or_id\u003dname,"},{"line_number":168,"context_line":"                ignore_missing\u003dTrue)"},{"line_number":169,"context_line":"            if sg:"},{"line_number":170,"context_line":"                attrs[\u0027id\u0027] \u003d sg.id"},{"line_number":171,"context_line":"            else:"},{"line_number":172,"context_line":"                self.exit("},{"line_number":173,"context_line":"                    changed\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":4,"id":"892c36ff_79013ca5","line":170,"range":{"start_line":170,"start_character":16,"end_line":170,"end_character":27},"in_reply_to":"1bd5a2b3_39b4ec91","updated":"2021-01-22 12:18:29.000000000","message":"No, because you are referring security_group_rule, but we are filtering security groups and there is no \u0027security_group_id\u0027 to filter for: https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/network/v2/security_group.py#L29-L33","commit_id":"eb6accc611aaaffda83a9e895a764af60dae5498"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"12ab407790ae755601b4b864c9a2c9c5dd810295","unresolved":true,"context_lines":[{"line_number":189,"context_line":"            attrs[\u0027not_tags\u0027] \u003d \u0027,\u0027.join(not_tags)"},{"line_number":190,"context_line":"        if not_any_tags:"},{"line_number":191,"context_line":"            attrs[\u0027not_any_tags\u0027] \u003d \u0027,\u0027.join(not_any_tags)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        for raw in self.conn.network.security_groups(**attrs):"},{"line_number":194,"context_line":"            dt \u003d raw.to_dict()"},{"line_number":195,"context_line":"            dt.pop(\u0027location\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3343561e_176a178f","line":192,"updated":"2021-01-21 12:00:57.000000000","message":"I\u0027d like to filter attrs to remove arguments that are not supported in all versions from rocky.\nLike we do here: https://github.com/openstack/ansible-collections-openstack/blob/1c6663999d546724b0c24854be44ee187dc375a2/plugins/modules/server_info.py#L76-L79","commit_id":"eb6accc611aaaffda83a9e895a764af60dae5498"},{"author":{"_account_id":32673,"name":"Tino Schreiber","username":"tischrei"},"change_message_id":"9fc1ebee0f7dba4d5a7cd2ac999921f6451af14a","unresolved":false,"context_lines":[{"line_number":189,"context_line":"            attrs[\u0027not_tags\u0027] \u003d \u0027,\u0027.join(not_tags)"},{"line_number":190,"context_line":"        if not_any_tags:"},{"line_number":191,"context_line":"            attrs[\u0027not_any_tags\u0027] \u003d \u0027,\u0027.join(not_any_tags)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        for raw in self.conn.network.security_groups(**attrs):"},{"line_number":194,"context_line":"            dt \u003d raw.to_dict()"},{"line_number":195,"context_line":"            dt.pop(\u0027location\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"8616f720_f3259ae6","line":192,"in_reply_to":"3343561e_176a178f","updated":"2021-01-22 12:18:29.000000000","message":"Done","commit_id":"eb6accc611aaaffda83a9e895a764af60dae5498"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"12ab407790ae755601b4b864c9a2c9c5dd810295","unresolved":true,"context_lines":[{"line_number":191,"context_line":"            attrs[\u0027not_any_tags\u0027] \u003d \u0027,\u0027.join(not_any_tags)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        for raw in self.conn.network.security_groups(**attrs):"},{"line_number":194,"context_line":"            dt \u003d raw.to_dict()"},{"line_number":195,"context_line":"            dt.pop(\u0027location\u0027)"},{"line_number":196,"context_line":"            data.append(dt)"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"311311a9_6382ac85","line":194,"range":{"start_line":194,"start_character":12,"end_line":194,"end_character":30},"updated":"2021-01-21 12:00:57.000000000","message":"I think in rocky and stein we don\u0027t have such method, so better to do like here:\nhttps://opendev.org/openstack/ansible-collections-openstack/commit/049a2de7252f472d253b51450b4160d16aedcad9","commit_id":"eb6accc611aaaffda83a9e895a764af60dae5498"},{"author":{"_account_id":32673,"name":"Tino Schreiber","username":"tischrei"},"change_message_id":"9fc1ebee0f7dba4d5a7cd2ac999921f6451af14a","unresolved":false,"context_lines":[{"line_number":191,"context_line":"            attrs[\u0027not_any_tags\u0027] \u003d \u0027,\u0027.join(not_any_tags)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        for raw in self.conn.network.security_groups(**attrs):"},{"line_number":194,"context_line":"            dt \u003d raw.to_dict()"},{"line_number":195,"context_line":"            dt.pop(\u0027location\u0027)"},{"line_number":196,"context_line":"            data.append(dt)"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"e8a3048d_0a6e4a4d","line":194,"range":{"start_line":194,"start_character":12,"end_line":194,"end_character":30},"in_reply_to":"311311a9_6382ac85","updated":"2021-01-22 12:18:29.000000000","message":"Done","commit_id":"eb6accc611aaaffda83a9e895a764af60dae5498"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"51406f8c1fa53ea9e9139835804826b76208db5b","unresolved":true,"context_lines":[{"line_number":183,"context_line":"                name_or_id\u003dname,"},{"line_number":184,"context_line":"                ignore_missing\u003dTrue)"},{"line_number":185,"context_line":"            if sg:"},{"line_number":186,"context_line":"                attrs[\u0027id\u0027] \u003d sg.id"},{"line_number":187,"context_line":"            else:"},{"line_number":188,"context_line":"                self.exit("},{"line_number":189,"context_line":"                    changed\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":5,"id":"aa90dce6_a5de9add","line":186,"range":{"start_line":186,"start_character":16,"end_line":186,"end_character":35},"updated":"2021-01-25 15:30:30.000000000","message":"\"msg\": \"Invalid query params: id\" from ussuri and below.\nEven if this is backported to train, we\u0027ll need to care about rocky/stein - for example to make minimum version of this module from train using module_min_sdk_version like here: https://github.com/openstack/ansible-collections-openstack/blob/a55b8179681900be4229e05c18e91024db18d8e7/plugins/modules/stack_info.py#L75\nIf it\u0027s not backported, this attribute should be only in supported branches, using min_ver like here: https://github.com/openstack/ansible-collections-openstack/blob/049a2de7252f472d253b51450b4160d16aedcad9/plugins/modules/volume_info.py#L123","commit_id":"c99bb1c9eb75540c81e4046b3d32c26c519c53f7"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"f0bbe1fcbcd2ee3e41e5061aebf33530ad7e26a2","unresolved":true,"context_lines":[{"line_number":188,"context_line":"                self.exit("},{"line_number":189,"context_line":"                    changed\u003dFalse,"},{"line_number":190,"context_line":"                    security_groups\u003d[],"},{"line_number":191,"context_line":"                    message\u003d(\u0027Security group %s not found.\u0027 % name)"},{"line_number":192,"context_line":"                )"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        result \u003d self.conn.network.security_groups(**attrs)"}],"source_content_type":"text/x-python","patch_set":6,"id":"263a5945_541f48f6","line":191,"updated":"2021-01-28 18:07:59.000000000","message":"TBH I don\u0027t understand why we discover an ID here, if we can just pass \"name\" to self.conn.network.security_groups(name\u003dself.params[\u0027name\u0027]...) as a part of \"attrs\"","commit_id":"e267e1d2487fac6e426eff1ac3095d6eb71767be"}]}
