)]}'
{"cinder/tests/unit/volume/drivers/test_zfssa.py":[{"author":{"_account_id":13059,"name":"Kedar Vidvans","email":"kedar.vidvans@oracle.com","username":"kedar-vidvans"},"change_message_id":"084d86f1f1c2d434bc03a256f2342153fbbc3a3a","unresolved":false,"context_lines":[{"line_number":443,"context_line":"            self.test_vol_snap[\u0027name\u0027])"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"    @mock.patch.object(iscsi.ZFSSAISCSIDriver, \u0027_get_provider_info\u0027)"},{"line_number":446,"context_line":"    def test_volume_attach_detach(self, _get_provider_info):"},{"line_number":447,"context_line":"        lcfg \u003d self.configuration"},{"line_number":448,"context_line":"        test_target_iqn \u003d \u0027iqn.1986-03.com.sun:02:00000-aaaa-bbbb-cccc-ddddd\u0027"},{"line_number":449,"context_line":"        stub_val \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a8ec9b2_00066d1c","line":446,"updated":"2016-09-16 15:24:36.000000000","message":"please add unit tests for the case when lun being attached already has initiatorgroups.","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":23561,"name":"iain MacDonnell","email":"iain.macdonnell@oracle.com","username":"imacdonn"},"change_message_id":"c98476f7df2e8fd5f519a6d15c35fd7c7ce0622a","unresolved":false,"context_lines":[{"line_number":443,"context_line":"            self.test_vol_snap[\u0027name\u0027])"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"    @mock.patch.object(iscsi.ZFSSAISCSIDriver, \u0027_get_provider_info\u0027)"},{"line_number":446,"context_line":"    def test_volume_attach_detach(self, _get_provider_info):"},{"line_number":447,"context_line":"        lcfg \u003d self.configuration"},{"line_number":448,"context_line":"        test_target_iqn \u003d \u0027iqn.1986-03.com.sun:02:00000-aaaa-bbbb-cccc-ddddd\u0027"},{"line_number":449,"context_line":"        stub_val \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_5e753ff7","line":446,"in_reply_to":"7a8ec9b2_00066d1c","updated":"2016-09-22 20:47:32.000000000","message":"OK, will look into this. I think there are 4 test cases - first connection, subsequent connect, first termination and last termination.","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"}],"cinder/volume/drivers/zfssa/zfssaiscsi.py":[{"author":{"_account_id":13059,"name":"Kedar Vidvans","email":"kedar.vidvans@oracle.com","username":"kedar-vidvans"},"change_message_id":"33fce461c567c32a149054fb792996982d0f853f","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        if isinstance(lun[\u0027number\u0027], list):"},{"line_number":298,"context_line":"            lun_numbers \u003d lun[\u0027number\u0027]"},{"line_number":299,"context_line":"        else:"},{"line_number":300,"context_line":"            lun_numbers \u003d [lun[\u0027number\u0027]]"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"        lun_initiator_group_mapping \u003d {}"},{"line_number":303,"context_line":"        for i in range(len(lun_numbers)):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_76e83b11","line":300,"updated":"2016-09-23 14:14:01.000000000","message":"I dont get this change. When will the lun number count be more than one?","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":23561,"name":"iain MacDonnell","email":"iain.macdonnell@oracle.com","username":"imacdonn"},"change_message_id":"e6c5b0541eea705b81a40a6461aaadcbdc85ce42","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        if isinstance(lun[\u0027number\u0027], list):"},{"line_number":298,"context_line":"            lun_numbers \u003d lun[\u0027number\u0027]"},{"line_number":299,"context_line":"        else:"},{"line_number":300,"context_line":"            lun_numbers \u003d [lun[\u0027number\u0027]]"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"        lun_initiator_group_mapping \u003d {}"},{"line_number":303,"context_line":"        for i in range(len(lun_numbers)):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_2ddad978","line":300,"in_reply_to":"5a8bc5a2_76e83b11","updated":"2016-09-23 16:01:51.000000000","message":"When the LUN is presented to more than one initiator group, like this:\n\nslcnas609:shares imtest\u003e lun testlun\nslcnas609:shares imtest/testlun (uncommitted)\u003e set targetgroup\u003dslcnas609\n                   targetgroup \u003d slcnas609 (uncommitted)\nslcnas609:shares imtest/testlun (uncommitted)\u003e set initiatorgroup\u003dslcai475,slcai476\n                initiatorgroup \u003d slcai475,slcai476 (uncommitted)\nslcnas609:shares imtest/testlun (uncommitted)\u003e set volsize\u003d1G\n                       volsize \u003d 1G (uncommitted)\nslcnas609:shares imtest/testlun (uncommitted)\u003e commit\nslcnas609:shares imtest\u003e select testlun get initiatorgroup\n                initiatorgroup \u003d slcai475,slcai476\nslcnas609:shares imtest\u003e select testlun get assignednumber \n                assignednumber \u003d 2,0\nslcnas609:shares imtest\u003e \n\n$ curl --insecure -u cinder:nottellinu https://slcnas609:215/api/storage/v1/pools/pool-609/projects/imtest/luns/testlun\n{\"lun\": {\"logbias\": \"latency\", \"creation\": \"20160923T15:11:17\", \"nodestroy\": false, \"assignednumber\": [2, 0], \"copies\": 1, \"href\": \"/api/storage/v1/pools/pool-609/projects/imtest/luns/testlun\", \"fixednumber\": true, \"space_data\": 1107820544.0, \"id\": \"ccdb2fbb-1767-5c43-0000-000000000000\", \"writecache\": false, \"compression\": \"off\", \"encryption\": \"off\", \"dedup\": false, \"snaplabel\": \"\", \"compressratio\": 100.0, \"source\": {\"compression\": \"inherited\", \"encryption\": \"inherited\", \"logbias\": \"inherited\", \"dedup\": \"inherited\", \"copies\": \"inherited\", \"maxblocksize\": \"inherited\", \"exported\": \"inherited\", \"checksum\": \"inherited\", \"keychangedate\": \"inherited\", \"rrsrc_actions\": \"inherited\", \"secondarycache\": \"inherited\"}, \"space_total\": 1107820544.0, \"lunumber\": \"auto,auto\", \"keychangedate\": \"\", \"space_available\": 102000641035264.0, \"secondarycache\": \"all\", \"status\": \"online\", \"space_snapshots\": 0.0, \"lunguid\": \"600144F08E113F95000057E5461718EB\", \"maxblocksize\": 1048576, \"exported\": true, \"initiatorgroup\": [\"slcai475\", \"slcai476\"], \"volsize\": 1073741824.0, \"keystatus\": \"none\", \"pool\": \"pool-609\", \"volblocksize\": 8192, \"name\": \"testlun\", \"checksum\": \"fletcher4\", \"canonical_name\": \"pool-609/local/imtest/testlun\", \"project\": \"imtest\", \"sparse\": false, \"targetgroup\": \"slcnas609\"}}","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":13059,"name":"Kedar Vidvans","email":"kedar.vidvans@oracle.com","username":"kedar-vidvans"},"change_message_id":"33fce461c567c32a149054fb792996982d0f853f","unresolved":false,"context_lines":[{"line_number":302,"context_line":"        lun_initiator_group_mapping \u003d {}"},{"line_number":303,"context_line":"        for i in range(len(lun_numbers)):"},{"line_number":304,"context_line":"            lun_initiator_group_mapping["},{"line_number":305,"context_line":"                lun[\u0027initiatorgroup\u0027][i]] \u003d lun_numbers[i]"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"        if self.tgtiqn is None:"},{"line_number":308,"context_line":"            self.tgtiqn \u003d self.zfssa.get_target(self._get_target_alias())"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_b63723af","line":305,"updated":"2016-09-23 14:14:01.000000000","message":"same comment as above. When will the count of lun numbers be more than one.","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":23561,"name":"iain MacDonnell","email":"iain.macdonnell@oracle.com","username":"imacdonn"},"change_message_id":"e6c5b0541eea705b81a40a6461aaadcbdc85ce42","unresolved":false,"context_lines":[{"line_number":302,"context_line":"        lun_initiator_group_mapping \u003d {}"},{"line_number":303,"context_line":"        for i in range(len(lun_numbers)):"},{"line_number":304,"context_line":"            lun_initiator_group_mapping["},{"line_number":305,"context_line":"                lun[\u0027initiatorgroup\u0027][i]] \u003d lun_numbers[i]"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"        if self.tgtiqn is None:"},{"line_number":308,"context_line":"            self.tgtiqn \u003d self.zfssa.get_target(self._get_target_alias())"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_ed5c71ef","line":305,"in_reply_to":"5a8bc5a2_b63723af","updated":"2016-09-23 16:01:51.000000000","message":"Same answer.","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":11509,"name":"Juan Zuluaga","email":"juan.c.zuluaga@oracle.com","username":"juzuluag"},"change_message_id":"9a15c4b2f6171e86e8c6c5a3edee3fd935f4b1d5","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        provider \u003d {"},{"line_number":311,"context_line":"            \u0027target_portal\u0027: self.zfssa_target_portal,"},{"line_number":312,"context_line":"            \u0027target_iqn\u0027: self.tgtiqn,"},{"line_number":313,"context_line":"            \u0027lun_initiator_group_mapping\u0027: lun_initiator_group_mapping,"},{"line_number":314,"context_line":"        }"},{"line_number":315,"context_line":"        if lcfg.zfssa_target_user !\u003d \u0027\u0027 and lcfg.zfssa_target_password !\u003d \u0027\u0027:"},{"line_number":316,"context_line":"            provider[\u0027provider_auth\u0027] \u003d (\u0027CHAP %s %s\u0027 %"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a8ec9b2_5ab78bf4","line":313,"updated":"2016-09-16 14:10:15.000000000","message":"Not sure if this \u0027new\u0027 property \"lun_initiator_group_mapping\" is going to make it work. Don\u0027t see it as part of iscsi.py base class.","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":23561,"name":"iain MacDonnell","email":"iain.macdonnell@oracle.com","username":"imacdonn"},"change_message_id":"efd050685d7367a1263afa44d3740d49f68810dd","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        provider \u003d {"},{"line_number":311,"context_line":"            \u0027target_portal\u0027: self.zfssa_target_portal,"},{"line_number":312,"context_line":"            \u0027target_iqn\u0027: self.tgtiqn,"},{"line_number":313,"context_line":"            \u0027lun_initiator_group_mapping\u0027: lun_initiator_group_mapping,"},{"line_number":314,"context_line":"        }"},{"line_number":315,"context_line":"        if lcfg.zfssa_target_user !\u003d \u0027\u0027 and lcfg.zfssa_target_password !\u003d \u0027\u0027:"},{"line_number":316,"context_line":"            provider[\u0027provider_auth\u0027] \u003d (\u0027CHAP %s %s\u0027 %"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_be12c360","line":313,"in_reply_to":"5a8bc5a2_1ecf3757","updated":"2016-09-22 20:51:55.000000000","message":"Pasted the wrong excerpt from ISCSIDriver - meant this:\n\n    ``provider_location``\n      if present, contains the iSCSI target information in the same\n      format as an ietadm discovery\n      i.e. \u0027\u003cip\u003e:\u003cport\u003e,\u003cportal\u003e \u003ctarget IQN\u003e\u0027\n\nBasically the same thing...","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":23561,"name":"iain MacDonnell","email":"iain.macdonnell@oracle.com","username":"imacdonn"},"change_message_id":"e6c5b0541eea705b81a40a6461aaadcbdc85ce42","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        provider \u003d {"},{"line_number":311,"context_line":"            \u0027target_portal\u0027: self.zfssa_target_portal,"},{"line_number":312,"context_line":"            \u0027target_iqn\u0027: self.tgtiqn,"},{"line_number":313,"context_line":"            \u0027lun_initiator_group_mapping\u0027: lun_initiator_group_mapping,"},{"line_number":314,"context_line":"        }"},{"line_number":315,"context_line":"        if lcfg.zfssa_target_user !\u003d \u0027\u0027 and lcfg.zfssa_target_password !\u003d \u0027\u0027:"},{"line_number":316,"context_line":"            provider[\u0027provider_auth\u0027] \u003d (\u0027CHAP %s %s\u0027 %"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_ed863112","line":313,"in_reply_to":"5a8bc5a2_25a3db50","updated":"2016-09-23 16:01:51.000000000","message":"I can leave the (incorrect) LU number in the provider_location if it makes things easier.","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":11509,"name":"Juan Zuluaga","email":"juan.c.zuluaga@oracle.com","username":"juzuluag"},"change_message_id":"30ada1f3bab4e5212d929f9f07bdebc890299d6d","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        provider \u003d {"},{"line_number":311,"context_line":"            \u0027target_portal\u0027: self.zfssa_target_portal,"},{"line_number":312,"context_line":"            \u0027target_iqn\u0027: self.tgtiqn,"},{"line_number":313,"context_line":"            \u0027lun_initiator_group_mapping\u0027: lun_initiator_group_mapping,"},{"line_number":314,"context_line":"        }"},{"line_number":315,"context_line":"        if lcfg.zfssa_target_user !\u003d \u0027\u0027 and lcfg.zfssa_target_password !\u003d \u0027\u0027:"},{"line_number":316,"context_line":"            provider[\u0027provider_auth\u0027] \u003d (\u0027CHAP %s %s\u0027 %"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_25a3db50","line":313,"in_reply_to":"5a8bc5a2_be12c360","updated":"2016-09-23 13:29:32.000000000","message":"Don\u0027t see any benefit yet about making these changes. Plus this might introduce a regression since the lun numbers are not fully ints.\nLook at line 767 or the original file.","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":23561,"name":"iain MacDonnell","email":"iain.macdonnell@oracle.com","username":"imacdonn"},"change_message_id":"d9320f2614902054f73219ba0f84032e21b57510","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        provider \u003d {"},{"line_number":311,"context_line":"            \u0027target_portal\u0027: self.zfssa_target_portal,"},{"line_number":312,"context_line":"            \u0027target_iqn\u0027: self.tgtiqn,"},{"line_number":313,"context_line":"            \u0027lun_initiator_group_mapping\u0027: lun_initiator_group_mapping,"},{"line_number":314,"context_line":"        }"},{"line_number":315,"context_line":"        if lcfg.zfssa_target_user !\u003d \u0027\u0027 and lcfg.zfssa_target_password !\u003d \u0027\u0027:"},{"line_number":316,"context_line":"            provider[\u0027provider_auth\u0027] \u003d (\u0027CHAP %s %s\u0027 %"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_3636a5e6","line":313,"in_reply_to":"5a8bc5a2_d84050a8","updated":"2016-09-23 18:11:56.000000000","message":"Good catch - thanks! I\u0027ll make sure the unit tests catch this too...\n\n    testtools.matchers._impl.MismatchError: 0 !\u003d \u00270\u0027","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":11509,"name":"Juan Zuluaga","email":"juan.c.zuluaga@oracle.com","username":"juzuluag"},"change_message_id":"4ba9ec5af7ba5b1d929b8b59a6f163dcc5b59196","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        provider \u003d {"},{"line_number":311,"context_line":"            \u0027target_portal\u0027: self.zfssa_target_portal,"},{"line_number":312,"context_line":"            \u0027target_iqn\u0027: self.tgtiqn,"},{"line_number":313,"context_line":"            \u0027lun_initiator_group_mapping\u0027: lun_initiator_group_mapping,"},{"line_number":314,"context_line":"        }"},{"line_number":315,"context_line":"        if lcfg.zfssa_target_user !\u003d \u0027\u0027 and lcfg.zfssa_target_password !\u003d \u0027\u0027:"},{"line_number":316,"context_line":"            provider[\u0027provider_auth\u0027] \u003d (\u0027CHAP %s %s\u0027 %"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_d84050a8","line":313,"in_reply_to":"5a8bc5a2_ed863112","updated":"2016-09-23 17:33:37.000000000","message":"See bug 1538582. Make sure not to introduce regressions.","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":23561,"name":"iain MacDonnell","email":"iain.macdonnell@oracle.com","username":"imacdonn"},"change_message_id":"c98476f7df2e8fd5f519a6d15c35fd7c7ce0622a","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        provider \u003d {"},{"line_number":311,"context_line":"            \u0027target_portal\u0027: self.zfssa_target_portal,"},{"line_number":312,"context_line":"            \u0027target_iqn\u0027: self.tgtiqn,"},{"line_number":313,"context_line":"            \u0027lun_initiator_group_mapping\u0027: lun_initiator_group_mapping,"},{"line_number":314,"context_line":"        }"},{"line_number":315,"context_line":"        if lcfg.zfssa_target_user !\u003d \u0027\u0027 and lcfg.zfssa_target_password !\u003d \u0027\u0027:"},{"line_number":316,"context_line":"            provider[\u0027provider_auth\u0027] \u003d (\u0027CHAP %s %s\u0027 %"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_1ecf3757","line":313,"in_reply_to":"7a8ec9b2_5ab78bf4","updated":"2016-09-22 20:47:32.000000000","message":"I\u0027m going to refactor things a bit to separate the LUN mapping part from the provider_info - I\u0027ll handle that inside initialize_connection() instead.\n\nAs far as I can tell, the dict returned by _get_provider_info() is not used anywhere other than to populate the iscsi_properties returned by initialize_connection(), and so it\u0027s not currently exposed outside the driver. Was there intent to reuse this dict elsewhere in the driver? It appears (from the ISCSIDriver base class) that the format currently used for provider_location is not correct anyway - it should not include in the LU number:\n\n    ``provider_location``\n      if present, contains the iSER target information in the same\n      format as an ietadm discovery\n      i.e. \u0027\u003cip\u003e:\u003cport\u003e,\u003cportal\u003e \u003ctarget IQN\u003e\u0027\n\nSo I\u0027m thinking of removing the LUN number part from _get_provider_info() and having that function take no arguments - the other stuff is not volume/LUN-specific. Would that break any plans for future use of that function elsewhere in the driver?","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":13059,"name":"Kedar Vidvans","email":"kedar.vidvans@oracle.com","username":"kedar-vidvans"},"change_message_id":"33fce461c567c32a149054fb792996982d0f853f","unresolved":false,"context_lines":[{"line_number":316,"context_line":"            provider[\u0027provider_auth\u0027] \u003d (\u0027CHAP %s %s\u0027 %"},{"line_number":317,"context_line":"                                         (lcfg.zfssa_target_user,"},{"line_number":318,"context_line":"                                          lcfg.zfssa_target_password))"},{"line_number":319,"context_line":"        LOG.debug(\u0027_get_provider_info(): [%s]\u0027, provider)"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"        return provider"},{"line_number":322,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_9616a7ef","line":319,"updated":"2016-09-23 14:14:01.000000000","message":"I would rewrite the message to say: zfssa._get_provider_info(). And we really dont want to be printing out the CHAP target_user and password in the logs for security reasons.","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":23561,"name":"iain MacDonnell","email":"iain.macdonnell@oracle.com","username":"imacdonn"},"change_message_id":"e6c5b0541eea705b81a40a6461aaadcbdc85ce42","unresolved":false,"context_lines":[{"line_number":316,"context_line":"            provider[\u0027provider_auth\u0027] \u003d (\u0027CHAP %s %s\u0027 %"},{"line_number":317,"context_line":"                                         (lcfg.zfssa_target_user,"},{"line_number":318,"context_line":"                                          lcfg.zfssa_target_password))"},{"line_number":319,"context_line":"        LOG.debug(\u0027_get_provider_info(): [%s]\u0027, provider)"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"        return provider"},{"line_number":322,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_cd833503","line":319,"in_reply_to":"5a8bc5a2_9616a7ef","updated":"2016-09-23 16:01:51.000000000","message":"Good point on the passwords. My next version of the patches doesn\u0027t have that line anyway, since I moved the LUN mapping stuff out of this function.","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":11509,"name":"Juan Zuluaga","email":"juan.c.zuluaga@oracle.com","username":"juzuluag"},"change_message_id":"30ada1f3bab4e5212d929f9f07bdebc890299d6d","unresolved":false,"context_lines":[{"line_number":744,"context_line":""},{"line_number":745,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":746,"context_line":"        \"\"\"Driver entry point to setup a connection for a volume.\"\"\""},{"line_number":747,"context_line":"        LOG.debug(\u0027initialize_connection: volume name: [%s] connector [%s]\u0027 %"},{"line_number":748,"context_line":"                  (volume[\u0027name\u0027], connector))"},{"line_number":749,"context_line":"        lcfg \u003d self.configuration"},{"line_number":750,"context_line":"        init_groups \u003d self.zfssa.get_initiator_initiatorgroup("}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_25d59bb8","line":747,"updated":"2016-09-23 13:29:32.000000000","message":"Seems like you\u0027re introducing new log messages. In order to be consistent with the other messages, can you take a look how those are written?","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":23561,"name":"iain MacDonnell","email":"iain.macdonnell@oracle.com","username":"imacdonn"},"change_message_id":"e6c5b0541eea705b81a40a6461aaadcbdc85ce42","unresolved":false,"context_lines":[{"line_number":744,"context_line":""},{"line_number":745,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":746,"context_line":"        \"\"\"Driver entry point to setup a connection for a volume.\"\"\""},{"line_number":747,"context_line":"        LOG.debug(\u0027initialize_connection: volume name: [%s] connector [%s]\u0027 %"},{"line_number":748,"context_line":"                  (volume[\u0027name\u0027], connector))"},{"line_number":749,"context_line":"        lcfg \u003d self.configuration"},{"line_number":750,"context_line":"        init_groups \u003d self.zfssa.get_initiator_initiatorgroup("}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_8dde8d0f","line":747,"in_reply_to":"5a8bc5a2_25d59bb8","updated":"2016-09-23 16:01:51.000000000","message":"I like to enclose values in square brackets so it\u0027s clear where they begin and end when studying the log, but if that\u0027s unacceptable, I\u0027ll revisit. If you have specific requirements for comment style, please provide reference to documentation of such?","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":23561,"name":"iain MacDonnell","email":"iain.macdonnell@oracle.com","username":"imacdonn"},"change_message_id":"d9320f2614902054f73219ba0f84032e21b57510","unresolved":false,"context_lines":[{"line_number":744,"context_line":""},{"line_number":745,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":746,"context_line":"        \"\"\"Driver entry point to setup a connection for a volume.\"\"\""},{"line_number":747,"context_line":"        LOG.debug(\u0027initialize_connection: volume name: [%s] connector [%s]\u0027 %"},{"line_number":748,"context_line":"                  (volume[\u0027name\u0027], connector))"},{"line_number":749,"context_line":"        lcfg \u003d self.configuration"},{"line_number":750,"context_line":"        init_groups \u003d self.zfssa.get_initiator_initiatorgroup("}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_d65bc12c","line":747,"in_reply_to":"5a8bc5a2_38e214a0","updated":"2016-09-23 18:11:56.000000000","message":"Have made some adjustments for the next patch.","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":11509,"name":"Juan Zuluaga","email":"juan.c.zuluaga@oracle.com","username":"juzuluag"},"change_message_id":"4ba9ec5af7ba5b1d929b8b59a6f163dcc5b59196","unresolved":false,"context_lines":[{"line_number":744,"context_line":""},{"line_number":745,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":746,"context_line":"        \"\"\"Driver entry point to setup a connection for a volume.\"\"\""},{"line_number":747,"context_line":"        LOG.debug(\u0027initialize_connection: volume name: [%s] connector [%s]\u0027 %"},{"line_number":748,"context_line":"                  (volume[\u0027name\u0027], connector))"},{"line_number":749,"context_line":"        lcfg \u003d self.configuration"},{"line_number":750,"context_line":"        init_groups \u003d self.zfssa.get_initiator_initiatorgroup("}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_38e214a0","line":747,"in_reply_to":"5a8bc5a2_8dde8d0f","updated":"2016-09-23 17:33:37.000000000","message":"For debug messages AFAIK there is no \u0027specific\u0027 format. BUT, for all ZFSSA drivers, just look at how they are done.","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":11509,"name":"Juan Zuluaga","email":"juan.c.zuluaga@oracle.com","username":"juzuluag"},"change_message_id":"30ada1f3bab4e5212d929f9f07bdebc890299d6d","unresolved":false,"context_lines":[{"line_number":771,"context_line":"        # Add any initiator groups that the volume is already connected to,"},{"line_number":772,"context_line":"        # (skipping the maskAll one)"},{"line_number":773,"context_line":"        lun \u003d self.zfssa.get_lun(lcfg.zfssa_pool, project, volume[\u0027name\u0027])"},{"line_number":774,"context_line":"        for init_group in lun[\u0027initiatorgroup\u0027]:"},{"line_number":775,"context_line":"            if init_group !\u003d \u0027com.sun.ms.vss.hg.maskAll\u0027:"},{"line_number":776,"context_line":"                new_init_groups.add(init_group)"},{"line_number":777,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_e563b33f","line":774,"updated":"2016-09-23 13:29:32.000000000","message":"If you\u0027re using Sets, you can use simple set operations (e.g s1 + s2) to simplify the code.","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":23561,"name":"iain MacDonnell","email":"iain.macdonnell@oracle.com","username":"imacdonn"},"change_message_id":"e6c5b0541eea705b81a40a6461aaadcbdc85ce42","unresolved":false,"context_lines":[{"line_number":771,"context_line":"        # Add any initiator groups that the volume is already connected to,"},{"line_number":772,"context_line":"        # (skipping the maskAll one)"},{"line_number":773,"context_line":"        lun \u003d self.zfssa.get_lun(lcfg.zfssa_pool, project, volume[\u0027name\u0027])"},{"line_number":774,"context_line":"        for init_group in lun[\u0027initiatorgroup\u0027]:"},{"line_number":775,"context_line":"            if init_group !\u003d \u0027com.sun.ms.vss.hg.maskAll\u0027:"},{"line_number":776,"context_line":"                new_init_groups.add(init_group)"},{"line_number":777,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_0d0efd3a","line":774,"in_reply_to":"5a8bc5a2_e563b33f","updated":"2016-09-23 16:01:51.000000000","message":"I\u0027m using the loop to filter out the maskAll dummy entry (see below). I suppose I could do a union and then remove that item, if that\u0027s significantly better (??). The point of using a set is to avoid including the same entry multiple times.","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":11509,"name":"Juan Zuluaga","email":"juan.c.zuluaga@oracle.com","username":"juzuluag"},"change_message_id":"30ada1f3bab4e5212d929f9f07bdebc890299d6d","unresolved":false,"context_lines":[{"line_number":772,"context_line":"        # (skipping the maskAll one)"},{"line_number":773,"context_line":"        lun \u003d self.zfssa.get_lun(lcfg.zfssa_pool, project, volume[\u0027name\u0027])"},{"line_number":774,"context_line":"        for init_group in lun[\u0027initiatorgroup\u0027]:"},{"line_number":775,"context_line":"            if init_group !\u003d \u0027com.sun.ms.vss.hg.maskAll\u0027:"},{"line_number":776,"context_line":"                new_init_groups.add(init_group)"},{"line_number":777,"context_line":""},{"line_number":778,"context_line":"        LOG.debug(\u0027initialize_connection: new initiatorgroup\u003d%s\u0027 %"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_e57c93ed","line":775,"updated":"2016-09-23 13:29:32.000000000","message":"So you\u0027re forcing to remove maskAll?","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":11509,"name":"Juan Zuluaga","email":"juan.c.zuluaga@oracle.com","username":"juzuluag"},"change_message_id":"4ba9ec5af7ba5b1d929b8b59a6f163dcc5b59196","unresolved":false,"context_lines":[{"line_number":772,"context_line":"        # (skipping the maskAll one)"},{"line_number":773,"context_line":"        lun \u003d self.zfssa.get_lun(lcfg.zfssa_pool, project, volume[\u0027name\u0027])"},{"line_number":774,"context_line":"        for init_group in lun[\u0027initiatorgroup\u0027]:"},{"line_number":775,"context_line":"            if init_group !\u003d \u0027com.sun.ms.vss.hg.maskAll\u0027:"},{"line_number":776,"context_line":"                new_init_groups.add(init_group)"},{"line_number":777,"context_line":""},{"line_number":778,"context_line":"        LOG.debug(\u0027initialize_connection: new initiatorgroup\u003d%s\u0027 %"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_38f9344e","line":775,"in_reply_to":"5a8bc5a2_ad4ee993","updated":"2016-09-23 17:33:37.000000000","message":"understood.","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":23561,"name":"iain MacDonnell","email":"iain.macdonnell@oracle.com","username":"imacdonn"},"change_message_id":"e6c5b0541eea705b81a40a6461aaadcbdc85ce42","unresolved":false,"context_lines":[{"line_number":772,"context_line":"        # (skipping the maskAll one)"},{"line_number":773,"context_line":"        lun \u003d self.zfssa.get_lun(lcfg.zfssa_pool, project, volume[\u0027name\u0027])"},{"line_number":774,"context_line":"        for init_group in lun[\u0027initiatorgroup\u0027]:"},{"line_number":775,"context_line":"            if init_group !\u003d \u0027com.sun.ms.vss.hg.maskAll\u0027:"},{"line_number":776,"context_line":"                new_init_groups.add(init_group)"},{"line_number":777,"context_line":""},{"line_number":778,"context_line":"        LOG.debug(\u0027initialize_connection: new initiatorgroup\u003d%s\u0027 %"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_ad4ee993","line":775,"in_reply_to":"5a8bc5a2_e57c93ed","updated":"2016-09-23 16:01:51.000000000","message":"maskAll is a dummy initiator group used as a placeholder. You would never want to set the initiatorgroup list to \"somecomputenode\" AND \"maskAll\" - therefore I skip it when assembling the new set of initiatorgroups.","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":11509,"name":"Juan Zuluaga","email":"juan.c.zuluaga@oracle.com","username":"juzuluag"},"change_message_id":"30ada1f3bab4e5212d929f9f07bdebc890299d6d","unresolved":false,"context_lines":[{"line_number":777,"context_line":""},{"line_number":778,"context_line":"        LOG.debug(\u0027initialize_connection: new initiatorgroup\u003d%s\u0027 %"},{"line_number":779,"context_line":"                  (list(new_init_groups)))"},{"line_number":780,"context_line":"        self.zfssa.set_lun_initiatorgroup(lcfg.zfssa_pool,"},{"line_number":781,"context_line":"                                          project,"},{"line_number":782,"context_line":"                                          volume[\u0027name\u0027],"},{"line_number":783,"context_line":"                                          list(new_init_groups))"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_45cb8753","line":780,"updated":"2016-09-23 13:29:32.000000000","message":"you need to double check whether the rest api can handle a list() or just a single initgrp. This was written in such a way that there is a for loop to set 1 initgrp at the time. Now this approach is passing a list.","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":11509,"name":"Juan Zuluaga","email":"juan.c.zuluaga@oracle.com","username":"juzuluag"},"change_message_id":"4ba9ec5af7ba5b1d929b8b59a6f163dcc5b59196","unresolved":false,"context_lines":[{"line_number":777,"context_line":""},{"line_number":778,"context_line":"        LOG.debug(\u0027initialize_connection: new initiatorgroup\u003d%s\u0027 %"},{"line_number":779,"context_line":"                  (list(new_init_groups)))"},{"line_number":780,"context_line":"        self.zfssa.set_lun_initiatorgroup(lcfg.zfssa_pool,"},{"line_number":781,"context_line":"                                          project,"},{"line_number":782,"context_line":"                                          volume[\u0027name\u0027],"},{"line_number":783,"context_line":"                                          list(new_init_groups))"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_f8218cb5","line":780,"in_reply_to":"5a8bc5a2_2d3c992e","updated":"2016-09-23 17:33:37.000000000","message":"This is an issue then. What exact version of the appliance are you testing with? This might break old versions of the appliance (starting from ak8.2)","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":23561,"name":"iain MacDonnell","email":"iain.macdonnell@oracle.com","username":"imacdonn"},"change_message_id":"e6c5b0541eea705b81a40a6461aaadcbdc85ce42","unresolved":false,"context_lines":[{"line_number":777,"context_line":""},{"line_number":778,"context_line":"        LOG.debug(\u0027initialize_connection: new initiatorgroup\u003d%s\u0027 %"},{"line_number":779,"context_line":"                  (list(new_init_groups)))"},{"line_number":780,"context_line":"        self.zfssa.set_lun_initiatorgroup(lcfg.zfssa_pool,"},{"line_number":781,"context_line":"                                          project,"},{"line_number":782,"context_line":"                                          volume[\u0027name\u0027],"},{"line_number":783,"context_line":"                                          list(new_init_groups))"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_2d3c992e","line":780,"in_reply_to":"5a8bc5a2_45cb8753","updated":"2016-09-23 16:01:51.000000000","message":"That\u0027s one of the main reasons that the current code *doesn\u0027t work*. If you set the initiator group to \"nodea\", then set it to \"nodeb\", it will no longer include \"nodea\"! My patch *does work*. Support for presenting a LUN to multiple initiator groups was introduced in ak8.","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":23561,"name":"iain MacDonnell","email":"iain.macdonnell@oracle.com","username":"imacdonn"},"change_message_id":"d9320f2614902054f73219ba0f84032e21b57510","unresolved":false,"context_lines":[{"line_number":777,"context_line":""},{"line_number":778,"context_line":"        LOG.debug(\u0027initialize_connection: new initiatorgroup\u003d%s\u0027 %"},{"line_number":779,"context_line":"                  (list(new_init_groups)))"},{"line_number":780,"context_line":"        self.zfssa.set_lun_initiatorgroup(lcfg.zfssa_pool,"},{"line_number":781,"context_line":"                                          project,"},{"line_number":782,"context_line":"                                          volume[\u0027name\u0027],"},{"line_number":783,"context_line":"                                          list(new_init_groups))"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_569091ec","line":780,"in_reply_to":"5a8bc5a2_f8218cb5","updated":"2016-09-23 18:11:56.000000000","message":"I\u0027m testing against 2013.06.05.6.3,1-1.1 - that\u0027s all I have available.\n\n\"SAN - Multiple initiator groups per LUN\" was introduced in the 2013.1.0.1 release - see:\n\nhttps://support.oracle.com/epmos/main/downloadattachmentprocessor?parent\u003dDOCUMENT\u0026sourceId\u003d2021771.1\u0026attachid\u003d2021771.1:2013_101_README1\u0026clickstream\u003dyes\n\nPer:\n\nhttp://docs.openstack.org/mitaka/config-reference/block-storage/drivers/zfssa-iscsi-driver.html\n\nthis driver supports 2013.1.2.0 and later, so I believe that there is no issue here.","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":11509,"name":"Juan Zuluaga","email":"juan.c.zuluaga@oracle.com","username":"juzuluag"},"change_message_id":"30ada1f3bab4e5212d929f9f07bdebc890299d6d","unresolved":false,"context_lines":[{"line_number":827,"context_line":"        # the volume is currently connected to to remove those associated with"},{"line_number":828,"context_line":"        # the connector that we\u0027re detaching from"},{"line_number":829,"context_line":"        new_init_groups \u003d set()"},{"line_number":830,"context_line":"        for initiatorgroup in lun[\u0027initiatorgroup\u0027]:"},{"line_number":831,"context_line":"            if initiatorgroup not in connector_init_groups:"},{"line_number":832,"context_line":"                new_init_groups.add(initiatorgroup)"},{"line_number":833,"context_line":"        LOG.debug(\u0027terminate_connection: new initiatorgroup\u003d%s\u0027 %"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_65ac0336","line":830,"updated":"2016-09-23 13:29:32.000000000","message":"Same comments as the ones for initialize_connection().","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":23561,"name":"iain MacDonnell","email":"iain.macdonnell@oracle.com","username":"imacdonn"},"change_message_id":"e6c5b0541eea705b81a40a6461aaadcbdc85ce42","unresolved":false,"context_lines":[{"line_number":827,"context_line":"        # the volume is currently connected to to remove those associated with"},{"line_number":828,"context_line":"        # the connector that we\u0027re detaching from"},{"line_number":829,"context_line":"        new_init_groups \u003d set()"},{"line_number":830,"context_line":"        for initiatorgroup in lun[\u0027initiatorgroup\u0027]:"},{"line_number":831,"context_line":"            if initiatorgroup not in connector_init_groups:"},{"line_number":832,"context_line":"                new_init_groups.add(initiatorgroup)"},{"line_number":833,"context_line":"        LOG.debug(\u0027terminate_connection: new initiatorgroup\u003d%s\u0027 %"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_a82a577c","line":830,"in_reply_to":"5a8bc5a2_65ac0336","updated":"2016-09-23 16:01:51.000000000","message":"I think I addressed all of them already.","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":11509,"name":"Juan Zuluaga","email":"juan.c.zuluaga@oracle.com","username":"juzuluag"},"change_message_id":"3a28b45a1251b8e223070bd94fc6ab7f36f8cca8","unresolved":false,"context_lines":[{"line_number":754,"context_line":"        # \u0027com.sun.ms.vss.hg.maskAll\u0027 is a dummy value used only when the"},{"line_number":755,"context_line":"        # LUN is not currently presented to any initiatorgroups - so remove"},{"line_number":756,"context_line":"        # it from the set"},{"line_number":757,"context_line":"        new_init_groups.discard(\u0027com.sun.ms.vss.hg.maskAll\u0027)"},{"line_number":758,"context_line":""},{"line_number":759,"context_line":"        self.zfssa.set_lun_initiatorgroup(lcfg.zfssa_pool,"},{"line_number":760,"context_line":"                                          project,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a98d1f4_5c1c4013","line":757,"updated":"2016-09-29 19:06:25.000000000","message":"This filter shouldn\u0027t be implemented here. We are dealing with \u0027zfssa internals\u0027 stuff at zfssarest.py module for instance.","commit_id":"bd8fcc1434d71a2cdd63794838c2055412435294"},{"author":{"_account_id":23561,"name":"iain MacDonnell","email":"iain.macdonnell@oracle.com","username":"imacdonn"},"change_message_id":"bd4ee8d3e32140162bb7a3346f76002404fa6dcd","unresolved":false,"context_lines":[{"line_number":754,"context_line":"        # \u0027com.sun.ms.vss.hg.maskAll\u0027 is a dummy value used only when the"},{"line_number":755,"context_line":"        # LUN is not currently presented to any initiatorgroups - so remove"},{"line_number":756,"context_line":"        # it from the set"},{"line_number":757,"context_line":"        new_init_groups.discard(\u0027com.sun.ms.vss.hg.maskAll\u0027)"},{"line_number":758,"context_line":""},{"line_number":759,"context_line":"        self.zfssa.set_lun_initiatorgroup(lcfg.zfssa_pool,"},{"line_number":760,"context_line":"                                          project,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a98d1f4_58ea7e10","line":757,"in_reply_to":"3a98d1f4_5c1c4013","updated":"2016-09-30 01:02:39.000000000","message":"That crossed my mind, but I decided that the whole driver deals with ZFSSA internals, so I left it. I\u0027ve moved it for the next version of the patch, though.","commit_id":"bd8fcc1434d71a2cdd63794838c2055412435294"},{"author":{"_account_id":11509,"name":"Juan Zuluaga","email":"juan.c.zuluaga@oracle.com","username":"juzuluag"},"change_message_id":"3a28b45a1251b8e223070bd94fc6ab7f36f8cca8","unresolved":false,"context_lines":[{"line_number":821,"context_line":"        # the volume is currently connected to to remove those associated with"},{"line_number":822,"context_line":"        # the connector that we\u0027re detaching from"},{"line_number":823,"context_line":"        new_init_groups \u003d set()"},{"line_number":824,"context_line":"        for initiatorgroup in lun[\u0027initiatorgroup\u0027]:"},{"line_number":825,"context_line":"            if initiatorgroup not in connector_init_groups:"},{"line_number":826,"context_line":"                new_init_groups.add(initiatorgroup)"},{"line_number":827,"context_line":"        LOG.debug(\u0027zfssa.terminate_connection: new initiatorgroup\u003d%s\u0027 %"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a98d1f4_a1a6ff50","line":824,"updated":"2016-09-29 19:06:25.000000000","message":"Maybe you could do the same as initialize_connectIon, since you\u0027re using a set.\nSomething like: (all_init  \u0026 rm_init) ^ all_init","commit_id":"bd8fcc1434d71a2cdd63794838c2055412435294"},{"author":{"_account_id":23561,"name":"iain MacDonnell","email":"iain.macdonnell@oracle.com","username":"imacdonn"},"change_message_id":"bd4ee8d3e32140162bb7a3346f76002404fa6dcd","unresolved":false,"context_lines":[{"line_number":821,"context_line":"        # the volume is currently connected to to remove those associated with"},{"line_number":822,"context_line":"        # the connector that we\u0027re detaching from"},{"line_number":823,"context_line":"        new_init_groups \u003d set()"},{"line_number":824,"context_line":"        for initiatorgroup in lun[\u0027initiatorgroup\u0027]:"},{"line_number":825,"context_line":"            if initiatorgroup not in connector_init_groups:"},{"line_number":826,"context_line":"                new_init_groups.add(initiatorgroup)"},{"line_number":827,"context_line":"        LOG.debug(\u0027zfssa.terminate_connection: new initiatorgroup\u003d%s\u0027 %"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a98d1f4_d8c5ae8e","line":824,"in_reply_to":"3a98d1f4_a1a6ff50","updated":"2016-09-30 01:02:39.000000000","message":"Next version leverages sets.","commit_id":"bd8fcc1434d71a2cdd63794838c2055412435294"},{"author":{"_account_id":10353,"name":"Drew Fisher","email":"drew.fisher@oracle.com","username":"drew-fisher"},"change_message_id":"024f63fe33fdb297ce3c09f6c3381af73acf5bcb","unresolved":false,"context_lines":[{"line_number":288,"context_line":"        if self.tgtiqn is None:"},{"line_number":289,"context_line":"            self.tgtiqn \u003d self.zfssa.get_target(self._get_target_alias())"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"        loc \u003d \"%s %s\" % (self.zfssa_target_portal, self.tgtiqn)"},{"line_number":292,"context_line":"        LOG.debug(\u0027_get_provider_info: provider_location: %s\u0027, loc)"},{"line_number":293,"context_line":"        provider \u003d {\u0027provider_location\u0027: loc}"},{"line_number":294,"context_line":"        if lcfg.zfssa_target_user !\u003d \u0027\u0027 and lcfg.zfssa_target_password !\u003d \u0027\u0027:"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a461143_92342adf","line":291,"updated":"2017-01-25 19:23:23.000000000","message":"I think this needs to be lcfg.zfssa_target_portal\n\nI\u0027m working with the latest patch and i\u0027m getting an error here in that the class doesn\u0027t know about the \u0027zfssa_target_portal\u0027 attribute.  If I change it to lcfg, it seems to work.","commit_id":"9c39d55f8f3bfa8a1384919df2c3f8e6aafef69a"},{"author":{"_account_id":23561,"name":"iain MacDonnell","email":"iain.macdonnell@oracle.com","username":"imacdonn"},"change_message_id":"51765597034093b5bb8a0e3e7e2fad61ba3f1746","unresolved":false,"context_lines":[{"line_number":288,"context_line":"        if self.tgtiqn is None:"},{"line_number":289,"context_line":"            self.tgtiqn \u003d self.zfssa.get_target(self._get_target_alias())"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"        loc \u003d \"%s %s\" % (self.zfssa_target_portal, self.tgtiqn)"},{"line_number":292,"context_line":"        LOG.debug(\u0027_get_provider_info: provider_location: %s\u0027, loc)"},{"line_number":293,"context_line":"        provider \u003d {\u0027provider_location\u0027: loc}"},{"line_number":294,"context_line":"        if lcfg.zfssa_target_user !\u003d \u0027\u0027 and lcfg.zfssa_target_password !\u003d \u0027\u0027:"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a461143_ada70b4e","line":291,"in_reply_to":"3a461143_92342adf","updated":"2017-01-25 20:02:40.000000000","message":"If and only if your codebase predates this: https://github.com/openstack/cinder/commit/cf8e4fa16c291bf9f6127ff6ee15c4127dd32403","commit_id":"9c39d55f8f3bfa8a1384919df2c3f8e6aafef69a"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"a475c0efdf2a41cc198ed546210d4f2693472738","unresolved":false,"context_lines":[{"line_number":724,"context_line":"        \"\"\"Driver entry point to setup a connection for a volume.\"\"\""},{"line_number":725,"context_line":"        LOG.debug(\u0027Initializing volume connection. volume: %(volname)s, \u0027"},{"line_number":726,"context_line":"                  \u0027connector: %(connector)s\u0027,"},{"line_number":727,"context_line":"                  {\u0027volname\u0027: volume[\u0027name\u0027],"},{"line_number":728,"context_line":"                   \u0027connector\u0027: connector})"},{"line_number":729,"context_line":"        lcfg \u003d self.configuration"},{"line_number":730,"context_line":"        init_groups \u003d self.zfssa.get_initiator_initiatorgroup("}],"source_content_type":"text/x-python","patch_set":8,"id":"5f201791_36783fc2","line":727,"updated":"2017-06-27 09:13:31.000000000","message":"Please, use volume ID in the logs","commit_id":"9c39d55f8f3bfa8a1384919df2c3f8e6aafef69a"},{"author":{"_account_id":23561,"name":"iain MacDonnell","email":"iain.macdonnell@oracle.com","username":"imacdonn"},"change_message_id":"3a4ce0f974c65570c257274003669b7d7b8068ee","unresolved":false,"context_lines":[{"line_number":724,"context_line":"        \"\"\"Driver entry point to setup a connection for a volume.\"\"\""},{"line_number":725,"context_line":"        LOG.debug(\u0027Initializing volume connection. volume: %(volname)s, \u0027"},{"line_number":726,"context_line":"                  \u0027connector: %(connector)s\u0027,"},{"line_number":727,"context_line":"                  {\u0027volname\u0027: volume[\u0027name\u0027],"},{"line_number":728,"context_line":"                   \u0027connector\u0027: connector})"},{"line_number":729,"context_line":"        lcfg \u003d self.configuration"},{"line_number":730,"context_line":"        init_groups \u003d self.zfssa.get_initiator_initiatorgroup("}],"source_content_type":"text/x-python","patch_set":8,"id":"5f201791_65f38975","line":727,"in_reply_to":"5f201791_36783fc2","updated":"2017-07-14 01:24:16.000000000","message":"There are lots of other debug messages in this file that use the name rather than the ID (volume or snapshot). I was asked earlier to keep messages consistent with existing format (even though there is inconsistency already). If this needs to be cleaned up, it probably should be a separate bug. That said, I need to rebase anyway, so I\u0027ll change the two log messages that I touched to use the ID.","commit_id":"9c39d55f8f3bfa8a1384919df2c3f8e6aafef69a"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"e34de31d677a17dd6ecc746f6576a4a80a6f41b2","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        1.0.2:"},{"line_number":121,"context_line":"            Volume manage/unmanage support."},{"line_number":122,"context_line":"    \"\"\""},{"line_number":123,"context_line":"    VERSION \u003d \u00271.0.2\u0027"},{"line_number":124,"context_line":"    protocol \u003d \u0027iSCSI\u0027"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    # ThirdPartySystems wiki page"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f1a1f67_0083ac05","line":123,"updated":"2017-07-18 17:27:41.000000000","message":"probably should bump version and add comments in above block, since this is a pretty significant fix (allowing nova live migration to work).","commit_id":"04b540f3b491d52bce14a322c9a4ac50afeb8742"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"e34de31d677a17dd6ecc746f6576a4a80a6f41b2","unresolved":false,"context_lines":[{"line_number":740,"context_line":"        LOG.debug(\u0027Initializing volume connection. volume: %(volname)s, \u0027"},{"line_number":741,"context_line":"                  \u0027connector: %(connector)s\u0027,"},{"line_number":742,"context_line":"                  {\u0027volname\u0027: volume[\u0027id\u0027],"},{"line_number":743,"context_line":"                   \u0027connector\u0027: connector})"},{"line_number":744,"context_line":"        lcfg \u003d self.configuration"},{"line_number":745,"context_line":"        init_groups \u003d self.zfssa.get_initiator_initiatorgroup("},{"line_number":746,"context_line":"            connector[\u0027initiator\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f1a1f67_40a404ba","line":743,"updated":"2017-07-18 17:27:41.000000000","message":"Why not use the cinder.utils @trace  ?   This logs the entry, the params passed in, as well as the return value and timing.","commit_id":"04b540f3b491d52bce14a322c9a4ac50afeb8742"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"e34de31d677a17dd6ecc746f6576a4a80a6f41b2","unresolved":false,"context_lines":[{"line_number":809,"context_line":"        LOG.debug(\u0027Terminating volume connection. volume: %(volname)s, \u0027"},{"line_number":810,"context_line":"                  \u0027connector: %(connector)s\u0027,"},{"line_number":811,"context_line":"                  {\u0027volname\u0027: volume[\u0027id\u0027],"},{"line_number":812,"context_line":"                   \u0027connector\u0027: connector})"},{"line_number":813,"context_line":"        lcfg \u003d self.configuration"},{"line_number":814,"context_line":"        project \u003d lcfg.zfssa_project"},{"line_number":815,"context_line":"        pool \u003d lcfg.zfssa_pool"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f1a1f67_00aa8c83","line":812,"updated":"2017-07-18 17:27:41.000000000","message":"same","commit_id":"04b540f3b491d52bce14a322c9a4ac50afeb8742"}],"cinder/volume/drivers/zfssa/zfssarest.py":[{"author":{"_account_id":11509,"name":"Juan Zuluaga","email":"juan.c.zuluaga@oracle.com","username":"juzuluag"},"change_message_id":"30ada1f3bab4e5212d929f9f07bdebc890299d6d","unresolved":false,"context_lines":[{"line_number":797,"context_line":""},{"line_number":798,"context_line":"    def set_lun_initiatorgroup(self, pool, project, lun, initiatorgroup):"},{"line_number":799,"context_line":"        \"\"\"Set the initiatorgroup property of a LUN.\"\"\""},{"line_number":800,"context_line":"        if len(initiatorgroup) \u003d\u003d 0:"},{"line_number":801,"context_line":"            initiatorgroup \u003d \u0027com.sun.ms.vss.hg.maskAll\u0027"},{"line_number":802,"context_line":""},{"line_number":803,"context_line":"        svc \u003d \u0027/api/storage/v1/pools/\u0027 + pool + \u0027/projects/\u0027 + \\"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_057dff6d","line":800,"updated":"2016-09-23 13:29:32.000000000","message":"I might be wrong, but I think the appliance api accepts an initiator group(line 806), and not a list. So there is no need to change this method.","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":23561,"name":"iain MacDonnell","email":"iain.macdonnell@oracle.com","username":"imacdonn"},"change_message_id":"e6c5b0541eea705b81a40a6461aaadcbdc85ce42","unresolved":false,"context_lines":[{"line_number":797,"context_line":""},{"line_number":798,"context_line":"    def set_lun_initiatorgroup(self, pool, project, lun, initiatorgroup):"},{"line_number":799,"context_line":"        \"\"\"Set the initiatorgroup property of a LUN.\"\"\""},{"line_number":800,"context_line":"        if len(initiatorgroup) \u003d\u003d 0:"},{"line_number":801,"context_line":"            initiatorgroup \u003d \u0027com.sun.ms.vss.hg.maskAll\u0027"},{"line_number":802,"context_line":""},{"line_number":803,"context_line":"        svc \u003d \u0027/api/storage/v1/pools/\u0027 + pool + \u0027/projects/\u0027 + \\"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_b3780c91","line":800,"in_reply_to":"5a8bc5a2_057dff6d","updated":"2016-09-23 16:01:51.000000000","message":"It has to be a list to present the LUN to more than one initiatorgroup at the same time. It does work. Unfortunately the documentation doesn\u0027t seem to cover this...\n\nhttps://docs.oracle.com/cd/E37831_01/html/E52433/makehtml-id-181.html\n\nPerhaps you could confirm with the ak developers if you\u0027re unconvinced?","commit_id":"b08cc5b5ec69e0d2de61b1782a8d5c2009bfd7fd"},{"author":{"_account_id":11509,"name":"Juan Zuluaga","email":"juan.c.zuluaga@oracle.com","username":"juzuluag"},"change_message_id":"3a28b45a1251b8e223070bd94fc6ab7f36f8cca8","unresolved":false,"context_lines":[{"line_number":797,"context_line":""},{"line_number":798,"context_line":"    def set_lun_initiatorgroup(self, pool, project, lun, initiatorgroup):"},{"line_number":799,"context_line":"        \"\"\"Set the initiatorgroup property of a LUN.\"\"\""},{"line_number":800,"context_line":"        if len(initiatorgroup) \u003d\u003d 0:"},{"line_number":801,"context_line":"            initiatorgroup \u003d \u0027com.sun.ms.vss.hg.maskAll\u0027"},{"line_number":802,"context_line":""},{"line_number":803,"context_line":"        svc \u003d \u0027/api/storage/v1/pools/\u0027 + pool + \u0027/projects/\u0027 + \\"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a98d1f4_7c63bcdc","line":800,"updated":"2016-09-29 19:06:25.000000000","message":"I\u0027m not sure if you got what I mentioned about older versions of the appliance kit.\nWith this change anything older than 8.3 won\u0027t work.","commit_id":"bd8fcc1434d71a2cdd63794838c2055412435294"},{"author":{"_account_id":23561,"name":"iain MacDonnell","email":"iain.macdonnell@oracle.com","username":"imacdonn"},"change_message_id":"bd4ee8d3e32140162bb7a3346f76002404fa6dcd","unresolved":false,"context_lines":[{"line_number":797,"context_line":""},{"line_number":798,"context_line":"    def set_lun_initiatorgroup(self, pool, project, lun, initiatorgroup):"},{"line_number":799,"context_line":"        \"\"\"Set the initiatorgroup property of a LUN.\"\"\""},{"line_number":800,"context_line":"        if len(initiatorgroup) \u003d\u003d 0:"},{"line_number":801,"context_line":"            initiatorgroup \u003d \u0027com.sun.ms.vss.hg.maskAll\u0027"},{"line_number":802,"context_line":""},{"line_number":803,"context_line":"        svc \u003d \u0027/api/storage/v1/pools/\u0027 + pool + \u0027/projects/\u0027 + \\"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a98d1f4_d873ee7e","line":800,"in_reply_to":"3a98d1f4_7c63bcdc","updated":"2016-09-30 01:02:39.000000000","message":"OK. The next version of the patch attempts to maintain backward-compatibility with versions of the REST API that don\u0027t handle lists of initiatorgroups (and numbers). Live-migration cannot work with such versions, though, so that may need to be release-noted. I think some consideration ought to be made towards increasing the minimum software version supported by this driver.","commit_id":"bd8fcc1434d71a2cdd63794838c2055412435294"}]}
