)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"92d45bf58728cdafe1aba218f3ea747d195f41fb","unresolved":true,"context_lines":[{"line_number":10,"context_line":"basic methods including list, get, create"},{"line_number":11,"context_line":"and delete to shared file system storage"},{"line_number":12,"context_line":"service."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I781eb8d19c6af8097c9de4293bb975361e524344"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"307e43e0_58e00e09","line":13,"updated":"2023-03-09 00:09:29.000000000","message":"Please add Co-Authored-By if you submit a new patch","commit_id":"06e0fe9d52960ab071a3b185f8ba48bb33253dd1"},{"author":{"_account_id":35745,"name":"Reynaldo","display_name":"Reynaldo","email":"rey.bontje80@gmail.com","username":"plugd-in"},"change_message_id":"094d5d0e4c89dcfd4714588e352391f0bd669e96","unresolved":false,"context_lines":[{"line_number":10,"context_line":"basic methods including list, get, create"},{"line_number":11,"context_line":"and delete to shared file system storage"},{"line_number":12,"context_line":"service."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I781eb8d19c6af8097c9de4293bb975361e524344"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"6d767867_985c0b88","line":13,"in_reply_to":"307e43e0_58e00e09","updated":"2023-03-21 21:38:12.000000000","message":"Done","commit_id":"06e0fe9d52960ab071a3b185f8ba48bb33253dd1"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"c2bb97b6a492652705e0fdd451e25112d3442a47","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3dbc6c4d_7f86b0ef","updated":"2023-02-21 20:03:10.000000000","message":"recheck","commit_id":"106b087c04a70db4057a436c426f9fe44f016e97"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"bfb24734d03a99e008b0793dc7389f0b724feddd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"71736e7d_35f68c96","updated":"2023-03-03 21:12:35.000000000","message":"recheck\n\nCI didn\u0027t run ","commit_id":"c46aa9c324ca4aeb95c2f0306e7b64c4d3246706"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"091c85dd43d3f4202f1f7eec008b85eda447ec73","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"5b5adc01_28017346","in_reply_to":"31eec036_8fb91663","updated":"2023-03-03 21:41:14.000000000","message":"Yes; \n\nWhen you rebase, please remove the \"Depends-On\" in the commit message. Zuul gets confused when using \"Change-Id\" as your depends on since the parent change is also present in the feature/r1 branch and we\u0027ve abandoned it. You can alternatively set Depends-On to the Change URL (https://review.opendev.org/c/openstack/openstacksdk/+/873363) --- but it\u0027s not necessary since this commit is built on top of the commit in that change, Zuul will test them together anyway.","commit_id":"c46aa9c324ca4aeb95c2f0306e7b64c4d3246706"},{"author":{"_account_id":35745,"name":"Reynaldo","display_name":"Reynaldo","email":"rey.bontje80@gmail.com","username":"plugd-in"},"change_message_id":"51d6358896ad3cd22b9807699f25f6c91b74e761","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"31eec036_8fb91663","in_reply_to":"71736e7d_35f68c96","updated":"2023-03-03 21:34:51.000000000","message":"Probably a problem with the share network resource patch changing. I\u0027ll have to rebase this patch.","commit_id":"c46aa9c324ca4aeb95c2f0306e7b64c4d3246706"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fee31b00dd059b593e7b157ce20317b08f540cde","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"efb40423_9bbb3d01","updated":"2023-03-20 11:45:45.000000000","message":"Couple of nits inline. You also need to address the TODO from the previous change, adding the \u0027share_network_subnets\u0027 field to ShareNetwork. A follow-up is okay but I\u0027d like to see it started before we submit this","commit_id":"06e0fe9d52960ab071a3b185f8ba48bb33253dd1"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"92d45bf58728cdafe1aba218f3ea747d195f41fb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"5d398c7c_f21fd512","updated":"2023-03-09 00:09:29.000000000","message":"This looks great... Thank you for working on this Reynaldo. I\u0027m leaving some comments inline, ptal.. ","commit_id":"06e0fe9d52960ab071a3b185f8ba48bb33253dd1"},{"author":{"_account_id":35745,"name":"Reynaldo","display_name":"Reynaldo","email":"rey.bontje80@gmail.com","username":"plugd-in"},"change_message_id":"eb2e4862040555e487f1d6fcde8149591790f47f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"ee5b6a33_2c9c3dbe","updated":"2023-03-21 22:45:28.000000000","message":"Senlin timeout.\n\nrecheck","commit_id":"e3bbe4aaf7126d8d512b88cf54e59a126270bcb8"},{"author":{"_account_id":35745,"name":"Reynaldo","display_name":"Reynaldo","email":"rey.bontje80@gmail.com","username":"plugd-in"},"change_message_id":"094d5d0e4c89dcfd4714588e352391f0bd669e96","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"5debc752_8816c14f","updated":"2023-03-21 21:38:12.000000000","message":"Thanks for the feedback. I\u0027ve addressed some of them and rebased this on top of another patch that addresses the need to use a hack to work around the resource_key error.","commit_id":"e3bbe4aaf7126d8d512b88cf54e59a126270bcb8"},{"author":{"_account_id":35745,"name":"Reynaldo","display_name":"Reynaldo","email":"rey.bontje80@gmail.com","username":"plugd-in"},"change_message_id":"e9ecf0c40d35941b713c67b99cd00b0e671a074c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"aea2feaa_e4d7fafa","in_reply_to":"ee5b6a33_2c9c3dbe","updated":"2023-03-21 22:46:58.000000000","message":"recheck","commit_id":"e3bbe4aaf7126d8d512b88cf54e59a126270bcb8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6e17e3c49366310c2c4199ca22b9d35762da855f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"0bcae847_9d13c3d8","updated":"2023-04-03 11:48:01.000000000","message":"Assuming we get to agreement on the base patch","commit_id":"304124124d8bf0bb8f61bcd4326701e8c26ffa74"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"188d0a3d9cd459878878d73e2bc752a2577b7a27","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"55b9bc2e_4c4cac7f","updated":"2023-04-19 22:44:08.000000000","message":"Perfect; thank you for your updates here","commit_id":"d86cd3c065ad444effdcf9b8d8d93c27354c83ac"},{"author":{"_account_id":35745,"name":"Reynaldo","display_name":"Reynaldo","email":"rey.bontje80@gmail.com","username":"plugd-in"},"change_message_id":"10c425b5f0b24f4218b41a3ddfde4b9722f4124e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"27131d25_8b5d6951","updated":"2023-04-19 19:28:32.000000000","message":"recheck","commit_id":"d127dafaf97d24735ae8bba0d626c3443f93cdd1"}],"doc/source/user/proxies/shared_file_system.rst":[{"author":{"_account_id":35745,"name":"Reynaldo","display_name":"Reynaldo","email":"rey.bontje80@gmail.com","username":"plugd-in"},"change_message_id":"96904e83acd9fcecc3d43713db5a69b2479f5c33","unresolved":false,"context_lines":[{"line_number":126,"context_line":"  :noindex:"},{"line_number":127,"context_line":"  :members: share_network_subnets, get_share_network_subnet,"},{"line_number":128,"context_line":"            create_share_network_subnet, delete_share_network_subnet"},{"line_number":129,"context_line":"\u003e\u003e\u003e\u003e\u003e\u003e\u003e d86cd3c0 (Add share network subnet resource to shared file system)"}],"source_content_type":"text/x-rst","patch_set":18,"id":"c8520a78_d1fb5fea","line":129,"range":{"start_line":129,"start_character":0,"end_line":129,"end_character":74},"updated":"2023-04-19 00:32:44.000000000","message":"Rebase artifact","commit_id":"0694a1314103fdae62c61fee06881ddce457d407"}],"openstack/shared_file_system/v2/_proxy.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fee31b00dd059b593e7b157ce20317b08f540cde","unresolved":true,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        :returns: A generator of availability zone resources"},{"line_number":51,"context_line":"        :rtype: :class:`~openstack.shared_file_system.v2."},{"line_number":52,"context_line":"            availability_zone.AvailabilityZone`"},{"line_number":53,"context_line":"        \"\"\""},{"line_number":54,"context_line":"        return self._list(_availability_zone.AvailabilityZone)"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3e0011dc_00214713","line":52,"updated":"2023-03-20 11:45:45.000000000","message":"You\u0027re switching between styles here. I\u0027d pick one and stick with it. Personally, i prefer having everything on one line (i.e. how it was before)","commit_id":"06e0fe9d52960ab071a3b185f8ba48bb33253dd1"},{"author":{"_account_id":35745,"name":"Reynaldo","display_name":"Reynaldo","email":"rey.bontje80@gmail.com","username":"plugd-in"},"change_message_id":"094d5d0e4c89dcfd4714588e352391f0bd669e96","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        :returns: A generator of availability zone resources"},{"line_number":51,"context_line":"        :rtype: :class:`~openstack.shared_file_system.v2."},{"line_number":52,"context_line":"            availability_zone.AvailabilityZone`"},{"line_number":53,"context_line":"        \"\"\""},{"line_number":54,"context_line":"        return self._list(_availability_zone.AvailabilityZone)"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"a3d5ff20_f5665985","line":52,"in_reply_to":"3e0011dc_00214713","updated":"2023-03-21 21:38:12.000000000","message":"Done","commit_id":"06e0fe9d52960ab071a3b185f8ba48bb33253dd1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fee31b00dd059b593e7b157ce20317b08f540cde","unresolved":true,"context_lines":[{"line_number":335,"context_line":"            share_network_id\u003dshare_network_id)"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"    def get_share_network_subnet("},{"line_number":338,"context_line":"        self, share_network_id, share_network_subnet_id"},{"line_number":339,"context_line":"    ):"},{"line_number":340,"context_line":"        \"\"\"Lists details of a single share network subnet."},{"line_number":341,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"75e73b0d_9f8dd320","line":338,"updated":"2023-03-20 11:45:45.000000000","message":"nit: trailing comma","commit_id":"06e0fe9d52960ab071a3b185f8ba48bb33253dd1"},{"author":{"_account_id":35745,"name":"Reynaldo","display_name":"Reynaldo","email":"rey.bontje80@gmail.com","username":"plugd-in"},"change_message_id":"094d5d0e4c89dcfd4714588e352391f0bd669e96","unresolved":false,"context_lines":[{"line_number":335,"context_line":"            share_network_id\u003dshare_network_id)"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"    def get_share_network_subnet("},{"line_number":338,"context_line":"        self, share_network_id, share_network_subnet_id"},{"line_number":339,"context_line":"    ):"},{"line_number":340,"context_line":"        \"\"\"Lists details of a single share network subnet."},{"line_number":341,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"45098e24_128f0688","line":338,"in_reply_to":"75e73b0d_9f8dd320","updated":"2023-03-21 21:38:12.000000000","message":"Done","commit_id":"06e0fe9d52960ab071a3b185f8ba48bb33253dd1"},{"author":{"_account_id":35763,"name":"Samuel Loegering","email":"samuel.loegering@ndsu.edu","username":"samloegy"},"change_message_id":"06e26d11136b8869244509e1356d7c431df68126","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        :rtype:"},{"line_number":348,"context_line":"            :class:`~openstack.shared_file_system.v2.share_network_subnet.ShareNetworkSubnet`"},{"line_number":349,"context_line":"        \"\"\""},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"        return self._get("},{"line_number":352,"context_line":"            _share_network_subnet.ShareNetworkSubnet,"},{"line_number":353,"context_line":"            share_network_subnet_id,"}],"source_content_type":"text/x-python","patch_set":8,"id":"c8e487ca_e851f761","line":350,"updated":"2023-04-21 06:20:22.000000000","message":"Everything looks good to me. Maybe delete white space here for convention.","commit_id":"06e0fe9d52960ab071a3b185f8ba48bb33253dd1"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"92d45bf58728cdafe1aba218f3ea747d195f41fb","unresolved":true,"context_lines":[{"line_number":358,"context_line":""},{"line_number":359,"context_line":"        :param share_network_id: The id of the share network wthin which the"},{"line_number":360,"context_line":"            the Share Network Subnet should be created."},{"line_number":361,"context_line":"        :returns: Details of the new share network subnet."},{"line_number":362,"context_line":"        :param dict attrs: Attributes which will be used to create"},{"line_number":363,"context_line":"            a share network subnet."},{"line_number":364,"context_line":"        :rtype:"}],"source_content_type":"text/x-python","patch_set":8,"id":"cc7892c3_93fc0248","line":361,"range":{"start_line":361,"start_character":0,"end_line":361,"end_character":58},"updated":"2023-03-09 00:09:29.000000000","message":"nit: move after param below\n\nsphinx doesn\u0027t care though..","commit_id":"06e0fe9d52960ab071a3b185f8ba48bb33253dd1"},{"author":{"_account_id":35745,"name":"Reynaldo","display_name":"Reynaldo","email":"rey.bontje80@gmail.com","username":"plugd-in"},"change_message_id":"094d5d0e4c89dcfd4714588e352391f0bd669e96","unresolved":false,"context_lines":[{"line_number":358,"context_line":""},{"line_number":359,"context_line":"        :param share_network_id: The id of the share network wthin which the"},{"line_number":360,"context_line":"            the Share Network Subnet should be created."},{"line_number":361,"context_line":"        :returns: Details of the new share network subnet."},{"line_number":362,"context_line":"        :param dict attrs: Attributes which will be used to create"},{"line_number":363,"context_line":"            a share network subnet."},{"line_number":364,"context_line":"        :rtype:"}],"source_content_type":"text/x-python","patch_set":8,"id":"bd2ab070_8ccb5191","line":361,"range":{"start_line":361,"start_character":0,"end_line":361,"end_character":58},"in_reply_to":"cc7892c3_93fc0248","updated":"2023-03-21 21:38:12.000000000","message":"Done","commit_id":"06e0fe9d52960ab071a3b185f8ba48bb33253dd1"},{"author":{"_account_id":35763,"name":"Samuel Loegering","email":"samuel.loegering@ndsu.edu","username":"samloegy"},"change_message_id":"06e26d11136b8869244509e1356d7c431df68126","unresolved":false,"context_lines":[{"line_number":381,"context_line":"        :returns: Result of the ``delete``"},{"line_number":382,"context_line":"        :rtype: None"},{"line_number":383,"context_line":"        \"\"\""},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"        self._delete("},{"line_number":386,"context_line":"            _share_network_subnet.ShareNetworkSubnet,"},{"line_number":387,"context_line":"            share_network_subnet,"}],"source_content_type":"text/x-python","patch_set":8,"id":"dec47d1b_557c8994","line":384,"updated":"2023-04-21 06:20:22.000000000","message":"Same as comment above.","commit_id":"06e0fe9d52960ab071a3b185f8ba48bb33253dd1"}],"openstack/shared_file_system/v2/share_network_subnet.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fee31b00dd059b593e7b157ce20317b08f540cde","unresolved":true,"context_lines":[{"line_number":59,"context_line":"        # A hack to prevent creates from creating the wrong"},{"line_number":60,"context_line":"        # body."},{"line_number":61,"context_line":"        if prepend_key is not True and prepend_key is not False:"},{"line_number":62,"context_line":"            request \u003d super(ShareNetworkSubnet, self).\\"},{"line_number":63,"context_line":"                _prepare_request_body(patch, False)"},{"line_number":64,"context_line":"            return {prepend_key: request}"},{"line_number":65,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"a6085f9e_30d16449","line":62,"range":{"start_line":62,"start_character":28,"end_line":62,"end_character":52},"updated":"2023-03-20 11:45:45.000000000","message":"nit: not needed in Python 3. Ditto for below.","commit_id":"06e0fe9d52960ab071a3b185f8ba48bb33253dd1"},{"author":{"_account_id":35745,"name":"Reynaldo","display_name":"Reynaldo","email":"rey.bontje80@gmail.com","username":"plugd-in"},"change_message_id":"094d5d0e4c89dcfd4714588e352391f0bd669e96","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        # A hack to prevent creates from creating the wrong"},{"line_number":60,"context_line":"        # body."},{"line_number":61,"context_line":"        if prepend_key is not True and prepend_key is not False:"},{"line_number":62,"context_line":"            request \u003d super(ShareNetworkSubnet, self).\\"},{"line_number":63,"context_line":"                _prepare_request_body(patch, False)"},{"line_number":64,"context_line":"            return {prepend_key: request}"},{"line_number":65,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"daaeace2_337c06ce","line":62,"range":{"start_line":62,"start_character":28,"end_line":62,"end_character":52},"in_reply_to":"a6085f9e_30d16449","updated":"2023-03-21 21:38:12.000000000","message":"Done","commit_id":"06e0fe9d52960ab071a3b185f8ba48bb33253dd1"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"92d45bf58728cdafe1aba218f3ea747d195f41fb","unresolved":true,"context_lines":[{"line_number":55,"context_line":"    #: Date and time the share network subnet was last updated at."},{"line_number":56,"context_line":"    updated_at \u003d resource.Body(\"updated_at\", type\u003dstr)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def _prepare_request_body(self, patch, prepend_key):"},{"line_number":59,"context_line":"        # A hack to prevent creates from creating the wrong"},{"line_number":60,"context_line":"        # body."},{"line_number":61,"context_line":"        if prepend_key is not True and prepend_key is not False:"},{"line_number":62,"context_line":"            request \u003d super(ShareNetworkSubnet, self).\\"},{"line_number":63,"context_line":"                _prepare_request_body(patch, False)"},{"line_number":64,"context_line":"            return {prepend_key: request}"},{"line_number":65,"context_line":"        else:"},{"line_number":66,"context_line":"            return super(ShareNetworkSubnet, self).\\"},{"line_number":67,"context_line":"                _prepare_request_body(patch, prepend_key)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def create(self, session, prepend_key\u003d\u0027share-network-subnet\u0027, **kwargs):"},{"line_number":70,"context_line":"        prepend_key \u003d \u0027share-network-subnet\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"a0d63baa_5e2872d8","line":67,"range":{"start_line":58,"start_character":0,"end_line":67,"end_character":57},"updated":"2023-03-09 00:09:29.000000000","message":"This looks like a good approach, however, as we discussed, it makes sense for the base method to allow overwriting the request/response keys when the API requires it.. that way, that logic can just be hidden in the SDK methods invoked by the proxy and we don\u0027t need to have a fix in each resource where we may have an issue.","commit_id":"06e0fe9d52960ab071a3b185f8ba48bb33253dd1"},{"author":{"_account_id":35745,"name":"Reynaldo","display_name":"Reynaldo","email":"rey.bontje80@gmail.com","username":"plugd-in"},"change_message_id":"094d5d0e4c89dcfd4714588e352391f0bd669e96","unresolved":true,"context_lines":[{"line_number":55,"context_line":"    #: Date and time the share network subnet was last updated at."},{"line_number":56,"context_line":"    updated_at \u003d resource.Body(\"updated_at\", type\u003dstr)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def _prepare_request_body(self, patch, prepend_key):"},{"line_number":59,"context_line":"        # A hack to prevent creates from creating the wrong"},{"line_number":60,"context_line":"        # body."},{"line_number":61,"context_line":"        if prepend_key is not True and prepend_key is not False:"},{"line_number":62,"context_line":"            request \u003d super(ShareNetworkSubnet, self).\\"},{"line_number":63,"context_line":"                _prepare_request_body(patch, False)"},{"line_number":64,"context_line":"            return {prepend_key: request}"},{"line_number":65,"context_line":"        else:"},{"line_number":66,"context_line":"            return super(ShareNetworkSubnet, self).\\"},{"line_number":67,"context_line":"                _prepare_request_body(patch, prepend_key)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def create(self, session, prepend_key\u003d\u0027share-network-subnet\u0027, **kwargs):"},{"line_number":70,"context_line":"        prepend_key \u003d \u0027share-network-subnet\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"b5bca40e_c222cdcc","line":67,"range":{"start_line":58,"start_character":0,"end_line":67,"end_character":57},"in_reply_to":"70c6f346_656f9dda","updated":"2023-03-21 21:38:12.000000000","message":"I rebased this patch on top of a patch that modifies the base resource. I\u0027ve commented on that branch about the need for modifying these, but I\u0027ll also quote one of those comments here, for reference:\n\n\u003e For more detail, the pattern of overriding _prepare_request, _prepare_request_body, and/or _translate_response is used in at least 15 other places (see https://pastebin.com/TtT9UmKw for detail). As the SDK grows, the need to override these will grow as well, so it\u0027s better to make these more flexible in order to prevent the need to override these in too many places. For now, this patch only addresses the create/fetch methods.\n\nIn addition, those places that override those methods don\u0027t include other techniques that are used within the SDK that work around the self.resource_key limitations. Many other workarounds include rewriting the logic used to make requests and process responses.","commit_id":"06e0fe9d52960ab071a3b185f8ba48bb33253dd1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fee31b00dd059b593e7b157ce20317b08f540cde","unresolved":true,"context_lines":[{"line_number":55,"context_line":"    #: Date and time the share network subnet was last updated at."},{"line_number":56,"context_line":"    updated_at \u003d resource.Body(\"updated_at\", type\u003dstr)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def _prepare_request_body(self, patch, prepend_key):"},{"line_number":59,"context_line":"        # A hack to prevent creates from creating the wrong"},{"line_number":60,"context_line":"        # body."},{"line_number":61,"context_line":"        if prepend_key is not True and prepend_key is not False:"},{"line_number":62,"context_line":"            request \u003d super(ShareNetworkSubnet, self).\\"},{"line_number":63,"context_line":"                _prepare_request_body(patch, False)"},{"line_number":64,"context_line":"            return {prepend_key: request}"},{"line_number":65,"context_line":"        else:"},{"line_number":66,"context_line":"            return super(ShareNetworkSubnet, self).\\"},{"line_number":67,"context_line":"                _prepare_request_body(patch, prepend_key)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def create(self, session, prepend_key\u003d\u0027share-network-subnet\u0027, **kwargs):"},{"line_number":70,"context_line":"        prepend_key \u003d \u0027share-network-subnet\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"70c6f346_656f9dda","line":67,"range":{"start_line":58,"start_character":0,"end_line":67,"end_character":57},"in_reply_to":"a0d63baa_5e2872d8","updated":"2023-03-20 11:45:45.000000000","message":"Is this likely to happen for multiple resources? Those base methods are already rather complex/brittle. Unless we have more than, say, three users, I\u0027d actually be inclined to keep this logic in the subclass.\n\nI would like to see a comment explaining what you\u0027re doing though, ideally with an example. From what I can see, there is a difference between the envelope keys for creating and fetching? If so, something like this?\n\n  Unfortunately we use different envelope keys for creating new resources\n  and fetching existing resources. The POST request expects a\n  dash-separated envelope key:\n    POST /share-networks/{share_network_id}/subnets HTTP/1.1\n    Content-Type: application/json\n    {\n        \"share-network-subnet\": { ... }\n    }\n  All responses use an underscore-separated envelope key:\n    GET /share-networks/{share_network_id}/subnets/{subnet_id}\n    HTTP/1.1 200 OK\n    Content-Type: application/json\n    {\n        \"share_network_subnet\": { ... }\n    }\n\nIs it as simple as that?\n\n(you need to re-add newlines to the above - I removed them so it would render correctly here)","commit_id":"06e0fe9d52960ab071a3b185f8ba48bb33253dd1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6e17e3c49366310c2c4199ca22b9d35762da855f","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    #: Date and time the share network subnet was last updated at."},{"line_number":56,"context_line":"    updated_at \u003d resource.Body(\"updated_at\", type\u003dstr)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def _prepare_request_body(self, patch, prepend_key):"},{"line_number":59,"context_line":"        # A hack to prevent creates from creating the wrong"},{"line_number":60,"context_line":"        # body."},{"line_number":61,"context_line":"        if prepend_key is not True and prepend_key is not False:"},{"line_number":62,"context_line":"            request \u003d super(ShareNetworkSubnet, self).\\"},{"line_number":63,"context_line":"                _prepare_request_body(patch, False)"},{"line_number":64,"context_line":"            return {prepend_key: request}"},{"line_number":65,"context_line":"        else:"},{"line_number":66,"context_line":"            return super(ShareNetworkSubnet, self).\\"},{"line_number":67,"context_line":"                _prepare_request_body(patch, prepend_key)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def create(self, session, prepend_key\u003d\u0027share-network-subnet\u0027, **kwargs):"},{"line_number":70,"context_line":"        prepend_key \u003d \u0027share-network-subnet\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f395194_a06559ed","line":67,"range":{"start_line":58,"start_character":0,"end_line":67,"end_character":57},"in_reply_to":"b5bca40e_c222cdcc","updated":"2023-04-03 11:48:01.000000000","message":"Done","commit_id":"06e0fe9d52960ab071a3b185f8ba48bb33253dd1"}],"openstack/tests/functional/shared_file_system/test_share_network_subnet.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fee31b00dd059b593e7b157ce20317b08f540cde","unresolved":true,"context_lines":[{"line_number":19,"context_line":"class ShareNetworkSubnetTest(base.BaseSharedFileSystemTest):"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def setUp(self):"},{"line_number":22,"context_line":"        super(ShareNetworkSubnetTest, self).setUp()"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"        zones \u003d self.operator_cloud.shared_file_system.\\"},{"line_number":25,"context_line":"            availability_zones()"}],"source_content_type":"text/x-python","patch_set":8,"id":"9d716fb8_2c9c8874","line":22,"range":{"start_line":22,"start_character":14,"end_line":22,"end_character":42},"updated":"2023-03-20 11:45:45.000000000","message":"nit: not needed","commit_id":"06e0fe9d52960ab071a3b185f8ba48bb33253dd1"},{"author":{"_account_id":35745,"name":"Reynaldo","display_name":"Reynaldo","email":"rey.bontje80@gmail.com","username":"plugd-in"},"change_message_id":"094d5d0e4c89dcfd4714588e352391f0bd669e96","unresolved":false,"context_lines":[{"line_number":19,"context_line":"class ShareNetworkSubnetTest(base.BaseSharedFileSystemTest):"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def setUp(self):"},{"line_number":22,"context_line":"        super(ShareNetworkSubnetTest, self).setUp()"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"        zones \u003d self.operator_cloud.shared_file_system.\\"},{"line_number":25,"context_line":"            availability_zones()"}],"source_content_type":"text/x-python","patch_set":8,"id":"059bf80f_141200c8","line":22,"range":{"start_line":22,"start_character":14,"end_line":22,"end_character":42},"in_reply_to":"9d716fb8_2c9c8874","updated":"2023-03-21 21:38:12.000000000","message":"Done","commit_id":"06e0fe9d52960ab071a3b185f8ba48bb33253dd1"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"92d45bf58728cdafe1aba218f3ea747d195f41fb","unresolved":true,"context_lines":[{"line_number":21,"context_line":"    def setUp(self):"},{"line_number":22,"context_line":"        super(ShareNetworkSubnetTest, self).setUp()"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"        zones \u003d self.operator_cloud.shared_file_system.\\"},{"line_number":25,"context_line":"            availability_zones()"},{"line_number":26,"context_line":"        first_zone \u003d next(zones)"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"f4754575_e007cfd1","line":24,"range":{"start_line":24,"start_character":21,"end_line":24,"end_character":35},"updated":"2023-03-09 00:09:29.000000000","message":"while use of operator_cloud is okay, these actions (reading AZs, creating networks, subnets etc) can be performed by the regular user too..\n\n\nso replace all uses of the connection object self.operator_cloud in this class to self.user_cloud","commit_id":"06e0fe9d52960ab071a3b185f8ba48bb33253dd1"},{"author":{"_account_id":35745,"name":"Reynaldo","display_name":"Reynaldo","email":"rey.bontje80@gmail.com","username":"plugd-in"},"change_message_id":"094d5d0e4c89dcfd4714588e352391f0bd669e96","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    def setUp(self):"},{"line_number":22,"context_line":"        super(ShareNetworkSubnetTest, self).setUp()"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"        zones \u003d self.operator_cloud.shared_file_system.\\"},{"line_number":25,"context_line":"            availability_zones()"},{"line_number":26,"context_line":"        first_zone \u003d next(zones)"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"daf3cdaf_20d598e8","line":24,"range":{"start_line":24,"start_character":21,"end_line":24,"end_character":35},"in_reply_to":"ce09715c_94c948e6","updated":"2023-03-21 21:38:12.000000000","message":"Done","commit_id":"06e0fe9d52960ab071a3b185f8ba48bb33253dd1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fee31b00dd059b593e7b157ce20317b08f540cde","unresolved":true,"context_lines":[{"line_number":21,"context_line":"    def setUp(self):"},{"line_number":22,"context_line":"        super(ShareNetworkSubnetTest, self).setUp()"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"        zones \u003d self.operator_cloud.shared_file_system.\\"},{"line_number":25,"context_line":"            availability_zones()"},{"line_number":26,"context_line":"        first_zone \u003d next(zones)"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ce09715c_94c948e6","line":24,"range":{"start_line":24,"start_character":21,"end_line":24,"end_character":35},"in_reply_to":"f4754575_e007cfd1","updated":"2023-03-20 11:45:45.000000000","message":"+1","commit_id":"06e0fe9d52960ab071a3b185f8ba48bb33253dd1"}]}
