)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"887d39982f669d330751524f1f85ffe62d327470","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2017-05-18 15:44:23 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"INFINIDAT: add support for iSCSI"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I4d3adc14610f8b6281b7d88c50a6ac04fef3041b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"ff0f0b1f_ab658147","line":8,"updated":"2017-05-19 03:38:32.000000000","message":"Please register a blueprint and reference it here as this is a new feature.","commit_id":"1d288eb3dd96644c0e8072d5e3e1d1d02ae0df4d"},{"author":{"_account_id":22683,"name":"Arnon Yaari","email":"arnony@infinidat.com","username":"arnony"},"change_message_id":"633a0eab87f42d6d31298c0e9bf307f4f5518217","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2017-05-18 15:44:23 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"INFINIDAT: add support for iSCSI"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I4d3adc14610f8b6281b7d88c50a6ac04fef3041b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"ff0f0b1f_acd1edfd","line":8,"in_reply_to":"ff0f0b1f_ab658147","updated":"2017-05-21 13:24:08.000000000","message":"Done","commit_id":"1d288eb3dd96644c0e8072d5e3e1d1d02ae0df4d"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"a8b71a04e4d031a78d7301e3fd5f1824f93ee7d3","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2017-05-21 16:18:24 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"INFINIDAT: add support for iSCSI"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I4d3adc14610f8b6281b7d88c50a6ac04fef3041b"},{"line_number":10,"context_line":"Implements: blueprint infinidat-iscsi-support"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"ff0f0b1f_6c573128","line":8,"updated":"2017-05-22 21:18:46.000000000","message":"I realize this is a pretty straight forward change, but your commit message should have a body enumerating what\u0027s happening in your patch. \n\nAlso, this should probably have a DocImpact tag.","commit_id":"260ff0f554cf54b80462a897c5b45ba879c72f4a"}],"cinder/volume/drivers/infinidat.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"99d5f35d5b6f0928162a3009faede431b5aa9b8f","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    # are dependencies, so if any of the dependencies are not importable"},{"line_number":40,"context_line":"    # we assume infinisdk is not installed"},{"line_number":41,"context_line":"    import capacity"},{"line_number":42,"context_line":"    from infi.dtypes.iqn import IQN"},{"line_number":43,"context_line":"    from infi.dtypes.wwn import WWN"},{"line_number":44,"context_line":"    import infinisdk"},{"line_number":45,"context_line":"except ImportError:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a30ddce_afcdd4b8","line":42,"updated":"2017-03-09 16:34:05.000000000","message":"According to the OpenStack Hacking rules, please import modules, not objects.","commit_id":"388d5be5a6b21f9f4258f423cafad9fc88c2fdad"},{"author":{"_account_id":22683,"name":"Arnon Yaari","email":"arnony@infinidat.com","username":"arnony"},"change_message_id":"41a66f8126aa3e863f8ca5fad3039c24cebf599a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    # are dependencies, so if any of the dependencies are not importable"},{"line_number":40,"context_line":"    # we assume infinisdk is not installed"},{"line_number":41,"context_line":"    import capacity"},{"line_number":42,"context_line":"    from infi.dtypes.iqn import IQN"},{"line_number":43,"context_line":"    from infi.dtypes.wwn import WWN"},{"line_number":44,"context_line":"    import infinisdk"},{"line_number":45,"context_line":"except ImportError:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a30ddce_93dc6d47","line":42,"in_reply_to":"9a30ddce_afcdd4b8","updated":"2017-03-12 10:56:18.000000000","message":"Done","commit_id":"388d5be5a6b21f9f4258f423cafad9fc88c2fdad"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"eaf833b890969f1e5bf10242c26cedb9fc623231","unresolved":false,"context_lines":[{"line_number":61,"context_line":"               choices\u003d[\u0027iscsi\u0027, \u0027fc\u0027],"},{"line_number":62,"context_line":"               help\u003d\u0027Protocol for transferring data between host and \u0027"},{"line_number":63,"context_line":"                    \u0027storage back-end.\u0027),"},{"line_number":64,"context_line":"    cfg.StrOpt(\u0027infinidat_iscsi_netspaces\u0027,"},{"line_number":65,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":66,"context_line":"               help\u003d\u0027Comma-separated list of names of network spaces to \u0027"},{"line_number":67,"context_line":"                    \u0027use for iSCSI connectivity\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a30ddce_e7efc784","line":64,"range":{"start_line":64,"start_character":8,"end_line":64,"end_character":14},"updated":"2017-03-10 14:21:03.000000000","message":"Would this be better as a ListOpt?","commit_id":"388d5be5a6b21f9f4258f423cafad9fc88c2fdad"},{"author":{"_account_id":22683,"name":"Arnon Yaari","email":"arnony@infinidat.com","username":"arnony"},"change_message_id":"41a66f8126aa3e863f8ca5fad3039c24cebf599a","unresolved":false,"context_lines":[{"line_number":61,"context_line":"               choices\u003d[\u0027iscsi\u0027, \u0027fc\u0027],"},{"line_number":62,"context_line":"               help\u003d\u0027Protocol for transferring data between host and \u0027"},{"line_number":63,"context_line":"                    \u0027storage back-end.\u0027),"},{"line_number":64,"context_line":"    cfg.StrOpt(\u0027infinidat_iscsi_netspaces\u0027,"},{"line_number":65,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":66,"context_line":"               help\u003d\u0027Comma-separated list of names of network spaces to \u0027"},{"line_number":67,"context_line":"                    \u0027use for iSCSI connectivity\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a30ddce_73d9b956","line":64,"range":{"start_line":64,"start_character":8,"end_line":64,"end_character":14},"in_reply_to":"9a30ddce_e7efc784","updated":"2017-03-12 10:56:18.000000000","message":"Done","commit_id":"388d5be5a6b21f9f4258f423cafad9fc88c2fdad"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"6b69b647fe2cd4badb81415426ca45984624968a","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"@interface.volumedriver"},{"line_number":89,"context_line":"class InfiniboxVolumeDriver(san.SanISCSIDriver):"},{"line_number":90,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    # ThirdPartySystems wiki page"},{"line_number":93,"context_line":"    CI_WIKI_NAME \u003d \"INFINIDAT_Cinder_CI\""}],"source_content_type":"text/x-python","patch_set":8,"id":"1f013ff3_f95fc53e","line":90,"updated":"2017-05-17 02:03:31.000000000","message":"So, I would suggest that you bump the version of this driver and start tracking versions with changes like others do.   This is a big feature added to this driver, and yet it\u0027s still versioned 1.0.   This leads to confusion and sadness for folks that want to debug issues in the future where this driver is used.","commit_id":"afbf5b2e90adba36f2d2c235c15ff81903b86ed9"},{"author":{"_account_id":22683,"name":"Arnon Yaari","email":"arnony@infinidat.com","username":"arnony"},"change_message_id":"9f7870605e1783d643b2246878c54e70f2039944","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"@interface.volumedriver"},{"line_number":89,"context_line":"class InfiniboxVolumeDriver(san.SanISCSIDriver):"},{"line_number":90,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    # ThirdPartySystems wiki page"},{"line_number":93,"context_line":"    CI_WIKI_NAME \u003d \"INFINIDAT_Cinder_CI\""}],"source_content_type":"text/x-python","patch_set":8,"id":"1f013ff3_13a365a0","line":90,"in_reply_to":"1f013ff3_f95fc53e","updated":"2017-05-17 14:01:58.000000000","message":"Done","commit_id":"afbf5b2e90adba36f2d2c235c15ff81903b86ed9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"887d39982f669d330751524f1f85ffe62d327470","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        backend_name \u003d self.configuration.safe_get(\u0027volume_backend_name\u0027)"},{"line_number":113,"context_line":"        self._backend_name \u003d backend_name or self.__class__.__name__"},{"line_number":114,"context_line":"        self._volume_stats \u003d None"},{"line_number":115,"context_line":"        if self.configuration.infinidat_storage_protocol \u003d\u003d \u0027iscsi\u0027:"},{"line_number":116,"context_line":"            self._protocol \u003d \u0027iSCSI\u0027"},{"line_number":117,"context_line":"            if len(self.configuration.infinidat_iscsi_netspaces) \u003d\u003d 0:"},{"line_number":118,"context_line":"                msg \u003d _(\u0027No iSCSI network spaces configured\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff0f0b1f_ab090196","line":115,"updated":"2017-05-19 03:38:32.000000000","message":"Should compare in lower case.  User could add \u0027iSCSI\u0027 or \u0027ISCSI\u0027 and those should be valid config values too.","commit_id":"1d288eb3dd96644c0e8072d5e3e1d1d02ae0df4d"},{"author":{"_account_id":22683,"name":"Arnon Yaari","email":"arnony@infinidat.com","username":"arnony"},"change_message_id":"633a0eab87f42d6d31298c0e9bf307f4f5518217","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        backend_name \u003d self.configuration.safe_get(\u0027volume_backend_name\u0027)"},{"line_number":113,"context_line":"        self._backend_name \u003d backend_name or self.__class__.__name__"},{"line_number":114,"context_line":"        self._volume_stats \u003d None"},{"line_number":115,"context_line":"        if self.configuration.infinidat_storage_protocol \u003d\u003d \u0027iscsi\u0027:"},{"line_number":116,"context_line":"            self._protocol \u003d \u0027iSCSI\u0027"},{"line_number":117,"context_line":"            if len(self.configuration.infinidat_iscsi_netspaces) \u003d\u003d 0:"},{"line_number":118,"context_line":"                msg \u003d _(\u0027No iSCSI network spaces configured\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff0f0b1f_d9f3e19d","line":115,"in_reply_to":"ff0f0b1f_ab090196","updated":"2017-05-21 13:24:08.000000000","message":"Done","commit_id":"1d288eb3dd96644c0e8072d5e3e1d1d02ae0df4d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"887d39982f669d330751524f1f85ffe62d327470","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            self._protocol \u003d \u0027iSCSI\u0027"},{"line_number":117,"context_line":"            if len(self.configuration.infinidat_iscsi_netspaces) \u003d\u003d 0:"},{"line_number":118,"context_line":"                msg \u003d _(\u0027No iSCSI network spaces configured\u0027)"},{"line_number":119,"context_line":"                raise exception.VolumeDriverException(msg)"},{"line_number":120,"context_line":"        else:"},{"line_number":121,"context_line":"            self._protocol \u003d \u0027FC\u0027"},{"line_number":122,"context_line":"        LOG.debug(\u0027setup complete\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff0f0b1f_cbb8b5c9","line":119,"updated":"2017-05-19 03:38:32.000000000","message":"VolumeDriverException(message\u003dmsg)","commit_id":"1d288eb3dd96644c0e8072d5e3e1d1d02ae0df4d"},{"author":{"_account_id":22683,"name":"Arnon Yaari","email":"arnony@infinidat.com","username":"arnony"},"change_message_id":"633a0eab87f42d6d31298c0e9bf307f4f5518217","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            self._protocol \u003d \u0027iSCSI\u0027"},{"line_number":117,"context_line":"            if len(self.configuration.infinidat_iscsi_netspaces) \u003d\u003d 0:"},{"line_number":118,"context_line":"                msg \u003d _(\u0027No iSCSI network spaces configured\u0027)"},{"line_number":119,"context_line":"                raise exception.VolumeDriverException(msg)"},{"line_number":120,"context_line":"        else:"},{"line_number":121,"context_line":"            self._protocol \u003d \u0027FC\u0027"},{"line_number":122,"context_line":"        LOG.debug(\u0027setup complete\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff0f0b1f_b9eeedb1","line":119,"in_reply_to":"ff0f0b1f_cbb8b5c9","updated":"2017-05-21 13:24:08.000000000","message":"Done","commit_id":"1d288eb3dd96644c0e8072d5e3e1d1d02ae0df4d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"887d39982f669d330751524f1f85ffe62d327470","unresolved":false,"context_lines":[{"line_number":218,"context_line":"        if netspace is None:"},{"line_number":219,"context_line":"            msg \u003d (_(\u0027Could not find iSCSI network space with name \"%s\"\u0027) %"},{"line_number":220,"context_line":"                   netspace_name)"},{"line_number":221,"context_line":"            raise exception.VolumeDriverException(msg)"},{"line_number":222,"context_line":"        return netspace"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    def _get_iscsi_portal(self, netspace):"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff0f0b1f_cb2b15e9","line":221,"updated":"2017-05-19 03:38:32.000000000","message":"VolumeDriverException(message\u003dmsg)","commit_id":"1d288eb3dd96644c0e8072d5e3e1d1d02ae0df4d"},{"author":{"_account_id":22683,"name":"Arnon Yaari","email":"arnony@infinidat.com","username":"arnony"},"change_message_id":"633a0eab87f42d6d31298c0e9bf307f4f5518217","unresolved":false,"context_lines":[{"line_number":218,"context_line":"        if netspace is None:"},{"line_number":219,"context_line":"            msg \u003d (_(\u0027Could not find iSCSI network space with name \"%s\"\u0027) %"},{"line_number":220,"context_line":"                   netspace_name)"},{"line_number":221,"context_line":"            raise exception.VolumeDriverException(msg)"},{"line_number":222,"context_line":"        return netspace"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    def _get_iscsi_portal(self, netspace):"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff0f0b1f_792e15fb","line":221,"in_reply_to":"ff0f0b1f_cb2b15e9","updated":"2017-05-21 13:24:08.000000000","message":"Done","commit_id":"1d288eb3dd96644c0e8072d5e3e1d1d02ae0df4d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"887d39982f669d330751524f1f85ffe62d327470","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        # if we get here it means there are no enabled ports"},{"line_number":230,"context_line":"        msg \u003d (_(\u0027No available interfaces in iSCSI network space %s\u0027) %"},{"line_number":231,"context_line":"               netspace.get_name())"},{"line_number":232,"context_line":"        raise exception.VolumeDriverException(msg)"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"    def _initialize_connection_iscsi(self, volume, connector):"},{"line_number":235,"context_line":"        volume_name \u003d self._make_volume_name(volume)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff0f0b1f_4b3f0525","line":232,"updated":"2017-05-19 03:38:32.000000000","message":"VolumeDriverException(message\u003dmsg)","commit_id":"1d288eb3dd96644c0e8072d5e3e1d1d02ae0df4d"},{"author":{"_account_id":22683,"name":"Arnon Yaari","email":"arnony@infinidat.com","username":"arnony"},"change_message_id":"633a0eab87f42d6d31298c0e9bf307f4f5518217","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        # if we get here it means there are no enabled ports"},{"line_number":230,"context_line":"        msg \u003d (_(\u0027No available interfaces in iSCSI network space %s\u0027) %"},{"line_number":231,"context_line":"               netspace.get_name())"},{"line_number":232,"context_line":"        raise exception.VolumeDriverException(msg)"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"    def _initialize_connection_iscsi(self, volume, connector):"},{"line_number":235,"context_line":"        volume_name \u003d self._make_volume_name(volume)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff0f0b1f_59359145","line":232,"in_reply_to":"ff0f0b1f_4b3f0525","updated":"2017-05-21 13:24:08.000000000","message":"Done","commit_id":"1d288eb3dd96644c0e8072d5e3e1d1d02ae0df4d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"887d39982f669d330751524f1f85ffe62d327470","unresolved":false,"context_lines":[{"line_number":257,"context_line":"            target_portals.append(self._get_iscsi_portal(netspace))"},{"line_number":258,"context_line":"            target_iqns.append(netspace.get_properties().iscsi_iqn)"},{"line_number":259,"context_line":"            target_luns.append(lun)"},{"line_number":260,"context_line":"        result_data \u003d dict(target_discovered\u003dTrue,"},{"line_number":261,"context_line":"                           target_portal\u003dtarget_portals[0],"},{"line_number":262,"context_line":"                           target_iqn\u003dtarget_iqns[0],"},{"line_number":263,"context_line":"                           target_lun\u003dtarget_luns[0])"},{"line_number":264,"context_line":"        if len(target_portals) \u003e 1:"},{"line_number":265,"context_line":"            # multiple network spaces defined"},{"line_number":266,"context_line":"            result_data.update(dict(target_portals\u003dtarget_portals,"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff0f0b1f_ab17c1a3","line":263,"range":{"start_line":260,"start_character":22,"end_line":263,"end_character":53},"updated":"2017-05-19 03:38:32.000000000","message":"Please use dict comprehension {} which has better performance.","commit_id":"1d288eb3dd96644c0e8072d5e3e1d1d02ae0df4d"},{"author":{"_account_id":22683,"name":"Arnon Yaari","email":"arnony@infinidat.com","username":"arnony"},"change_message_id":"633a0eab87f42d6d31298c0e9bf307f4f5518217","unresolved":false,"context_lines":[{"line_number":257,"context_line":"            target_portals.append(self._get_iscsi_portal(netspace))"},{"line_number":258,"context_line":"            target_iqns.append(netspace.get_properties().iscsi_iqn)"},{"line_number":259,"context_line":"            target_luns.append(lun)"},{"line_number":260,"context_line":"        result_data \u003d dict(target_discovered\u003dTrue,"},{"line_number":261,"context_line":"                           target_portal\u003dtarget_portals[0],"},{"line_number":262,"context_line":"                           target_iqn\u003dtarget_iqns[0],"},{"line_number":263,"context_line":"                           target_lun\u003dtarget_luns[0])"},{"line_number":264,"context_line":"        if len(target_portals) \u003e 1:"},{"line_number":265,"context_line":"            # multiple network spaces defined"},{"line_number":266,"context_line":"            result_data.update(dict(target_portals\u003dtarget_portals,"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff0f0b1f_797cd5ea","line":263,"range":{"start_line":260,"start_character":22,"end_line":263,"end_character":53},"in_reply_to":"ff0f0b1f_ab17c1a3","updated":"2017-05-21 13:24:08.000000000","message":"The difference in performance is less than a microsecond, and this routine isn\u0027t called too many times. IMHO readability trumps performance in this case, and IMO it is more readable when the values appear as arguments and not strings. Is it ok if we leave it like this?","commit_id":"1d288eb3dd96644c0e8072d5e3e1d1d02ae0df4d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"887d39982f669d330751524f1f85ffe62d327470","unresolved":false,"context_lines":[{"line_number":265,"context_line":"            # multiple network spaces defined"},{"line_number":266,"context_line":"            result_data.update(dict(target_portals\u003dtarget_portals,"},{"line_number":267,"context_line":"                                    target_iqns\u003dtarget_iqns,"},{"line_number":268,"context_line":"                                    target_luns\u003dtarget_luns))"},{"line_number":269,"context_line":"        if self.configuration.use_chap_auth:"},{"line_number":270,"context_line":"            result_data.update(dict(auth_method\u003d\u0027CHAP\u0027,"},{"line_number":271,"context_line":"                                    auth_username\u003dchap_username,"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff0f0b1f_2b23b107","line":268,"updated":"2017-05-19 03:38:32.000000000","message":"Same","commit_id":"1d288eb3dd96644c0e8072d5e3e1d1d02ae0df4d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"887d39982f669d330751524f1f85ffe62d327470","unresolved":false,"context_lines":[{"line_number":269,"context_line":"        if self.configuration.use_chap_auth:"},{"line_number":270,"context_line":"            result_data.update(dict(auth_method\u003d\u0027CHAP\u0027,"},{"line_number":271,"context_line":"                                    auth_username\u003dchap_username,"},{"line_number":272,"context_line":"                                    auth_password\u003dchap_password))"},{"line_number":273,"context_line":"        return dict(driver_volume_type\u003d\u0027iscsi\u0027,"},{"line_number":274,"context_line":"                    data\u003dresult_data)"},{"line_number":275,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ff0f0b1f_eb1c99c2","line":272,"updated":"2017-05-19 03:38:32.000000000","message":"Same","commit_id":"1d288eb3dd96644c0e8072d5e3e1d1d02ae0df4d"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"7809e90b675c3e18771e33118b43592bff95e4ab","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        return \u0027openstack-snap-%s\u0027 % cinder_snapshot.id"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    def _make_host_name(self, port):"},{"line_number":131,"context_line":"        return \u0027openstack-host-%s\u0027 % str(port).replace(\":\", \".\")"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    def _get_infinidat_volume_by_name(self, name):"},{"line_number":134,"context_line":"        volume \u003d self._system.volumes.safe_get(name\u003dname)"}],"source_content_type":"text/x-python","patch_set":11,"id":"ff0f0b1f_0700a700","line":131,"updated":"2017-05-22 08:44:49.000000000","message":"Please, do not use str. Use six.text_type instead","commit_id":"260ff0f554cf54b80462a897c5b45ba879c72f4a"},{"author":{"_account_id":22683,"name":"Arnon Yaari","email":"arnony@infinidat.com","username":"arnony"},"change_message_id":"ec2ee259a74e01ee3a79b62809b9ef54808c2724","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        return \u0027openstack-snap-%s\u0027 % cinder_snapshot.id"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    def _make_host_name(self, port):"},{"line_number":131,"context_line":"        return \u0027openstack-host-%s\u0027 % str(port).replace(\":\", \".\")"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    def _get_infinidat_volume_by_name(self, name):"},{"line_number":134,"context_line":"        volume \u003d self._system.volumes.safe_get(name\u003dname)"}],"source_content_type":"text/x-python","patch_set":11,"id":"ff0f0b1f_a7f69bf8","line":131,"in_reply_to":"ff0f0b1f_0700a700","updated":"2017-05-22 08:51:22.000000000","message":"There is no need for this string to be unicode in Python 2. This string is passed to the backend (self._system.hosts). I want to use \u0027str\u0027 in both Python versions.","commit_id":"260ff0f554cf54b80462a897c5b45ba879c72f4a"}]}
