)]}'
{"cinder/tests/unit/volume/drivers/test_fujitsu.py":[{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"c26c4a3de00b1782c7a29ab3e8770c355c7c3604","unresolved":false,"context_lines":[{"line_number":711,"context_line":"        self.configuration \u003d mock.Mock(spec\u003dconf.Configuration)"},{"line_number":712,"context_line":"        self.configuration.cinder_eternus_config_file \u003d self.config_file.name"},{"line_number":713,"context_line":""},{"line_number":714,"context_line":"        self.stubs.Set(dx_common.FJDXCommon, \u0027_get_eternus_connection\u0027,"},{"line_number":715,"context_line":"                       self.fake_eternus_connection)"},{"line_number":716,"context_line":""},{"line_number":717,"context_line":"        instancename \u003d FakeCIMInstanceName()"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_f6ec4594","line":714,"range":{"start_line":714,"start_character":13,"end_line":714,"end_character":18},"updated":"2016-01-07 16:00:54.000000000","message":"We should not be using stubs. We should be using mock instead.","commit_id":"e80dffef80dd5464301373f8e69e26b81eab63c2"},{"author":{"_account_id":10674,"name":"Yusuke Hayashi","email":"yusuke.hayashi.710@gmail.com","username":"YusukeHayashi"},"change_message_id":"ff6e3358f8c1fcae89d73e70971a20a87171253f","unresolved":false,"context_lines":[{"line_number":711,"context_line":"        self.configuration \u003d mock.Mock(spec\u003dconf.Configuration)"},{"line_number":712,"context_line":"        self.configuration.cinder_eternus_config_file \u003d self.config_file.name"},{"line_number":713,"context_line":""},{"line_number":714,"context_line":"        self.stubs.Set(dx_common.FJDXCommon, \u0027_get_eternus_connection\u0027,"},{"line_number":715,"context_line":"                       self.fake_eternus_connection)"},{"line_number":716,"context_line":""},{"line_number":717,"context_line":"        instancename \u003d FakeCIMInstanceName()"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_12c9c5ac","line":714,"range":{"start_line":714,"start_character":13,"end_line":714,"end_character":18},"in_reply_to":"fa69d971_f6ec4594","updated":"2016-01-08 02:44:20.000000000","message":"Thanks comment, but I\u0027m sorry, I\u0027m not sure why... Since this function is always called in every unittest, I concern this replacing make unittest unreadable.","commit_id":"e80dffef80dd5464301373f8e69e26b81eab63c2"},{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"c26c4a3de00b1782c7a29ab3e8770c355c7c3604","unresolved":false,"context_lines":[{"line_number":715,"context_line":"                       self.fake_eternus_connection)"},{"line_number":716,"context_line":""},{"line_number":717,"context_line":"        instancename \u003d FakeCIMInstanceName()"},{"line_number":718,"context_line":"        self.stubs.Set(dx_common.FJDXCommon, \u0027_create_eternus_instance_name\u0027,"},{"line_number":719,"context_line":"                       instancename.fake_create_eternus_instance_name)"},{"line_number":720,"context_line":""},{"line_number":721,"context_line":"        self.stubs.Set(dx_common.FJDXCommon, \u0027_get_mapdata\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_568f51cc","line":718,"range":{"start_line":718,"start_character":13,"end_line":718,"end_character":18},"updated":"2016-01-07 16:00:54.000000000","message":"Ditto","commit_id":"e80dffef80dd5464301373f8e69e26b81eab63c2"},{"author":{"_account_id":10674,"name":"Yusuke Hayashi","email":"yusuke.hayashi.710@gmail.com","username":"YusukeHayashi"},"change_message_id":"ff6e3358f8c1fcae89d73e70971a20a87171253f","unresolved":false,"context_lines":[{"line_number":715,"context_line":"                       self.fake_eternus_connection)"},{"line_number":716,"context_line":""},{"line_number":717,"context_line":"        instancename \u003d FakeCIMInstanceName()"},{"line_number":718,"context_line":"        self.stubs.Set(dx_common.FJDXCommon, \u0027_create_eternus_instance_name\u0027,"},{"line_number":719,"context_line":"                       instancename.fake_create_eternus_instance_name)"},{"line_number":720,"context_line":""},{"line_number":721,"context_line":"        self.stubs.Set(dx_common.FJDXCommon, \u0027_get_mapdata\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_b2ed59f1","line":718,"range":{"start_line":718,"start_character":13,"end_line":718,"end_character":18},"in_reply_to":"fa69d971_568f51cc","updated":"2016-01-08 02:44:20.000000000","message":"This function is also very common in this unittest. So I would like to keep it.","commit_id":"e80dffef80dd5464301373f8e69e26b81eab63c2"},{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"c26c4a3de00b1782c7a29ab3e8770c355c7c3604","unresolved":false,"context_lines":[{"line_number":718,"context_line":"        self.stubs.Set(dx_common.FJDXCommon, \u0027_create_eternus_instance_name\u0027,"},{"line_number":719,"context_line":"                       instancename.fake_create_eternus_instance_name)"},{"line_number":720,"context_line":""},{"line_number":721,"context_line":"        self.stubs.Set(dx_common.FJDXCommon, \u0027_get_mapdata\u0027,"},{"line_number":722,"context_line":"                       self.fake_get_mapdata)"},{"line_number":723,"context_line":""},{"line_number":724,"context_line":"        # Set iscsi driver to self.driver."}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_d6b9017b","line":721,"range":{"start_line":721,"start_character":13,"end_line":721,"end_character":18},"updated":"2016-01-07 16:00:54.000000000","message":"Ditto","commit_id":"e80dffef80dd5464301373f8e69e26b81eab63c2"},{"author":{"_account_id":10674,"name":"Yusuke Hayashi","email":"yusuke.hayashi.710@gmail.com","username":"YusukeHayashi"},"change_message_id":"ff6e3358f8c1fcae89d73e70971a20a87171253f","unresolved":false,"context_lines":[{"line_number":718,"context_line":"        self.stubs.Set(dx_common.FJDXCommon, \u0027_create_eternus_instance_name\u0027,"},{"line_number":719,"context_line":"                       instancename.fake_create_eternus_instance_name)"},{"line_number":720,"context_line":""},{"line_number":721,"context_line":"        self.stubs.Set(dx_common.FJDXCommon, \u0027_get_mapdata\u0027,"},{"line_number":722,"context_line":"                       self.fake_get_mapdata)"},{"line_number":723,"context_line":""},{"line_number":724,"context_line":"        # Set iscsi driver to self.driver."}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_92c7f563","line":721,"range":{"start_line":721,"start_character":13,"end_line":721,"end_character":18},"in_reply_to":"fa69d971_d6b9017b","updated":"2016-01-08 02:44:20.000000000","message":"As for this, i agree with it. I replace stubs to mock.","commit_id":"e80dffef80dd5464301373f8e69e26b81eab63c2"}],"cinder/volume/drivers/fujitsu/eternus_dx_common.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"afb9b3c0b393e3efcd12ed1a2c508b391396046a","unresolved":false,"context_lines":[{"line_number":935,"context_line":"                vol_instance.path,"},{"line_number":936,"context_line":"                ResultClass\u003d\u0027CIM_ProtocolControllerForUnit\u0027)"},{"line_number":937,"context_line":"        except Exception:"},{"line_number":938,"context_line":"            msg \u003d (_LE(\u0027_get_mapdata_fc, \u0027"},{"line_number":939,"context_line":"                       \u0027affinitygroup:%(ag)s, \u0027"},{"line_number":940,"context_line":"                       \u0027ReferenceNames, \u0027"},{"line_number":941,"context_line":"                       \u0027cannot connect to ETERNUS.\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_ee245e61","line":938,"updated":"2016-01-07 20:44:03.000000000","message":"Should use _ instead of _LE here because the message is also in the exception.","commit_id":"e80dffef80dd5464301373f8e69e26b81eab63c2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"afb9b3c0b393e3efcd12ed1a2c508b391396046a","unresolved":false,"context_lines":[{"line_number":954,"context_line":"                volmap,"},{"line_number":955,"context_line":"                LocalOnly\u003dFalse)"},{"line_number":956,"context_line":"        except Exception:"},{"line_number":957,"context_line":"            msg \u003d (_LE(\u0027_get_mapdata_fc, \u0027"},{"line_number":958,"context_line":"                       \u0027volmap:%(volmap)s, \u0027"},{"line_number":959,"context_line":"                       \u0027GetInstance, \u0027"},{"line_number":960,"context_line":"                       \u0027cannot connect to ETERNUS.\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_6ef06eca","line":957,"updated":"2016-01-07 20:44:03.000000000","message":"Same here.  Use _ instead of _LE.","commit_id":"e80dffef80dd5464301373f8e69e26b81eab63c2"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"64f8ab66b17ac42655acd04c3e79b9519fad94bb","unresolved":false,"context_lines":[{"line_number":947,"context_line":"            vo_volmaplist \u003d self._reference_eternus_names("},{"line_number":948,"context_line":"                vol_instance.path,"},{"line_number":949,"context_line":"                ResultClass\u003d\u0027CIM_ProtocolControllerForUnit\u0027)"},{"line_number":950,"context_line":"        except Exception:"},{"line_number":951,"context_line":"            msg \u003d (_(\u0027_get_mapdata_fc, \u0027"},{"line_number":952,"context_line":"                     \u0027affinitygroup: %(ag)s, \u0027"},{"line_number":953,"context_line":"                     \u0027ReferenceNames, \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_fabe8363","line":950,"range":{"start_line":950,"start_character":15,"end_line":950,"end_character":24},"updated":"2016-01-15 16:21:31.000000000","message":"Could we catch more specific exception here?","commit_id":"c3c4929bf1cf75e3f76bd8a1da6b700ffe1152ee"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"64f8ab66b17ac42655acd04c3e79b9519fad94bb","unresolved":false,"context_lines":[{"line_number":948,"context_line":"                vol_instance.path,"},{"line_number":949,"context_line":"                ResultClass\u003d\u0027CIM_ProtocolControllerForUnit\u0027)"},{"line_number":950,"context_line":"        except Exception:"},{"line_number":951,"context_line":"            msg \u003d (_(\u0027_get_mapdata_fc, \u0027"},{"line_number":952,"context_line":"                     \u0027affinitygroup: %(ag)s, \u0027"},{"line_number":953,"context_line":"                     \u0027ReferenceNames, \u0027"},{"line_number":954,"context_line":"                     \u0027cannot connect to ETERNUS.\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_14e010cc","line":951,"range":{"start_line":951,"start_character":22,"end_line":951,"end_character":37},"updated":"2016-01-15 16:21:31.000000000","message":"Please, make more user-friendly message here","commit_id":"c3c4929bf1cf75e3f76bd8a1da6b700ffe1152ee"},{"author":{"_account_id":10674,"name":"Yusuke Hayashi","email":"yusuke.hayashi.710@gmail.com","username":"YusukeHayashi"},"change_message_id":"45d4038ab514bc6975ae6000ac48381f81fe5ddd","unresolved":false,"context_lines":[{"line_number":948,"context_line":"                vol_instance.path,"},{"line_number":949,"context_line":"                ResultClass\u003d\u0027CIM_ProtocolControllerForUnit\u0027)"},{"line_number":950,"context_line":"        except Exception:"},{"line_number":951,"context_line":"            msg \u003d (_(\u0027_get_mapdata_fc, \u0027"},{"line_number":952,"context_line":"                     \u0027affinitygroup: %(ag)s, \u0027"},{"line_number":953,"context_line":"                     \u0027ReferenceNames, \u0027"},{"line_number":954,"context_line":"                     \u0027cannot connect to ETERNUS.\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_6cc07d2b","line":951,"range":{"start_line":951,"start_character":22,"end_line":951,"end_character":37},"in_reply_to":"da6ed579_14e010cc","updated":"2016-01-16 13:57:01.000000000","message":"Since it is used for trouble shooting by develop member, I would like to keep it. Instead of it, I add user-friendly message in next sentence, Thanks.","commit_id":"c3c4929bf1cf75e3f76bd8a1da6b700ffe1152ee"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"64f8ab66b17ac42655acd04c3e79b9519fad94bb","unresolved":false,"context_lines":[{"line_number":953,"context_line":"                     \u0027ReferenceNames, \u0027"},{"line_number":954,"context_line":"                     \u0027cannot connect to ETERNUS.\u0027)"},{"line_number":955,"context_line":"                   % {\u0027ag\u0027: aglist[0]})"},{"line_number":956,"context_line":"            LOG.error(msg)"},{"line_number":957,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":958,"context_line":""},{"line_number":959,"context_line":"        volmap \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_d497d837","line":956,"updated":"2016-01-15 16:21:31.000000000","message":"Please, change it to LOG.exception(msg) to make troubleshooting easier","commit_id":"c3c4929bf1cf75e3f76bd8a1da6b700ffe1152ee"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"64f8ab66b17ac42655acd04c3e79b9519fad94bb","unresolved":false,"context_lines":[{"line_number":966,"context_line":"            volmapinstance \u003d self._get_eternus_instance("},{"line_number":967,"context_line":"                volmap,"},{"line_number":968,"context_line":"                LocalOnly\u003dFalse)"},{"line_number":969,"context_line":"        except Exception:"},{"line_number":970,"context_line":"            msg \u003d (_(\u0027_get_mapdata_fc, \u0027"},{"line_number":971,"context_line":"                     \u0027volmap: %(volmap)s, \u0027"},{"line_number":972,"context_line":"                     \u0027GetInstance, \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_bab48b81","line":969,"range":{"start_line":969,"start_character":8,"end_line":969,"end_character":14},"updated":"2016-01-15 16:21:31.000000000","message":"The same as above","commit_id":"c3c4929bf1cf75e3f76bd8a1da6b700ffe1152ee"}],"cinder/volume/drivers/fujitsu/eternus_dx_fc.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"afb9b3c0b393e3efcd12ed1a2c508b391396046a","unresolved":false,"context_lines":[{"line_number":41,"context_line":"            configuration\u003dself.configuration)"},{"line_number":42,"context_line":"        self.VERSION \u003d self.common.VERSION"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def check_for_setup_error(self):"},{"line_number":45,"context_line":"        return"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def create_volume(self, volume):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_2e2596ad","line":44,"updated":"2016-01-07 20:44:03.000000000","message":"This function is not necessary as you are not doing anything here.","commit_id":"e80dffef80dd5464301373f8e69e26b81eab63c2"},{"author":{"_account_id":10674,"name":"Yusuke Hayashi","email":"yusuke.hayashi.710@gmail.com","username":"YusukeHayashi"},"change_message_id":"ff6e3358f8c1fcae89d73e70971a20a87171253f","unresolved":false,"context_lines":[{"line_number":41,"context_line":"            configuration\u003dself.configuration)"},{"line_number":42,"context_line":"        self.VERSION \u003d self.common.VERSION"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def check_for_setup_error(self):"},{"line_number":45,"context_line":"        return"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def create_volume(self, volume):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_26860f14","line":44,"in_reply_to":"fa69d971_2e2596ad","updated":"2016-01-08 02:44:20.000000000","message":"If the definition is not here, starting c-vol fails because of NotImplemented Error. This is because this function is defined so in upper class VolumeDriver @ driver.py l.2018. That\u0027s why I think this definition is necessary here.(If this driver is iSCSI Driver, it is not necessary, as you say, because iSCSI Driver redefine this function not to return NotImplementedError) Thanks.","commit_id":"e80dffef80dd5464301373f8e69e26b81eab63c2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"afb9b3c0b393e3efcd12ed1a2c508b391396046a","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        init_tgt_map \u003d self.common.build_fc_init_tgt_map(connector)"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        info \u003d {\u0027driver_volume_type\u0027: \u0027fibre_channel\u0027,"},{"line_number":187,"context_line":"                \u0027data\u0027: {\u0027initiator_target_map\u0027: init_tgt_map}}"},{"line_number":188,"context_line":"        LOG.info(_LI(\u0027terminate_connection,\u0027"},{"line_number":189,"context_line":"                     \u0027unmap: %s, connection info: %(info)s, Exit method\u0027),"},{"line_number":190,"context_line":"                 {\u0027unmap\u0027: map_exist, \u0027info\u0027: info})"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_0e453216","line":187,"updated":"2016-01-07 20:44:03.000000000","message":"target map should only be returned if there are no other volumes attached in the same zone.  Otherwise, all volumes in the same zone will be unmapped even though you are only trying to unmap one volume.","commit_id":"e80dffef80dd5464301373f8e69e26b81eab63c2"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"25efe61cb85b8a2067f50dcba69449ca4e560259","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    def create_volume(self, volume):"},{"line_number":48,"context_line":"        \"\"\"Create volume.\"\"\""},{"line_number":49,"context_line":"        LOG.info(_LI(\u0027create_volume, \u0027"},{"line_number":50,"context_line":"                     \u0027volume id: %s, Enter method.\u0027), volume[\u0027id\u0027])"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        location, metadata \u003d self.common.create_volume(volume)"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_50b11900","line":50,"updated":"2016-01-10 07:25:37.000000000","message":"Change the comma before \"Enter\" to full stop, or change \"Enter\" to \"enter\".","commit_id":"608d0c55aaa59772d43052ed74fb9ea8656abe83"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"25efe61cb85b8a2067f50dcba69449ca4e560259","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        location, metadata \u003d self.common.create_volume(volume)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        v_metadata \u003d volume.get(\u0027volume_metadata\u0027)"},{"line_number":55,"context_line":"        if v_metadata:"},{"line_number":56,"context_line":"            for data in v_metadata:"},{"line_number":57,"context_line":"                metadata[data[\u0027key\u0027]] \u003d data[\u0027value\u0027]"},{"line_number":58,"context_line":"        else:"},{"line_number":59,"context_line":"            v_metadata \u003d volume.get(\u0027metadata\u0027, {})"},{"line_number":60,"context_line":"            metadata.update(v_metadata)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        LOG.info(_LI(\u0027create_volume, info: %s, Exit method.\u0027), metadata)"},{"line_number":63,"context_line":"        return {\u0027provider_location\u0027: six.text_type(location),"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_70ad3d9a","line":60,"range":{"start_line":54,"start_character":0,"end_line":60,"end_character":39},"updated":"2016-01-10 07:25:37.000000000","message":"Line 54 to line 60 can be encapsulated to a new function, and line 75 to 81, line 98 to 104 can just use the new function instead.","commit_id":"608d0c55aaa59772d43052ed74fb9ea8656abe83"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"25efe61cb85b8a2067f50dcba69449ca4e560259","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":67,"context_line":"        \"\"\"Creates a volume from a snapshot.\"\"\""},{"line_number":68,"context_line":"        LOG.info(_LI(\u0027create_volume_from_snapshot, \u0027"},{"line_number":69,"context_line":"                     \u0027volume id: %(vid)s, snap id: %(sid)s, Enter method.\u0027),"},{"line_number":70,"context_line":"                 {\u0027vid\u0027: volume[\u0027id\u0027], \u0027sid\u0027: snapshot[\u0027id\u0027]})"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        location, metadata \u003d ("}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_70b69dfa","line":69,"updated":"2016-01-10 07:25:37.000000000","message":"same","commit_id":"608d0c55aaa59772d43052ed74fb9ea8656abe83"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"25efe61cb85b8a2067f50dcba69449ca4e560259","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        LOG.info(_LI(\u0027delete_volume, \u0027"},{"line_number":119,"context_line":"                     \u0027delete: %s, Exit method.\u0027), vol_exist)"},{"line_number":120,"context_line":"        return"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def create_snapshot(self, snapshot):"},{"line_number":123,"context_line":"        \"\"\"Creates a snapshot.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_10972149","line":120,"updated":"2016-01-10 07:25:37.000000000","message":"Function will return by default, so this line is no need.","commit_id":"608d0c55aaa59772d43052ed74fb9ea8656abe83"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"25efe61cb85b8a2067f50dcba69449ca4e560259","unresolved":false,"context_lines":[{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        LOG.info(_LI(\u0027delete_snapshot, \u0027"},{"line_number":142,"context_line":"                     \u0027delete: %s, Exit method.\u0027), vol_exist)"},{"line_number":143,"context_line":"        return"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def ensure_export(self, context, volume):"},{"line_number":146,"context_line":"        \"\"\"Driver entry point to get the export info for an existing volume.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_3094a541","line":143,"updated":"2016-01-10 07:25:37.000000000","message":"No need.","commit_id":"608d0c55aaa59772d43052ed74fb9ea8656abe83"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"10877f684a7a90b39f4e3754c37ce9f18b7259f7","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from cinder.volume import driver"},{"line_number":26,"context_line":"from cinder.volume.drivers.fujitsu import eternus_dx_common"},{"line_number":27,"context_line":"from cinder.zonemanager import utils as fczm_utils"},{"line_number":28,"context_line":"from oslo_log import log as logging"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_5ae318d9","line":28,"updated":"2016-01-15 14:07:54.000000000","message":"oslo_log is actually a third party library, so it should be above with the six import.","commit_id":"c3c4929bf1cf75e3f76bd8a1da6b700ffe1152ee"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"64f8ab66b17ac42655acd04c3e79b9519fad94bb","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        self.VERSION \u003d self.common.VERSION"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def check_for_setup_error(self):"},{"line_number":45,"context_line":"        return"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def create_volume(self, volume):"},{"line_number":48,"context_line":"        \"\"\"Create volume.\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_fa65231d","line":45,"range":{"start_line":45,"start_character":8,"end_line":45,"end_character":14},"updated":"2016-01-15 16:21:31.000000000","message":"return \u003d\u003e pass","commit_id":"c3c4929bf1cf75e3f76bd8a1da6b700ffe1152ee"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"10877f684a7a90b39f4e3754c37ce9f18b7259f7","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def delete_volume(self, volume):"},{"line_number":97,"context_line":"        \"\"\"Delete volume on ETERNUS.\"\"\""},{"line_number":98,"context_line":"        LOG.info(_LI(\u0027delete_volume, \u0027"},{"line_number":99,"context_line":"                     \u0027volume id: %s, enter method.\u0027), volume[\u0027id\u0027])"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        vol_exist \u003d self.common.delete_volume(volume)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_7af13c94","line":98,"updated":"2016-01-15 14:07:54.000000000","message":"I would prefer all of these enter/exit logging were LOG.debug.","commit_id":"c3c4929bf1cf75e3f76bd8a1da6b700ffe1152ee"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"64f8ab66b17ac42655acd04c3e79b9519fad94bb","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def delete_volume(self, volume):"},{"line_number":97,"context_line":"        \"\"\"Delete volume on ETERNUS.\"\"\""},{"line_number":98,"context_line":"        LOG.info(_LI(\u0027delete_volume, \u0027"},{"line_number":99,"context_line":"                     \u0027volume id: %s, enter method.\u0027), volume[\u0027id\u0027])"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        vol_exist \u003d self.common.delete_volume(volume)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_9a7507cc","line":98,"in_reply_to":"da6ed579_7af13c94","updated":"2016-01-15 16:21:31.000000000","message":"+1","commit_id":"c3c4929bf1cf75e3f76bd8a1da6b700ffe1152ee"}]}
