)]}'
{"cinder/tests/unit/volume/drivers/test_pure.py":[{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"b90867a69db863decc499b66695cd2b42c89b5d7","unresolved":false,"context_lines":[{"line_number":3254,"context_line":"        self.mock_config.use_chap_auth \u003d False"},{"line_number":3255,"context_line":"        self.mock_config.safe_get.return_value \u003d \u0027oracle-vm-server\u0027"},{"line_number":3256,"context_line":""},{"line_number":3257,"context_line":"        # Branch where chap is used and credentials already exist"},{"line_number":3258,"context_line":"        self.driver._connect(self.array, vol_name, ISCSI_CONNECTOR,"},{"line_number":3259,"context_line":"                             None, None)"},{"line_number":3260,"context_line":"        self.assertDictEqual(result, real_result)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_1c49cbb5","line":3257,"updated":"2019-02-13 22:41:48.000000000","message":"Is this the correct comment","commit_id":"303109f67dcfdc765c0bef570311dfc4eb5ce184"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"8aff603cd3a53c36a4b8e5ccbfa510009b7de6eb","unresolved":false,"context_lines":[{"line_number":3254,"context_line":"        self.mock_config.use_chap_auth \u003d False"},{"line_number":3255,"context_line":"        self.mock_config.safe_get.return_value \u003d \u0027oracle-vm-server\u0027"},{"line_number":3256,"context_line":""},{"line_number":3257,"context_line":"        # Branch where chap is used and credentials already exist"},{"line_number":3258,"context_line":"        self.driver._connect(self.array, vol_name, ISCSI_CONNECTOR,"},{"line_number":3259,"context_line":"                             None, None)"},{"line_number":3260,"context_line":"        self.assertDictEqual(result, real_result)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_67cde483","line":3257,"in_reply_to":"9fdfeff1_1c49cbb5","updated":"2019-02-13 23:25:55.000000000","message":"No it is not","commit_id":"303109f67dcfdc765c0bef570311dfc4eb5ce184"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"b90867a69db863decc499b66695cd2b42c89b5d7","unresolved":false,"context_lines":[{"line_number":3258,"context_line":"        self.driver._connect(self.array, vol_name, ISCSI_CONNECTOR,"},{"line_number":3259,"context_line":"                             None, None)"},{"line_number":3260,"context_line":"        self.assertDictEqual(result, real_result)"},{"line_number":3261,"context_line":"        self.array.set_host.assert_called_with(PURE_HOST_NAME,"},{"line_number":3262,"context_line":"                                               personality\u003d\u0027oracle-vm-server\u0027)"},{"line_number":3263,"context_line":""},{"line_number":3264,"context_line":"    @mock.patch(ISCSI_DRIVER_OBJ + \"._get_host\", autospec\u003dTrue)"},{"line_number":3265,"context_line":"    def test_connect_already_connected(self, mock_host):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_9ceb7b76","line":3262,"range":{"start_line":3261,"start_character":8,"end_line":3262,"end_character":78},"updated":"2019-02-13 22:41:48.000000000","message":"how about a test with no personality defined?","commit_id":"303109f67dcfdc765c0bef570311dfc4eb5ce184"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"8aff603cd3a53c36a4b8e5ccbfa510009b7de6eb","unresolved":false,"context_lines":[{"line_number":3258,"context_line":"        self.driver._connect(self.array, vol_name, ISCSI_CONNECTOR,"},{"line_number":3259,"context_line":"                             None, None)"},{"line_number":3260,"context_line":"        self.assertDictEqual(result, real_result)"},{"line_number":3261,"context_line":"        self.array.set_host.assert_called_with(PURE_HOST_NAME,"},{"line_number":3262,"context_line":"                                               personality\u003d\u0027oracle-vm-server\u0027)"},{"line_number":3263,"context_line":""},{"line_number":3264,"context_line":"    @mock.patch(ISCSI_DRIVER_OBJ + \"._get_host\", autospec\u003dTrue)"},{"line_number":3265,"context_line":"    def test_connect_already_connected(self, mock_host):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_a7ac2c9f","line":3262,"range":{"start_line":3261,"start_character":8,"end_line":3262,"end_character":78},"in_reply_to":"9fdfeff1_9ceb7b76","updated":"2019-02-13 23:25:55.000000000","message":"Will add an assert to the case above","commit_id":"303109f67dcfdc765c0bef570311dfc4eb5ce184"}],"cinder/volume/drivers/pure.py":[{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"b29283f0beb8f5066bb0ae31a5a241e50c2825ec","unresolved":false,"context_lines":[{"line_number":2496,"context_line":"                            ERR_MSG_HOST_NOT_EXIST in err.text):"},{"line_number":2497,"context_line":"                        # If the host disappeared out from under us that\u0027s ok,"},{"line_number":2498,"context_line":"                        # we will just retry and snag a new host."},{"line_number":2499,"context_line":"                        LOG.debug(\u0027Unable to set CHAP info: %s\u0027, err.text)"},{"line_number":2500,"context_line":"                        raise exception.PureRetryableException()"},{"line_number":2501,"context_line":""},{"line_number":2502,"context_line":"            if self.configuration.use_chap_auth:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_adebb375","line":2499,"updated":"2019-02-13 18:32:16.000000000","message":"s/CHAP info/host personality/ ?","commit_id":"61529f72a9df2050e63e90c10b4107a1f3e73b68"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"db75dc234eb805344481ba818ed20e13f59b6139","unresolved":false,"context_lines":[{"line_number":2496,"context_line":"                            ERR_MSG_HOST_NOT_EXIST in err.text):"},{"line_number":2497,"context_line":"                        # If the host disappeared out from under us that\u0027s ok,"},{"line_number":2498,"context_line":"                        # we will just retry and snag a new host."},{"line_number":2499,"context_line":"                        LOG.debug(\u0027Unable to set CHAP info: %s\u0027, err.text)"},{"line_number":2500,"context_line":"                        raise exception.PureRetryableException()"},{"line_number":2501,"context_line":""},{"line_number":2502,"context_line":"            if self.configuration.use_chap_auth:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_f0899074","line":2499,"in_reply_to":"9fdfeff1_adebb375","updated":"2019-02-13 18:44:49.000000000","message":"Copy-paste error - thanks!","commit_id":"61529f72a9df2050e63e90c10b4107a1f3e73b68"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"ccb627e89b671c3ae5689c5171a4dc87267ffe03","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                     \"on the current total data reduction values. If used \""},{"line_number":61,"context_line":"                     \"this calculated value will override the \""},{"line_number":62,"context_line":"                     \"max_over_subscription_ratio config option.\"),"},{"line_number":63,"context_line":"    cfg.StrOpt(\"pure_host_personality\","},{"line_number":64,"context_line":"               choices\u003d[\u0027aix\u0027, \u0027esxi\u0027, \u0027hitachi-vsp\u0027, \u0027hpux\u0027,"},{"line_number":65,"context_line":"                        \u0027oracle-vm-server\u0027, \u0027solaris\u0027, \u0027vms\u0027],"},{"line_number":66,"context_line":"               help\u003d\"Determines how the Purity system tunes the protocol used \""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_bc62ff3c","line":63,"range":{"start_line":63,"start_character":16,"end_line":63,"end_character":37},"updated":"2019-02-13 22:35:30.000000000","message":"You need to set a default option of \"\", ie an empty string. You can\u0027t use None here. If you don\u0027t set a default and no personality is defined, the call to set_host will fail","commit_id":"303109f67dcfdc765c0bef570311dfc4eb5ce184"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"8aff603cd3a53c36a4b8e5ccbfa510009b7de6eb","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                     \"on the current total data reduction values. If used \""},{"line_number":61,"context_line":"                     \"this calculated value will override the \""},{"line_number":62,"context_line":"                     \"max_over_subscription_ratio config option.\"),"},{"line_number":63,"context_line":"    cfg.StrOpt(\"pure_host_personality\","},{"line_number":64,"context_line":"               choices\u003d[\u0027aix\u0027, \u0027esxi\u0027, \u0027hitachi-vsp\u0027, \u0027hpux\u0027,"},{"line_number":65,"context_line":"                        \u0027oracle-vm-server\u0027, \u0027solaris\u0027, \u0027vms\u0027],"},{"line_number":66,"context_line":"               help\u003d\"Determines how the Purity system tunes the protocol used \""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_27ea7cd7","line":63,"range":{"start_line":63,"start_character":16,"end_line":63,"end_character":37},"in_reply_to":"9fdfeff1_bc62ff3c","updated":"2019-02-13 23:25:55.000000000","message":"If it is None, there will be no call to set_host","commit_id":"303109f67dcfdc765c0bef570311dfc4eb5ce184"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"ccb627e89b671c3ae5689c5171a4dc87267ffe03","unresolved":false,"context_lines":[{"line_number":2490,"context_line":"            personality \u003d self.configuration.safe_get(\u0027pure_host_personality\u0027)"},{"line_number":2491,"context_line":"            if personality:"},{"line_number":2492,"context_line":"                try:"},{"line_number":2493,"context_line":"                    array.set_host(host_name, personality\u003dpersonality)"},{"line_number":2494,"context_line":"                except purestorage.PureHTTPError as err:"},{"line_number":2495,"context_line":"                    if (err.code \u003d\u003d 400 and"},{"line_number":2496,"context_line":"                            ERR_MSG_HOST_NOT_EXIST in err.text):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_1ced4bb6","line":2493,"range":{"start_line":2493,"start_character":20,"end_line":2493,"end_character":70},"updated":"2019-02-13 22:35:30.000000000","message":"You need to check the REST API version here before setting the personality. Although personality has been around for a while, the main list that you are adding as options was not added until REST 1.14.","commit_id":"303109f67dcfdc765c0bef570311dfc4eb5ce184"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"8aff603cd3a53c36a4b8e5ccbfa510009b7de6eb","unresolved":false,"context_lines":[{"line_number":2490,"context_line":"            personality \u003d self.configuration.safe_get(\u0027pure_host_personality\u0027)"},{"line_number":2491,"context_line":"            if personality:"},{"line_number":2492,"context_line":"                try:"},{"line_number":2493,"context_line":"                    array.set_host(host_name, personality\u003dpersonality)"},{"line_number":2494,"context_line":"                except purestorage.PureHTTPError as err:"},{"line_number":2495,"context_line":"                    if (err.code \u003d\u003d 400 and"},{"line_number":2496,"context_line":"                            ERR_MSG_HOST_NOT_EXIST in err.text):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_e7c1d455","line":2493,"range":{"start_line":2493,"start_character":20,"end_line":2493,"end_character":70},"in_reply_to":"9fdfeff1_1ced4bb6","updated":"2019-02-13 23:25:55.000000000","message":"OK, will do","commit_id":"303109f67dcfdc765c0bef570311dfc4eb5ce184"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"586ce53058760578febab0e88e5762667bff997f","unresolved":false,"context_lines":[{"line_number":61,"context_line":"                     \"this calculated value will override the \""},{"line_number":62,"context_line":"                     \"max_over_subscription_ratio config option.\"),"},{"line_number":63,"context_line":"    cfg.StrOpt(\"pure_host_personality\","},{"line_number":64,"context_line":"               choices\u003d[\u0027aix\u0027, \u0027esxi\u0027, \u0027hitachi-vsp\u0027, \u0027hpux\u0027,"},{"line_number":65,"context_line":"                        \u0027oracle-vm-server\u0027, \u0027solaris\u0027, \u0027vms\u0027],"},{"line_number":66,"context_line":"               help\u003d\"Determines how the Purity system tunes the protocol used \""},{"line_number":67,"context_line":"                    \"between the array and the initiator.\"),"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_686f2228","line":64,"updated":"2019-02-25 16:17:31.000000000","message":"If you push another patch it would be nice to have the default indicated here but that doesn\u0027t seem to be a practice Pure has used, so I guess it isn\u0027t inconsistent.","commit_id":"d3737834e29c779f5316c4497064691460146876"}],"doc/source/configuration/block-storage/drivers/pure-storage-driver.rst":[{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"da42841a787b8da94066da386d9abaf176eadab5","unresolved":false,"context_lines":[{"line_number":183,"context_line":"between the array and the initiator. To ensure the array works optimally with"},{"line_number":184,"context_line":"the host, set the personality to the name of the host operating or virtual"},{"line_number":185,"context_line":"memory system. Valid values are aix, esxi, hitachi-vsp, hpux, oracle-vm-server,"},{"line_number":186,"context_line":"solaris, and vms. If your system is not listed as one of the valid host"},{"line_number":187,"context_line":"personalities, do not set the option. By default, the host personality is not"},{"line_number":188,"context_line":"set."},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"To set the host personality, modify the following option in the ``cinder.conf``"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9fdfeff1_14e05b26","line":187,"range":{"start_line":186,"start_character":18,"end_line":187,"end_character":36},"updated":"2019-03-04 15:44:33.000000000","message":"Isn\u0027t the whole reason you wrote this patch was because Linux and KVM had issues with LUN IDs greater than 255 so to resolve this you needed a host personality setting. Just happens that oracle-vm-server is the one to use for Linux, even though this isn\u0027t the obvious choice. The wording here, although from the Pure docs, is a little misleading n the context of why this patch was written.\nMaybe add a note that KVM should use oracle-vm-server as a host personality is LUN IDs are required to go over 255.","commit_id":"d50d6a24d721e6ff737db4f2d8f0d19cc3e25d65"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"1b5e3b2392be46be17999f4d448de2885bd38fd3","unresolved":false,"context_lines":[{"line_number":183,"context_line":"between the array and the initiator. To ensure the array works optimally with"},{"line_number":184,"context_line":"the host, set the personality to the name of the host operating or virtual"},{"line_number":185,"context_line":"memory system. Valid values are aix, esxi, hitachi-vsp, hpux, oracle-vm-server,"},{"line_number":186,"context_line":"solaris, and vms. If your system is not listed as one of the valid host"},{"line_number":187,"context_line":"personalities, do not set the option. By default, the host personality is not"},{"line_number":188,"context_line":"set."},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"To set the host personality, modify the following option in the ``cinder.conf``"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9fdfeff1_8b1bc91a","line":187,"range":{"start_line":186,"start_character":18,"end_line":187,"end_character":36},"in_reply_to":"9fdfeff1_14e05b26","updated":"2019-03-04 16:50:36.000000000","message":"It wasn\u0027t clear to me if it was KVM, or Linux, or KVM+Linux, and if it\u0027s all Linux distros.  I\u0027d appreciate it if you could verify and tell me what to put in.","commit_id":"d50d6a24d721e6ff737db4f2d8f0d19cc3e25d65"}],"releasenotes/notes/pure-host-personality-3512f7ccd961d4ad.yaml":[{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"760183e69eb527c88e642d90c869cbd129968334","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Pure Storage FlashArray driver has added configuration option   "},{"line_number":5,"context_line":"    ``pure_host_personality`` for setting the host personality upon host"},{"line_number":6,"context_line":"    creation (existing hosts are not affected)."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9fdfeff1_2b01d905","line":4,"range":{"start_line":4,"start_character":65,"end_line":4,"end_character":68},"updated":"2019-02-14 13:50:06.000000000","message":"Remove whitespace","commit_id":"6d684be8ef8f7c3b4bfcd9f1a36d762c58d6b355"}]}
