)]}'
{"cinder/volume/drivers/emc/emc_smis_common.py":[{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e3bbd3fa31671c59124e13bead836ba84596ffd6","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\"\"\""},{"line_number":19,"context_line":"Common class for EMC volume drivers based on SMI-S."},{"line_number":20,"context_line":"Supports VNX and VMAX/VMAXe arrays."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"\"\"\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"import time"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FdN8%3D","line":21,"updated":"2013-01-21 21:43:49.000000000","message":"Multi-line docstring gets a one line summary, then following lines as per hacking.rst","commit_id":"d5fcb851a686aac8cd06e24373bc20049082b048"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3e3a25f3fc1c8875709791dd01eea9abbeaa9b82","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\"\"\""},{"line_number":19,"context_line":"Common class for EMC volume drivers based on SMI-S."},{"line_number":20,"context_line":"Supports VNX and VMAX/VMAXe arrays."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"\"\"\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"import time"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2Fcq8%3D","line":21,"in_reply_to":"AAAAM3%2F%2FdN8%3D","updated":"2013-01-22 04:52:25.000000000","message":"Done","commit_id":"d5fcb851a686aac8cd06e24373bc20049082b048"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e3bbd3fa31671c59124e13bead836ba84596ffd6","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"class EMCSMISCommon():"},{"line_number":46,"context_line":"    \"\"\"Common code used by ISCSI and FC drivers\"\"\""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    stats \u003d {\u0027driver_version\u0027: \u00271.0\u0027,"},{"line_number":49,"context_line":"             \u0027free_capacity_gb\u0027: 0,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FdOA%3D","line":46,"updated":"2013-01-21 21:43:49.000000000","message":"period at end of one line docstring","commit_id":"d5fcb851a686aac8cd06e24373bc20049082b048"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3e3a25f3fc1c8875709791dd01eea9abbeaa9b82","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"class EMCSMISCommon():"},{"line_number":46,"context_line":"    \"\"\"Common code used by ISCSI and FC drivers\"\"\""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    stats \u003d {\u0027driver_version\u0027: \u00271.0\u0027,"},{"line_number":49,"context_line":"             \u0027free_capacity_gb\u0027: 0,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2Fcq4%3D","line":46,"in_reply_to":"AAAAM3%2F%2FdOA%3D","updated":"2013-01-22 04:52:25.000000000","message":"Done","commit_id":"d5fcb851a686aac8cd06e24373bc20049082b048"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e3bbd3fa31671c59124e13bead836ba84596ffd6","unresolved":false,"context_lines":[{"line_number":695,"context_line":"    def _expose_paths(self, conn, configservice, vol_instance, connector):"},{"line_number":696,"context_line":"        \"\"\"Adds a volume and initiator to a Storage Group"},{"line_number":697,"context_line":"        and therefore maps the volume to the host."},{"line_number":698,"context_line":"        \"\"\""},{"line_number":699,"context_line":"        volumename \u003d vol_instance[\u0027ElementName\u0027]"},{"line_number":700,"context_line":"        lun_name \u003d vol_instance[\u0027DeviceID\u0027]"},{"line_number":701,"context_line":"        initiator \u003d self._find_initiator_name(connector)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FdM0%3D","line":698,"updated":"2013-01-21 21:43:49.000000000","message":"multi-line docstring formatting","commit_id":"d5fcb851a686aac8cd06e24373bc20049082b048"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3e3a25f3fc1c8875709791dd01eea9abbeaa9b82","unresolved":false,"context_lines":[{"line_number":695,"context_line":"    def _expose_paths(self, conn, configservice, vol_instance, connector):"},{"line_number":696,"context_line":"        \"\"\"Adds a volume and initiator to a Storage Group"},{"line_number":697,"context_line":"        and therefore maps the volume to the host."},{"line_number":698,"context_line":"        \"\"\""},{"line_number":699,"context_line":"        volumename \u003d vol_instance[\u0027ElementName\u0027]"},{"line_number":700,"context_line":"        lun_name \u003d vol_instance[\u0027DeviceID\u0027]"},{"line_number":701,"context_line":"        initiator \u003d self._find_initiator_name(connector)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2Fcqk%3D","line":698,"in_reply_to":"AAAAM3%2F%2FdM0%3D","updated":"2013-01-22 04:52:25.000000000","message":"Done","commit_id":"d5fcb851a686aac8cd06e24373bc20049082b048"}],"cinder/volume/drivers/emc/emc_smis_iscsi.py":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"8a70d6579d85190e2b6ae97d98fb742a6e5e6ce4","unresolved":false,"context_lines":[{"line_number":260,"context_line":"            self._run_iscsiadm(iscsi_properties, (\"--rescan\",))"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"            tries \u003d tries + 1"},{"line_number":263,"context_line":"            if not os.path.exists(host_device):"},{"line_number":264,"context_line":"                time.sleep(tries ** 2)"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"        if tries !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FetI%3D","line":263,"updated":"2013-01-19 21:22:11.000000000","message":"need to import time","commit_id":"b65f163fd67a11767b42ada5ee1563b9cbab9807"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8fecbeb1873057ddf47f79f5493efce2d73187c9","unresolved":false,"context_lines":[{"line_number":260,"context_line":"            self._run_iscsiadm(iscsi_properties, (\"--rescan\",))"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"            tries \u003d tries + 1"},{"line_number":263,"context_line":"            if not os.path.exists(host_device):"},{"line_number":264,"context_line":"                time.sleep(tries ** 2)"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"        if tries !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FenA%3D","line":263,"in_reply_to":"AAAAM3%2F%2FetI%3D","updated":"2013-01-20 04:29:40.000000000","message":"Good catch.  Fixed now.","commit_id":"b65f163fd67a11767b42ada5ee1563b9cbab9807"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e3bbd3fa31671c59124e13bead836ba84596ffd6","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\"\"\""},{"line_number":19,"context_line":"ISCSI Drivers for EMC arrays based on SMI-S."},{"line_number":20,"context_line":"Supports VNX and VMAX/VMAXe arrays."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"\"\"\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"import os"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FdMc%3D","line":21,"updated":"2013-01-21 21:43:49.000000000","message":"multi-line docstring","commit_id":"d5fcb851a686aac8cd06e24373bc20049082b048"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3e3a25f3fc1c8875709791dd01eea9abbeaa9b82","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\"\"\""},{"line_number":19,"context_line":"ISCSI Drivers for EMC arrays based on SMI-S."},{"line_number":20,"context_line":"Supports VNX and VMAX/VMAXe arrays."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"\"\"\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"import os"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FcqY%3D","line":21,"in_reply_to":"AAAAM3%2F%2FdMc%3D","updated":"2013-01-22 04:52:25.000000000","message":"Done","commit_id":"d5fcb851a686aac8cd06e24373bc20049082b048"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e3bbd3fa31671c59124e13bead836ba84596ffd6","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def get_iscsi_initiator():"},{"line_number":40,"context_line":"    \"\"\"Get iscsi initiator name for this machine\"\"\""},{"line_number":41,"context_line":"    # NOTE openiscsi stores initiator name in a file that"},{"line_number":42,"context_line":"    #      needs root permission to read."},{"line_number":43,"context_line":"    contents \u003d utils.read_file_as_root(\u0027/etc/iscsi/initiatorname.iscsi\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FdMY%3D","line":40,"updated":"2013-01-21 21:43:49.000000000","message":"single line docstring ends in period","commit_id":"d5fcb851a686aac8cd06e24373bc20049082b048"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3e3a25f3fc1c8875709791dd01eea9abbeaa9b82","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def get_iscsi_initiator():"},{"line_number":40,"context_line":"    \"\"\"Get iscsi initiator name for this machine\"\"\""},{"line_number":41,"context_line":"    # NOTE openiscsi stores initiator name in a file that"},{"line_number":42,"context_line":"    #      needs root permission to read."},{"line_number":43,"context_line":"    contents \u003d utils.read_file_as_root(\u0027/etc/iscsi/initiatorname.iscsi\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FcqM%3D","line":40,"in_reply_to":"AAAAM3%2F%2FdMY%3D","updated":"2013-01-22 04:52:25.000000000","message":"Done","commit_id":"d5fcb851a686aac8cd06e24373bc20049082b048"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e3bbd3fa31671c59124e13bead836ba84596ffd6","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"class EMCSMISISCSIDriver(driver.ISCSIDriver):"},{"line_number":50,"context_line":"    \"\"\"EMC ISCSI Drivers for VMAX/VMAXe and VNX using SMI-S\"\"\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        super(EMCSMISISCSIDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FdMU%3D","line":51,"updated":"2013-01-21 21:43:49.000000000","message":"Same as above","commit_id":"d5fcb851a686aac8cd06e24373bc20049082b048"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3e3a25f3fc1c8875709791dd01eea9abbeaa9b82","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"class EMCSMISISCSIDriver(driver.ISCSIDriver):"},{"line_number":50,"context_line":"    \"\"\"EMC ISCSI Drivers for VMAX/VMAXe and VNX using SMI-S\"\"\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        super(EMCSMISISCSIDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FcqE%3D","line":51,"in_reply_to":"AAAAM3%2F%2FdMU%3D","updated":"2013-01-22 04:52:25.000000000","message":"Done","commit_id":"d5fcb851a686aac8cd06e24373bc20049082b048"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e3bbd3fa31671c59124e13bead836ba84596ffd6","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        pass"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def create_volume(self, volume):"},{"line_number":61,"context_line":"        \"\"\"Creates a EMC(VMAX/VMAXe/VNX) volume. \"\"\""},{"line_number":62,"context_line":"        self.common.create_volume(volume)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FdMQ%3D","line":61,"updated":"2013-01-21 21:43:49.000000000","message":"Don\u0027t need a space here","commit_id":"d5fcb851a686aac8cd06e24373bc20049082b048"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3e3a25f3fc1c8875709791dd01eea9abbeaa9b82","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        pass"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def create_volume(self, volume):"},{"line_number":61,"context_line":"        \"\"\"Creates a EMC(VMAX/VMAXe/VNX) volume. \"\"\""},{"line_number":62,"context_line":"        self.common.create_volume(volume)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2Fcp4%3D","line":61,"in_reply_to":"AAAAM3%2F%2FdMQ%3D","updated":"2013-01-22 04:52:25.000000000","message":"Done","commit_id":"d5fcb851a686aac8cd06e24373bc20049082b048"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e3bbd3fa31671c59124e13bead836ba84596ffd6","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def remove_export(self, context, volume):"},{"line_number":96,"context_line":"        \"\"\"Driver exntry point to remove an export for a volume."},{"line_number":97,"context_line":"        \"\"\""},{"line_number":98,"context_line":"        pass"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    def check_for_export(self, context, volume_id):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FdMA%3D","line":97,"updated":"2013-01-21 21:43:49.000000000","message":"docstring format","commit_id":"d5fcb851a686aac8cd06e24373bc20049082b048"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3e3a25f3fc1c8875709791dd01eea9abbeaa9b82","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def remove_export(self, context, volume):"},{"line_number":96,"context_line":"        \"\"\"Driver exntry point to remove an export for a volume."},{"line_number":97,"context_line":"        \"\"\""},{"line_number":98,"context_line":"        pass"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    def check_for_export(self, context, volume_id):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2Fcpw%3D","line":97,"in_reply_to":"AAAAM3%2F%2FdMA%3D","updated":"2013-01-22 04:52:25.000000000","message":"Done","commit_id":"d5fcb851a686aac8cd06e24373bc20049082b048"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"952c4acb1e0f12a9177a8a6ac306481e193157bd","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        }"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def _do_iscsi_discovery(self, volume):"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        LOG.warn(_(\"ISCSI provider_location not stored, using discovery\"))"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        (out, _err) \u003d self._execute(\u0027iscsiadm\u0027, \u0027-m\u0027, \u0027discovery\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2Fa8c%3D","line":129,"updated":"2013-01-23 05:39:36.000000000","message":"Volume is never used here.","commit_id":"4c2cfaa985c57c14400d5c8604b4215c41a66f65"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ff5634308d0db58da6dda792fc337565a5328eff","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        }"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def _do_iscsi_discovery(self, volume):"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        LOG.warn(_(\"ISCSI provider_location not stored, using discovery\"))"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        (out, _err) \u003d self._execute(\u0027iscsiadm\u0027, \u0027-m\u0027, \u0027discovery\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FaZg%3D","line":129,"in_reply_to":"AAAAM3%2F%2Fa8c%3D","updated":"2013-01-23 15:56:30.000000000","message":"After I merge with Avishay\u0027s patch, this function should be gone.","commit_id":"4c2cfaa985c57c14400d5c8604b4215c41a66f65"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"952c4acb1e0f12a9177a8a6ac306481e193157bd","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        self.terminate_connection(volume, connector)"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"    def _attach_volume(self, context, volume, connector):"},{"line_number":232,"context_line":"        \"\"\"Attach the volume.\"\"\""},{"line_number":233,"context_line":"        iscsi_properties \u003d None"},{"line_number":234,"context_line":"        host_device \u003d None"},{"line_number":235,"context_line":"        init_conn \u003d self.initialize_connection(volume, connector)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2Fa7o%3D","line":232,"updated":"2013-01-23 05:39:36.000000000","message":"I can see others needing this copied code from nova\u0027s libvirt.   If we are going to have to manually mount the volume in order to copy the image to it, shouldn\u0027t we refactor this out into something that all drivers can use in cinder?\n\nShouldn\u0027t the logic for this kind of copy image to volume be generic and handled by the manager itself?  My 3PAR driver will most likely be doing the same thing as this.","commit_id":"4c2cfaa985c57c14400d5c8604b4215c41a66f65"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ff5634308d0db58da6dda792fc337565a5328eff","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        self.terminate_connection(volume, connector)"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"    def _attach_volume(self, context, volume, connector):"},{"line_number":232,"context_line":"        \"\"\"Attach the volume.\"\"\""},{"line_number":233,"context_line":"        iscsi_properties \u003d None"},{"line_number":234,"context_line":"        host_device \u003d None"},{"line_number":235,"context_line":"        init_conn \u003d self.initialize_connection(volume, connector)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FaZQ%3D","line":232,"in_reply_to":"AAAAM3%2F%2Fa7o%3D","updated":"2013-01-23 15:56:30.000000000","message":"Yes, this is addressed by Avishay\u0027s patch.  It will be in the ISCSIDriver class.","commit_id":"4c2cfaa985c57c14400d5c8604b4215c41a66f65"}]}
