)]}'
{"cinder/tests/unit/volume/drivers/test_pure.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"d7aaf1dfda26c75c2268d42c91a5dc2f63d4d272","unresolved":true,"context_lines":[{"line_number":585,"context_line":"        self.driver._array \u003d self.array"},{"line_number":586,"context_line":"        self.driver._replication_pod_name \u003d \u0027cinder-pod\u0027"},{"line_number":587,"context_line":"        self.driver._replication_pg_name \u003d \u0027cinder-group\u0027"},{"line_number":588,"context_line":"        self.array._list_available_rest_versions.return_value \u003d ["},{"line_number":589,"context_line":"            \u00271.0\u0027, \u00271.1\u0027, \u00271.2\u0027, \u00271.3\u0027, \u00271.4\u0027, \u00271.5\u0027, \u00271.6\u0027, \u00271.7\u0027, \u00271.8\u0027,"},{"line_number":590,"context_line":"            \u00271.9\u0027, \u00271.10\u0027, \u00271.11\u0027, \u00271.12\u0027, \u00271.13\u0027, \u00271.14\u0027, \u00271.15\u0027, \u00271.16\u0027,"},{"line_number":591,"context_line":"            \u00271.17\u0027, \u00271.18\u0027, \u00271.19\u0027]"},{"line_number":592,"context_line":"        self.purestorage_module.FlashArray.side_effect \u003d None"},{"line_number":593,"context_line":"        self.async_array2._list_available_rest_versions.return_value \u003d ["},{"line_number":594,"context_line":"            \u00271.0\u0027, \u00271.1\u0027, \u00271.2\u0027, \u00271.3\u0027, \u00271.4\u0027, \u00271.5\u0027, \u00271.6\u0027, \u00271.7\u0027, \u00271.8\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"6899e319_02dee183","line":591,"range":{"start_line":588,"start_character":64,"end_line":591,"end_character":35},"updated":"2021-07-28 09:47:56.000000000","message":"i think it was better to define this as a list and use it everywhere but since it is a backport, it needs to be changed into master and doesn\u0027t affect this patch","commit_id":"652c3bf31bc3b189fe157cfa37dc1a63dd92f7f7"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"0640321460bca3e579ec6df9ddc1bd49db622e0c","unresolved":true,"context_lines":[{"line_number":585,"context_line":"        self.driver._array \u003d self.array"},{"line_number":586,"context_line":"        self.driver._replication_pod_name \u003d \u0027cinder-pod\u0027"},{"line_number":587,"context_line":"        self.driver._replication_pg_name \u003d \u0027cinder-group\u0027"},{"line_number":588,"context_line":"        self.array._list_available_rest_versions.return_value \u003d ["},{"line_number":589,"context_line":"            \u00271.0\u0027, \u00271.1\u0027, \u00271.2\u0027, \u00271.3\u0027, \u00271.4\u0027, \u00271.5\u0027, \u00271.6\u0027, \u00271.7\u0027, \u00271.8\u0027,"},{"line_number":590,"context_line":"            \u00271.9\u0027, \u00271.10\u0027, \u00271.11\u0027, \u00271.12\u0027, \u00271.13\u0027, \u00271.14\u0027, \u00271.15\u0027, \u00271.16\u0027,"},{"line_number":591,"context_line":"            \u00271.17\u0027, \u00271.18\u0027, \u00271.19\u0027]"},{"line_number":592,"context_line":"        self.purestorage_module.FlashArray.side_effect \u003d None"},{"line_number":593,"context_line":"        self.async_array2._list_available_rest_versions.return_value \u003d ["},{"line_number":594,"context_line":"            \u00271.0\u0027, \u00271.1\u0027, \u00271.2\u0027, \u00271.3\u0027, \u00271.4\u0027, \u00271.5\u0027, \u00271.6\u0027, \u00271.7\u0027, \u00271.8\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"f9d93d3f_8a95b20c","line":591,"range":{"start_line":588,"start_character":64,"end_line":591,"end_character":35},"in_reply_to":"6899e319_02dee183","updated":"2021-07-28 12:42:06.000000000","message":"Agreed - this will be done in another patch, but will not be backported.","commit_id":"652c3bf31bc3b189fe157cfa37dc1a63dd92f7f7"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"270e83f33aa1230391fcc69be87e0ade8397cf8e","unresolved":false,"context_lines":[{"line_number":585,"context_line":"        self.driver._array \u003d self.array"},{"line_number":586,"context_line":"        self.driver._replication_pod_name \u003d \u0027cinder-pod\u0027"},{"line_number":587,"context_line":"        self.driver._replication_pg_name \u003d \u0027cinder-group\u0027"},{"line_number":588,"context_line":"        self.array._list_available_rest_versions.return_value \u003d ["},{"line_number":589,"context_line":"            \u00271.0\u0027, \u00271.1\u0027, \u00271.2\u0027, \u00271.3\u0027, \u00271.4\u0027, \u00271.5\u0027, \u00271.6\u0027, \u00271.7\u0027, \u00271.8\u0027,"},{"line_number":590,"context_line":"            \u00271.9\u0027, \u00271.10\u0027, \u00271.11\u0027, \u00271.12\u0027, \u00271.13\u0027, \u00271.14\u0027, \u00271.15\u0027, \u00271.16\u0027,"},{"line_number":591,"context_line":"            \u00271.17\u0027, \u00271.18\u0027, \u00271.19\u0027]"},{"line_number":592,"context_line":"        self.purestorage_module.FlashArray.side_effect \u003d None"},{"line_number":593,"context_line":"        self.async_array2._list_available_rest_versions.return_value \u003d ["},{"line_number":594,"context_line":"            \u00271.0\u0027, \u00271.1\u0027, \u00271.2\u0027, \u00271.3\u0027, \u00271.4\u0027, \u00271.5\u0027, \u00271.6\u0027, \u00271.7\u0027, \u00271.8\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"e7cbb37c_f019b639","line":591,"range":{"start_line":588,"start_character":64,"end_line":591,"end_character":35},"in_reply_to":"f9d93d3f_8a95b20c","updated":"2021-07-28 12:59:22.000000000","message":"Ack","commit_id":"652c3bf31bc3b189fe157cfa37dc1a63dd92f7f7"}],"cinder/volume/drivers/pure.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7a5f7d00e70fb5af6f0f46cb676c6bde32500b07","unresolved":true,"context_lines":[{"line_number":273,"context_line":"                    ssl_cert_path\u003dssl_cert_path"},{"line_number":274,"context_line":"                )"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"                api_versions \u003d target_array._list_available_rest_versions()"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"                if repl_type \u003d\u003d REPLICATION_TYPE_ASYNC:"},{"line_number":279,"context_line":"                    req_api_version \u003d ASYNC_REPLICATION_REQUIRED_API_VERSION"}],"source_content_type":"text/x-python","patch_set":1,"id":"f74bf35a_a04b95b5","line":276,"range":{"start_line":276,"start_character":44,"end_line":276,"end_character":75},"updated":"2021-07-19 21:22:03.000000000","message":"Is this function available in purestorage 1.6.0, or is 1.17.0 required?  I\u0027m asking because normally a requirements change in a backport is frowned upon.  So I\u0027m not sure whether the thing to do here is to put this into a try and if an AttributeError is raised, log a warning and set api_version \u003d target_array.get_rest_version(), or just expect that operators will read release notes an upgrade their deployed version of purestorage.  (Of course, if the function is available in 1.6.0, this isn\u0027t a problem.)","commit_id":"652c3bf31bc3b189fe157cfa37dc1a63dd92f7f7"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"622839d512865b1ebe72ccb9c0d344a33af4b42c","unresolved":true,"context_lines":[{"line_number":273,"context_line":"                    ssl_cert_path\u003dssl_cert_path"},{"line_number":274,"context_line":"                )"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"                api_versions \u003d target_array._list_available_rest_versions()"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"                if repl_type \u003d\u003d REPLICATION_TYPE_ASYNC:"},{"line_number":279,"context_line":"                    req_api_version \u003d ASYNC_REPLICATION_REQUIRED_API_VERSION"}],"source_content_type":"text/x-python","patch_set":1,"id":"030d39b6_902d4393","line":276,"range":{"start_line":276,"start_character":44,"end_line":276,"end_character":75},"in_reply_to":"f74bf35a_a04b95b5","updated":"2021-07-19 21:40:38.000000000","message":"This function is available in 1.6.0","commit_id":"652c3bf31bc3b189fe157cfa37dc1a63dd92f7f7"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"d7aaf1dfda26c75c2268d42c91a5dc2f63d4d272","unresolved":true,"context_lines":[{"line_number":1560,"context_line":"                        request_kwargs\u003dNone):"},{"line_number":1561,"context_line":""},{"line_number":1562,"context_line":"        if (version.LooseVersion(purestorage.VERSION) \u003c"},{"line_number":1563,"context_line":"                version.LooseVersion(\u00271.17.0\u0027)):"},{"line_number":1564,"context_line":"            if request_kwargs is not None:"},{"line_number":1565,"context_line":"                LOG.warning(\"Unable to specify request_kwargs\u003d\u0027%s\u0027 on \""},{"line_number":1566,"context_line":"                            \"purestorage.FlashArray using \u0027purestorage\u0027 \""}],"source_content_type":"text/x-python","patch_set":1,"id":"fec704f5_f1fcefac","line":1563,"range":{"start_line":1563,"start_character":38,"end_line":1563,"end_character":44},"updated":"2021-07-28 09:47:56.000000000","message":"we are bumping the version check here but i don\u0027t see any functionality change in the block below. there might be changes on the storage array side but I\u0027m confused how the same request requires a version bump now.","commit_id":"652c3bf31bc3b189fe157cfa37dc1a63dd92f7f7"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"270e83f33aa1230391fcc69be87e0ade8397cf8e","unresolved":false,"context_lines":[{"line_number":1560,"context_line":"                        request_kwargs\u003dNone):"},{"line_number":1561,"context_line":""},{"line_number":1562,"context_line":"        if (version.LooseVersion(purestorage.VERSION) \u003c"},{"line_number":1563,"context_line":"                version.LooseVersion(\u00271.17.0\u0027)):"},{"line_number":1564,"context_line":"            if request_kwargs is not None:"},{"line_number":1565,"context_line":"                LOG.warning(\"Unable to specify request_kwargs\u003d\u0027%s\u0027 on \""},{"line_number":1566,"context_line":"                            \"purestorage.FlashArray using \u0027purestorage\u0027 \""}],"source_content_type":"text/x-python","patch_set":1,"id":"042c439b_40d20c91","line":1563,"range":{"start_line":1563,"start_character":38,"end_line":1563,"end_character":44},"in_reply_to":"18708540_a622e2ca","updated":"2021-07-28 12:59:22.000000000","message":"Ack","commit_id":"652c3bf31bc3b189fe157cfa37dc1a63dd92f7f7"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"0640321460bca3e579ec6df9ddc1bd49db622e0c","unresolved":true,"context_lines":[{"line_number":1560,"context_line":"                        request_kwargs\u003dNone):"},{"line_number":1561,"context_line":""},{"line_number":1562,"context_line":"        if (version.LooseVersion(purestorage.VERSION) \u003c"},{"line_number":1563,"context_line":"                version.LooseVersion(\u00271.17.0\u0027)):"},{"line_number":1564,"context_line":"            if request_kwargs is not None:"},{"line_number":1565,"context_line":"                LOG.warning(\"Unable to specify request_kwargs\u003d\u0027%s\u0027 on \""},{"line_number":1566,"context_line":"                            \"purestorage.FlashArray using \u0027purestorage\u0027 \""}],"source_content_type":"text/x-python","patch_set":1,"id":"18708540_a622e2ca","line":1563,"range":{"start_line":1563,"start_character":38,"end_line":1563,"end_character":44},"in_reply_to":"fec704f5_f1fcefac","updated":"2021-07-28 12:42:06.000000000","message":"As I mentioned in the response to Brian the old version was using a response that was incorrectly formatted - a bug in the SDK. This new version resolves that, but by resolving it, breaks the driver. \nThere are no functional changes.","commit_id":"652c3bf31bc3b189fe157cfa37dc1a63dd92f7f7"}],"setup.cfg":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7a5f7d00e70fb5af6f0f46cb676c6bde32500b07","unresolved":true,"context_lines":[{"line_number":87,"context_line":"    python-3parclient\u003e\u003d4.1.0  # Apache-2.0"},{"line_number":88,"context_line":"    krest\u003e\u003d1.3.0 # Apache-2.0"},{"line_number":89,"context_line":"    infinisdk\u003e\u003d103.0.1 # BSD-3"},{"line_number":90,"context_line":"    purestorage\u003e\u003d1.17.0 # BSD"},{"line_number":91,"context_line":"    rsd-lib\u003e\u003d1.1.0 # Apache-2.0"},{"line_number":92,"context_line":"    storpool\u003e\u003d4.0.0 # Apache-2.0"},{"line_number":93,"context_line":"    storpool.spopenstack\u003e\u003d2.2.1 # Apache-2.0"}],"source_content_type":"text/x-ttcn-cfg","patch_set":1,"id":"8c04e086_b1f5acb2","line":90,"range":{"start_line":90,"start_character":4,"end_line":90,"end_character":29},"updated":"2021-07-19 21:22:03.000000000","message":"In the bug report, you say \"There is a requirement to use _list_available_rest_versions()` which produces a list of supported versions which can then be used to see if a required version for a feature is actually supported.\"  Is that the reason for bumping the min to 1.17.0?  What I\u0027m getting at is, does the code change in pure.py work for older versions of purestorage?  This is a pretty big jump in requirements for a backport.\n\n(Just so I don\u0027t forget, purestorage is in upper-constraints for wallaby at 1.19.0 [0].  Not sure if that helps your case for a backport or not.)\n\n[0] https://opendev.org/openstack/requirements/src/branch/stable/wallaby/upper-constraints.txt#L294","commit_id":"652c3bf31bc3b189fe157cfa37dc1a63dd92f7f7"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"622839d512865b1ebe72ccb9c0d344a33af4b42c","unresolved":true,"context_lines":[{"line_number":87,"context_line":"    python-3parclient\u003e\u003d4.1.0  # Apache-2.0"},{"line_number":88,"context_line":"    krest\u003e\u003d1.3.0 # Apache-2.0"},{"line_number":89,"context_line":"    infinisdk\u003e\u003d103.0.1 # BSD-3"},{"line_number":90,"context_line":"    purestorage\u003e\u003d1.17.0 # BSD"},{"line_number":91,"context_line":"    rsd-lib\u003e\u003d1.1.0 # Apache-2.0"},{"line_number":92,"context_line":"    storpool\u003e\u003d4.0.0 # Apache-2.0"},{"line_number":93,"context_line":"    storpool.spopenstack\u003e\u003d2.2.1 # Apache-2.0"}],"source_content_type":"text/x-ttcn-cfg","patch_set":1,"id":"fc1487a4_aa56e1b9","line":90,"range":{"start_line":90,"start_character":4,"end_line":90,"end_character":29},"in_reply_to":"8c04e086_b1f5acb2","updated":"2021-07-19 21:40:38.000000000","message":"The `_list_available_rest_versions` call works with all older versions of the SDK so there is no backwards incompatibility.\n\nThe reason we are hitting the bug was the SDK version from 1.16 provides a different response to the `get_rest_version` call. It appears the previous response format was a bug that has taken a long time to surface. \n\nTBH the 1.6.0 version is very old (2016) and should have been bumped many times, especially when newer features were added to the driver.\n\nThe SDK in question is never going to go beyond 1.19, so the upper constraints will never change now.","commit_id":"652c3bf31bc3b189fe157cfa37dc1a63dd92f7f7"}]}
