)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"75ab5702156c7070dbf9999884d567150764aa19","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"These options should not be modified after volumes exist on a backend."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"DocImpact"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Ie0dbf00fb2ecea3344e58d2b84fd4dfd6ae1daee"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f79a3b5_46ce295c","line":16,"updated":"2018-08-29 13:24:02.000000000","message":"And this can be removed when you add the documentation updates to the patch since documentation is now in-tree.","commit_id":"ff0452131e3356b847669846fba5b53d6ad2f3c0"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"ae7730a225a61e9b9b79c1624672558075c585dd","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"These options should not be modified after volumes exist on a backend."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"DocImpact"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Ie0dbf00fb2ecea3344e58d2b84fd4dfd6ae1daee"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f79a3b5_31c67318","line":16,"in_reply_to":"3f79a3b5_46ce295c","updated":"2018-09-02 08:51:49.000000000","message":"Done","commit_id":"ff0452131e3356b847669846fba5b53d6ad2f3c0"}],"cinder/volume/drivers/pure.py":[{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"0c499b21ca8aade494317e8947add8ed0e78f845","unresolved":false,"context_lines":[{"line_number":2075,"context_line":"        return pg_snap"},{"line_number":2076,"context_line":""},{"line_number":2077,"context_line":"    @pure_driver_debug_trace"},{"line_number":2078,"context_line":"    def _create_pod_if_not_exist(self, source_array, name):"},{"line_number":2079,"context_line":"        try:"},{"line_number":2080,"context_line":"            source_array.create_pod(name)"},{"line_number":2081,"context_line":"        except purestorage.PureHTTPError as err:"},{"line_number":2082,"context_line":"            with excutils.save_and_reraise_exception() as ctxt:"},{"line_number":2083,"context_line":"                if err.code \u003d\u003d 400 and ERR_MSG_ALREADY_EXISTS in err.text:"},{"line_number":2084,"context_line":"                    # Happens if the pod already exists"},{"line_number":2085,"context_line":"                    ctxt.reraise \u003d False"},{"line_number":2086,"context_line":"                    LOG.warning(\"Skipping creation of pod %s since it \""},{"line_number":2087,"context_line":"                                \"already exists.\", name)"},{"line_number":2088,"context_line":"                    return"},{"line_number":2089,"context_line":"                if err.code \u003d\u003d 400 and ("},{"line_number":2090,"context_line":"                        ERR_MSG_PENDING_ERADICATION in err.text):"},{"line_number":2091,"context_line":"                    ctxt.reraise \u003d False"},{"line_number":2092,"context_line":"                    LOG.warning(\"Pod %s is deleted but not\""},{"line_number":2093,"context_line":"                                \" eradicated - will recreate.\", name)"},{"line_number":2094,"context_line":"                    source_array.eradicate_pod(name)"},{"line_number":2095,"context_line":"                    self._create_pod_if_not_exist(source_array, name)"},{"line_number":2096,"context_line":""},{"line_number":2097,"context_line":"    @pure_driver_debug_trace"},{"line_number":2098,"context_line":"    def _create_protection_group_if_not_exist(self, source_array, pgname):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_27ece4b9","line":2095,"range":{"start_line":2078,"start_character":4,"end_line":2095,"end_character":69},"updated":"2018-09-04 01:40:06.000000000","message":"Avishay, I guess you are referring the check against empty string would have been done here, right?  The code here only handle two conditions for create_pod() exception, it seems empty string error doesn\u0027t belong either one, so the error would fail here with a Traceback without clear message on what might go wrong.","commit_id":"63568f62bf1d8fe41fe26b9cb869a824791a67f2"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"d73e87aecf66f4c39715d5b4755ada2d3ee1faa9","unresolved":false,"context_lines":[{"line_number":2075,"context_line":"        return pg_snap"},{"line_number":2076,"context_line":""},{"line_number":2077,"context_line":"    @pure_driver_debug_trace"},{"line_number":2078,"context_line":"    def _create_pod_if_not_exist(self, source_array, name):"},{"line_number":2079,"context_line":"        try:"},{"line_number":2080,"context_line":"            source_array.create_pod(name)"},{"line_number":2081,"context_line":"        except purestorage.PureHTTPError as err:"},{"line_number":2082,"context_line":"            with excutils.save_and_reraise_exception() as ctxt:"},{"line_number":2083,"context_line":"                if err.code \u003d\u003d 400 and ERR_MSG_ALREADY_EXISTS in err.text:"},{"line_number":2084,"context_line":"                    # Happens if the pod already exists"},{"line_number":2085,"context_line":"                    ctxt.reraise \u003d False"},{"line_number":2086,"context_line":"                    LOG.warning(\"Skipping creation of pod %s since it \""},{"line_number":2087,"context_line":"                                \"already exists.\", name)"},{"line_number":2088,"context_line":"                    return"},{"line_number":2089,"context_line":"                if err.code \u003d\u003d 400 and ("},{"line_number":2090,"context_line":"                        ERR_MSG_PENDING_ERADICATION in err.text):"},{"line_number":2091,"context_line":"                    ctxt.reraise \u003d False"},{"line_number":2092,"context_line":"                    LOG.warning(\"Pod %s is deleted but not\""},{"line_number":2093,"context_line":"                                \" eradicated - will recreate.\", name)"},{"line_number":2094,"context_line":"                    source_array.eradicate_pod(name)"},{"line_number":2095,"context_line":"                    self._create_pod_if_not_exist(source_array, name)"},{"line_number":2096,"context_line":""},{"line_number":2097,"context_line":"    @pure_driver_debug_trace"},{"line_number":2098,"context_line":"    def _create_protection_group_if_not_exist(self, source_array, pgname):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_451786ef","line":2095,"range":{"start_line":2078,"start_character":4,"end_line":2095,"end_character":69},"in_reply_to":"3f79a3b5_27ece4b9","updated":"2018-09-04 18:49:41.000000000","message":"Fine, you win :)","commit_id":"63568f62bf1d8fe41fe26b9cb869a824791a67f2"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"7830e217c155d86e185efc50a8d54b5a6edd2fa9","unresolved":false,"context_lines":[{"line_number":2162,"context_line":"            try:"},{"line_number":2163,"context_line":"                secondary_array \u003d array"},{"line_number":2164,"context_line":"                # Ensure the pod is in a good state on the array"},{"line_number":2165,"context_line":"                pod_info \u003d secondary_array.get_pod(self._replication_pod_name)"},{"line_number":2166,"context_line":"                for pod_array in pod_info[\"arrays\"]:"},{"line_number":2167,"context_line":"                    # Compare against Purity ID\u0027s"},{"line_number":2168,"context_line":"                    if pod_array[\"array_id\"] \u003d\u003d secondary_array.array_id:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_a66d649a","line":2165,"range":{"start_line":2165,"start_character":43,"end_line":2165,"end_character":50},"updated":"2018-09-03 07:05:04.000000000","message":"Shall we test empty string against get_pod() method?","commit_id":"63568f62bf1d8fe41fe26b9cb869a824791a67f2"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"9fb0cdfad206a14e7644d0fbb9336e62bbfad167","unresolved":false,"context_lines":[{"line_number":2162,"context_line":"            try:"},{"line_number":2163,"context_line":"                secondary_array \u003d array"},{"line_number":2164,"context_line":"                # Ensure the pod is in a good state on the array"},{"line_number":2165,"context_line":"                pod_info \u003d secondary_array.get_pod(self._replication_pod_name)"},{"line_number":2166,"context_line":"                for pod_array in pod_info[\"arrays\"]:"},{"line_number":2167,"context_line":"                    # Compare against Purity ID\u0027s"},{"line_number":2168,"context_line":"                    if pod_array[\"array_id\"] \u003d\u003d secondary_array.array_id:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_014c4274","line":2165,"range":{"start_line":2165,"start_character":43,"end_line":2165,"end_character":50},"in_reply_to":"3f79a3b5_a66d649a","updated":"2018-09-03 08:16:23.000000000","message":"If an illegal name was passed (such as empty string), an error would have been thrown in do_setup() by do_setup_replication().","commit_id":"63568f62bf1d8fe41fe26b9cb869a824791a67f2"}],"doc/source/configuration/block-storage/drivers/pure-storage-driver.rst":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"e08a99d1904e3b5c90b1283511d3e038e5616d87","unresolved":false,"context_lines":[{"line_number":296,"context_line":""},{"line_number":297,"context_line":".. note::"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"   ``pure_replication_pg_name`` and ``pure_replication_pod_name`` should not"},{"line_number":300,"context_line":"   be changed after volumes have been created in the Cinder backend, as this"},{"line_number":301,"context_line":"   could have unexpected results in both replication and failover."},{"line_number":302,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_4add036e","line":299,"updated":"2018-09-07 19:37:44.000000000","message":"Should these settings just be provided as volume type extra specs instead?","commit_id":"030d893697843ed55a1205e7cd688f5ae04f2df5"}]}
