)]}'
{"os_brick/initiator/connector.py":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"c130d9ee6d59e496ddf3e86574558f2f1a042004","unresolved":false,"context_lines":[{"line_number":1378,"context_line":"    def get_volume_paths(self, connection_properties):"},{"line_number":1379,"context_line":"        # TODO(walter-boring): don\u0027t know where the connector"},{"line_number":1380,"context_line":"        # looks for RBD volumes."},{"line_number":1381,"context_line":"        return None"},{"line_number":1382,"context_line":""},{"line_number":1383,"context_line":"    def get_search_path(self):"},{"line_number":1384,"context_line":"        # TODO(walter-boring): don\u0027t know where the connector"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_b378bc90","line":1381,"updated":"2015-07-21 17:03:24.000000000","message":"change this default to an empty list instead.","commit_id":"5d6ab654a23e53f2f983bdcd2f516ad5b63941a8"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"0062ae4e9ab94caf6ce02fc71d8fc714d6852a68","unresolved":false,"context_lines":[{"line_number":1378,"context_line":"    def get_volume_paths(self, connection_properties):"},{"line_number":1379,"context_line":"        # TODO(walter-boring): don\u0027t know where the connector"},{"line_number":1380,"context_line":"        # looks for RBD volumes."},{"line_number":1381,"context_line":"        return None"},{"line_number":1382,"context_line":""},{"line_number":1383,"context_line":"    def get_search_path(self):"},{"line_number":1384,"context_line":"        # TODO(walter-boring): don\u0027t know where the connector"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_2410e44d","line":1381,"in_reply_to":"3a50d1a3_b378bc90","updated":"2015-07-21 17:54:02.000000000","message":"Done","commit_id":"5d6ab654a23e53f2f983bdcd2f516ad5b63941a8"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"6b7cf8de303a3ada64154b00e0751d566fbbb6d1","unresolved":false,"context_lines":[{"line_number":364,"context_line":"        return volume_paths"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"    def _get_potential_volume_paths(self, connection_properties,"},{"line_number":367,"context_line":"                                    use_rescan\u003dTrue):"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"        target_props \u003d None"},{"line_number":370,"context_line":"        if self.use_multipath:"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_470def35","line":367,"updated":"2015-07-21 19:11:24.000000000","message":"The problem with using this to query sessions is that it\u0027s going to create sessions when it calls _connect_to_iscsi_portal\n\nYou could make this work by splitting out the veify check in that method:\nout \u003d self._run_iscsiadm_bare([\"-m\", \"session\"],\n\nand just call that directly for your discovery stuff here and use that output, and of course the _disconnect_from_iscsi_portal for cleanup.\n\nNot sure if auto-clean is better or worse here.. but that\u0027s a whole different discussion probably.","commit_id":"1570ec246fc01bf9b94eb72e2554598da284e8a4"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"38fbbd16c91fa7b8f61267f717cb2282976f3bca","unresolved":false,"context_lines":[{"line_number":398,"context_line":"        else:"},{"line_number":399,"context_line":"            target_props \u003d connection_properties"},{"line_number":400,"context_line":"            for props in self._iterate_all_targets(connection_properties):"},{"line_number":401,"context_line":"                if self._connect_to_iscsi_portal(props):"},{"line_number":402,"context_line":"                    target_props \u003d props"},{"line_number":403,"context_line":"                    break"},{"line_number":404,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a50d1a3_343c8fe1","line":401,"updated":"2015-07-21 19:09:18.000000000","message":"Need to be careful here.  When we are called in the context of testing to see if volume paths exists (outside of connect_volume), we don\u0027t want to connect to an iscsi portal unless there is an existing session in place.   If we do, then we might leave open connections to the portal.","commit_id":"cf22eb95d26e0ec8a64767dba5fa9abe9045ad0b"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"3df2c375b67c51dfdf8e67dcb006079f75657e16","unresolved":false,"context_lines":[{"line_number":398,"context_line":"        else:"},{"line_number":399,"context_line":"            target_props \u003d connection_properties"},{"line_number":400,"context_line":"            for props in self._iterate_all_targets(connection_properties):"},{"line_number":401,"context_line":"                if self._connect_to_iscsi_portal(props):"},{"line_number":402,"context_line":"                    target_props \u003d props"},{"line_number":403,"context_line":"                    break"},{"line_number":404,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a50d1a3_a76393db","line":401,"in_reply_to":"3a50d1a3_343c8fe1","updated":"2015-07-21 19:12:36.000000000","message":"yeah, check out my comment in patch 5, hopefully that makes sense.","commit_id":"cf22eb95d26e0ec8a64767dba5fa9abe9045ad0b"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"a1adf677b483df275f6c1257a006465d8ff653da","unresolved":false,"context_lines":[{"line_number":398,"context_line":"        else:"},{"line_number":399,"context_line":"            target_props \u003d connection_properties"},{"line_number":400,"context_line":"            for props in self._iterate_all_targets(connection_properties):"},{"line_number":401,"context_line":"                if self._connect_to_iscsi_portal(props):"},{"line_number":402,"context_line":"                    target_props \u003d props"},{"line_number":403,"context_line":"                    break"},{"line_number":404,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_182a137f","line":401,"in_reply_to":"3a50d1a3_a76393db","updated":"2015-08-27 22:32:46.000000000","message":"Done","commit_id":"cf22eb95d26e0ec8a64767dba5fa9abe9045ad0b"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"3e93a93ada974013e789cb6dcaa02cc14ae55ba8","unresolved":false,"context_lines":[{"line_number":295,"context_line":"        \"\"\""},{"line_number":296,"context_line":"        pass"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    def get_all_available_volumes(self, connection_properties\u003dNone):"},{"line_number":299,"context_line":"        \"\"\"This returns all volumes that exist in the search directory."},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        At connect_volume time, a Connector looks in a specific"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_f56a6aec","line":298,"updated":"2015-09-29 20:04:51.000000000","message":"To be consistent this should probably be \"Return all volumes....\"","commit_id":"5e30ed0c10795b820fb8c7f12e0fdfe29f474979"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"d4295f809131f79557b2befd456d0847dfe78795","unresolved":false,"context_lines":[{"line_number":295,"context_line":"        \"\"\""},{"line_number":296,"context_line":"        pass"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    def get_all_available_volumes(self, connection_properties\u003dNone):"},{"line_number":299,"context_line":"        \"\"\"This returns all volumes that exist in the search directory."},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        At connect_volume time, a Connector looks in a specific"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_9efeabac","line":298,"in_reply_to":"9a1a9d01_f56a6aec","updated":"2015-09-29 20:18:02.000000000","message":"Done","commit_id":"5e30ed0c10795b820fb8c7f12e0fdfe29f474979"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"3e93a93ada974013e789cb6dcaa02cc14ae55ba8","unresolved":false,"context_lines":[{"line_number":372,"context_line":"        This method\u0027s job is to simply report what might/should"},{"line_number":373,"context_line":"        already exist for a volume.  We aren\u0027t trying to attach/discover"},{"line_number":374,"context_line":"        a new volume, but find any existing paths for a volume we"},{"line_number":375,"context_line":"        think is already attached."},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"        \"\"\""},{"line_number":378,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_389d37bc","line":375,"updated":"2015-09-29 20:04:51.000000000","message":"Looks like an extra blank line here","commit_id":"5e30ed0c10795b820fb8c7f12e0fdfe29f474979"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"d4295f809131f79557b2befd456d0847dfe78795","unresolved":false,"context_lines":[{"line_number":372,"context_line":"        This method\u0027s job is to simply report what might/should"},{"line_number":373,"context_line":"        already exist for a volume.  We aren\u0027t trying to attach/discover"},{"line_number":374,"context_line":"        a new volume, but find any existing paths for a volume we"},{"line_number":375,"context_line":"        think is already attached."},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"        \"\"\""},{"line_number":378,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_5e2d7393","line":375,"in_reply_to":"9a1a9d01_389d37bc","updated":"2015-09-29 20:18:02.000000000","message":"Done","commit_id":"5e30ed0c10795b820fb8c7f12e0fdfe29f474979"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"3e93a93ada974013e789cb6dcaa02cc14ae55ba8","unresolved":false,"context_lines":[{"line_number":379,"context_line":"        volume_paths \u003d []"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"        # if there are no sessions, then target_portal won\u0027t exist"},{"line_number":382,"context_line":"        if \u0027target_portal\u0027 in connection_properties:"},{"line_number":383,"context_line":"            # Don\u0027t try and connect to the portals in the list"},{"line_number":384,"context_line":"            # this can create empty iSCSI sessions to hosts if they"},{"line_number":385,"context_line":"            # didn\u0027t exist previously."}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_d8dc3b75","line":382,"updated":"2015-09-29 20:04:51.000000000","message":"s/the list/the list as","commit_id":"5e30ed0c10795b820fb8c7f12e0fdfe29f474979"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"d4295f809131f79557b2befd456d0847dfe78795","unresolved":false,"context_lines":[{"line_number":379,"context_line":"        volume_paths \u003d []"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"        # if there are no sessions, then target_portal won\u0027t exist"},{"line_number":382,"context_line":"        if \u0027target_portal\u0027 in connection_properties:"},{"line_number":383,"context_line":"            # Don\u0027t try and connect to the portals in the list"},{"line_number":384,"context_line":"            # this can create empty iSCSI sessions to hosts if they"},{"line_number":385,"context_line":"            # didn\u0027t exist previously."}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_1e237ba8","line":382,"in_reply_to":"9a1a9d01_d8dc3b75","updated":"2015-09-29 20:18:02.000000000","message":"Done","commit_id":"5e30ed0c10795b820fb8c7f12e0fdfe29f474979"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"3e93a93ada974013e789cb6dcaa02cc14ae55ba8","unresolved":false,"context_lines":[{"line_number":382,"context_line":"        if \u0027target_portal\u0027 in connection_properties:"},{"line_number":383,"context_line":"            # Don\u0027t try and connect to the portals in the list"},{"line_number":384,"context_line":"            # this can create empty iSCSI sessions to hosts if they"},{"line_number":385,"context_line":"            # didn\u0027t exist previously."},{"line_number":386,"context_line":"            # We are simply trying to find any existing volumes to"},{"line_number":387,"context_line":"            # already connected sessions."},{"line_number":388,"context_line":"            host_devices, target_props \u003d self._get_potential_volume_paths("}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_788e4f7a","line":385,"updated":"2015-09-29 20:04:51.000000000","message":"s/volumes to/volumes with","commit_id":"5e30ed0c10795b820fb8c7f12e0fdfe29f474979"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"d4295f809131f79557b2befd456d0847dfe78795","unresolved":false,"context_lines":[{"line_number":382,"context_line":"        if \u0027target_portal\u0027 in connection_properties:"},{"line_number":383,"context_line":"            # Don\u0027t try and connect to the portals in the list"},{"line_number":384,"context_line":"            # this can create empty iSCSI sessions to hosts if they"},{"line_number":385,"context_line":"            # didn\u0027t exist previously."},{"line_number":386,"context_line":"            # We are simply trying to find any existing volumes to"},{"line_number":387,"context_line":"            # already connected sessions."},{"line_number":388,"context_line":"            host_devices, target_props \u003d self._get_potential_volume_paths("}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_be3ccfc8","line":385,"in_reply_to":"9a1a9d01_788e4f7a","updated":"2015-09-29 20:18:02.000000000","message":"Done","commit_id":"5e30ed0c10795b820fb8c7f12e0fdfe29f474979"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"3e93a93ada974013e789cb6dcaa02cc14ae55ba8","unresolved":false,"context_lines":[{"line_number":389,"context_line":"                connection_properties,"},{"line_number":390,"context_line":"                connect_to_portal\u003dFalse,"},{"line_number":391,"context_line":"                use_rescan\u003dFalse)"},{"line_number":392,"context_line":"        else:"},{"line_number":393,"context_line":"            return volume_paths"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"        for path in host_devices:"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_981563e6","line":392,"updated":"2015-09-29 20:04:51.000000000","message":"Optionally could re-arrange this if/else to \"if not \u0027target_portal\u0027 in connection_properties: return volume_paths\" and then have the rest of the code not in \"if\" block.\n\nOnly saying this because I think in order to get to line 395 we need line 382 to be true (otherwise would have hit return), so it seems like 393-399 could have been put in the initial \"if\" and seems strange to split this half in / half out of the if.","commit_id":"5e30ed0c10795b820fb8c7f12e0fdfe29f474979"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"d4295f809131f79557b2befd456d0847dfe78795","unresolved":false,"context_lines":[{"line_number":389,"context_line":"                connection_properties,"},{"line_number":390,"context_line":"                connect_to_portal\u003dFalse,"},{"line_number":391,"context_line":"                use_rescan\u003dFalse)"},{"line_number":392,"context_line":"        else:"},{"line_number":393,"context_line":"            return volume_paths"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"        for path in host_devices:"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_7e32b7f3","line":392,"in_reply_to":"9a1a9d01_981563e6","updated":"2015-09-29 20:18:02.000000000","message":"Done","commit_id":"5e30ed0c10795b820fb8c7f12e0fdfe29f474979"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"3e93a93ada974013e789cb6dcaa02cc14ae55ba8","unresolved":false,"context_lines":[{"line_number":439,"context_line":"        session that didn\u0027t exist previously, and then leave it stale."},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"        \"\"\""},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"        target_props \u003d None"},{"line_number":444,"context_line":"        if self.use_multipath:"},{"line_number":445,"context_line":"            LOG.info(_LI(\"Multipath discovery for iSCSI enabled\"))"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_3b7691a4","line":442,"updated":"2015-09-29 20:04:51.000000000","message":"Looks like target_props is always \"None\" when \"use_multipath\" is true, but otherwise could be equal \"connection_properties\" or a single \"prop\"?  Just want to make sure this is the intended behavior","commit_id":"5e30ed0c10795b820fb8c7f12e0fdfe29f474979"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"d4295f809131f79557b2befd456d0847dfe78795","unresolved":false,"context_lines":[{"line_number":439,"context_line":"        session that didn\u0027t exist previously, and then leave it stale."},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"        \"\"\""},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"        target_props \u003d None"},{"line_number":444,"context_line":"        if self.use_multipath:"},{"line_number":445,"context_line":"            LOG.info(_LI(\"Multipath discovery for iSCSI enabled\"))"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_be984fc1","line":442,"in_reply_to":"9a1a9d01_3b7691a4","updated":"2015-09-29 20:18:02.000000000","message":"yah the caller only uses target_props if it\u0027s self.use_multipath is False","commit_id":"5e30ed0c10795b820fb8c7f12e0fdfe29f474979"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"3e93a93ada974013e789cb6dcaa02cc14ae55ba8","unresolved":false,"context_lines":[{"line_number":459,"context_line":"                # the former, so use the supplied iqn. Otherwise, it\u0027s the"},{"line_number":460,"context_line":"                # latter, so try the ip,iqn combinations to find the targets"},{"line_number":461,"context_line":"                # which constitutes the multipath device."},{"line_number":462,"context_line":"                main_iqn \u003d connection_properties[\u0027target_iqn\u0027]"},{"line_number":463,"context_line":"                all_portals \u003d set([ip for ip, iqn in ips_iqns])"},{"line_number":464,"context_line":"                match_portals \u003d set([ip for ip, iqn in ips_iqns"},{"line_number":465,"context_line":"                                     if iqn \u003d\u003d main_iqn])"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_38c9b726","line":462,"updated":"2015-09-29 20:04:51.000000000","message":"Not sure how long we expect ips_iqns to be but it seems like we could create all_portals and match_portals in a single iteration of ips_iqns by using for loop instead of list comprehension","commit_id":"5e30ed0c10795b820fb8c7f12e0fdfe29f474979"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"d4295f809131f79557b2befd456d0847dfe78795","unresolved":false,"context_lines":[{"line_number":459,"context_line":"                # the former, so use the supplied iqn. Otherwise, it\u0027s the"},{"line_number":460,"context_line":"                # latter, so try the ip,iqn combinations to find the targets"},{"line_number":461,"context_line":"                # which constitutes the multipath device."},{"line_number":462,"context_line":"                main_iqn \u003d connection_properties[\u0027target_iqn\u0027]"},{"line_number":463,"context_line":"                all_portals \u003d set([ip for ip, iqn in ips_iqns])"},{"line_number":464,"context_line":"                match_portals \u003d set([ip for ip, iqn in ips_iqns"},{"line_number":465,"context_line":"                                     if iqn \u003d\u003d main_iqn])"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_3e075fcb","line":462,"in_reply_to":"9a1a9d01_38c9b726","updated":"2015-09-29 20:18:02.000000000","message":"This is true, but this code is simply a move from the existing connect_volume code.   This could be changed at a later patch for optimization.  But that\u0027s not the point of this patch.","commit_id":"5e30ed0c10795b820fb8c7f12e0fdfe29f474979"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"3e93a93ada974013e789cb6dcaa02cc14ae55ba8","unresolved":false,"context_lines":[{"line_number":485,"context_line":"            host_devices \u003d []"},{"line_number":486,"context_line":"            target_props \u003d connection_properties"},{"line_number":487,"context_line":"            for props in self._iterate_all_targets(connection_properties):"},{"line_number":488,"context_line":"                if connect_to_portal:"},{"line_number":489,"context_line":"                    if self._connect_to_iscsi_portal(props):"},{"line_number":490,"context_line":"                        target_props \u003d props"},{"line_number":491,"context_line":"                        host_devices \u003d self._get_device_path(props)"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_988ec3ce","line":488,"updated":"2015-09-29 20:04:51.000000000","message":"Should we have this same warning for line 482?","commit_id":"5e30ed0c10795b820fb8c7f12e0fdfe29f474979"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"d4295f809131f79557b2befd456d0847dfe78795","unresolved":false,"context_lines":[{"line_number":485,"context_line":"            host_devices \u003d []"},{"line_number":486,"context_line":"            target_props \u003d connection_properties"},{"line_number":487,"context_line":"            for props in self._iterate_all_targets(connection_properties):"},{"line_number":488,"context_line":"                if connect_to_portal:"},{"line_number":489,"context_line":"                    if self._connect_to_iscsi_portal(props):"},{"line_number":490,"context_line":"                        target_props \u003d props"},{"line_number":491,"context_line":"                        host_devices \u003d self._get_device_path(props)"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_7e5397e2","line":488,"in_reply_to":"9a1a9d01_988ec3ce","updated":"2015-09-29 20:18:02.000000000","message":"actually no. In the case where we don\u0027t want to connect, we are simply trying to get a list of existing volumes.  We aren\u0027t trying to connect to a portal and hence, it\u0027s not a warning/failure.","commit_id":"5e30ed0c10795b820fb8c7f12e0fdfe29f474979"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f903d3bdccb6d6f4df155657c9e29a28a34b5aef","unresolved":false,"context_lines":[{"line_number":403,"context_line":"        iscsi_sessions \u003d []"},{"line_number":404,"context_line":""},{"line_number":405,"context_line":"        if err:"},{"line_number":406,"context_line":"            LOG.warning(\"Couldn\u0027t find iscsi sessions because %s\","},{"line_number":407,"context_line":"                        err)"},{"line_number":408,"context_line":"        else:"},{"line_number":409,"context_line":"            # parse the output from iscsiadm"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a2fa921_05e34334","line":406,"updated":"2015-10-09 15:36:52.000000000","message":"Needs _LW().","commit_id":"dca59667b0b043862660bad58fbeb7f5b81b76de"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"740a709bcf2d492df2d7b949ee9230db2ec9eec2","unresolved":false,"context_lines":[{"line_number":403,"context_line":"        iscsi_sessions \u003d []"},{"line_number":404,"context_line":""},{"line_number":405,"context_line":"        if err:"},{"line_number":406,"context_line":"            LOG.warning(\"Couldn\u0027t find iscsi sessions because %s\","},{"line_number":407,"context_line":"                        err)"},{"line_number":408,"context_line":"        else:"},{"line_number":409,"context_line":"            # parse the output from iscsiadm"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a2fa921_88d96a59","line":406,"in_reply_to":"7a2fa921_05e34334","updated":"2015-10-09 15:53:48.000000000","message":"Done","commit_id":"dca59667b0b043862660bad58fbeb7f5b81b76de"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f903d3bdccb6d6f4df155657c9e29a28a34b5aef","unresolved":false,"context_lines":[{"line_number":1586,"context_line":"                                           *args, **kwargs)"},{"line_number":1587,"context_line":""},{"line_number":1588,"context_line":"    def get_volume_paths(self, connection_properties):"},{"line_number":1589,"context_line":"        # TODO(walter-boring): don\u0027t know where the connector"},{"line_number":1590,"context_line":"        # looks for RBD volumes."},{"line_number":1591,"context_line":"        return []"},{"line_number":1592,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"7a2fa921_055103d8","line":1589,"updated":"2015-10-09 15:36:52.000000000","message":"Do we need to get input and get this resolved before merging?","commit_id":"dca59667b0b043862660bad58fbeb7f5b81b76de"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"740a709bcf2d492df2d7b949ee9230db2ec9eec2","unresolved":false,"context_lines":[{"line_number":1586,"context_line":"                                           *args, **kwargs)"},{"line_number":1587,"context_line":""},{"line_number":1588,"context_line":"    def get_volume_paths(self, connection_properties):"},{"line_number":1589,"context_line":"        # TODO(walter-boring): don\u0027t know where the connector"},{"line_number":1590,"context_line":"        # looks for RBD volumes."},{"line_number":1591,"context_line":"        return []"},{"line_number":1592,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"7a2fa921_88c08a51","line":1589,"in_reply_to":"7a2fa921_055103d8","updated":"2015-10-09 15:53:48.000000000","message":"yah it might not be a bad idea, or we can do a follow up.","commit_id":"dca59667b0b043862660bad58fbeb7f5b81b76de"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"7115defbdfa81455350648ca1ac600eaf0b0a743","unresolved":false,"context_lines":[{"line_number":403,"context_line":"        iscsi_sessions \u003d []"},{"line_number":404,"context_line":""},{"line_number":405,"context_line":"        if err:"},{"line_number":406,"context_line":"            LOG.warning(_LW(\"Couldn\u0027t find iscsi sessions because %s\"),"},{"line_number":407,"context_line":"                        err)"},{"line_number":408,"context_line":"        else:"},{"line_number":409,"context_line":"            # parse the output from iscsiadm"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a2ca52d_afe4323b","line":406,"updated":"2015-10-13 20:27:56.000000000","message":"I think it would help to have more context on this as a Warning message.  \"Couldn\u0027t find iscsi sessions.  Err:  %s\"  Is it going to always be iscsiadm that is run?  If so, \"Couldn\u0027t find iscsi sessions.  iscsiadm err:  %s\"","commit_id":"fe9b41f61a921dc1bdd16133f3ff8cfde50b889a"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"65712b37b39c320906e3a3067296ef3d3a051495","unresolved":false,"context_lines":[{"line_number":403,"context_line":"        iscsi_sessions \u003d []"},{"line_number":404,"context_line":""},{"line_number":405,"context_line":"        if err:"},{"line_number":406,"context_line":"            LOG.warning(_LW(\"Couldn\u0027t find iscsi sessions because %s\"),"},{"line_number":407,"context_line":"                        err)"},{"line_number":408,"context_line":"        else:"},{"line_number":409,"context_line":"            # parse the output from iscsiadm"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a2ca52d_ae263d66","line":406,"in_reply_to":"5a2ca52d_afe4323b","updated":"2015-10-14 18:02:07.000000000","message":"Done","commit_id":"fe9b41f61a921dc1bdd16133f3ff8cfde50b889a"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"7115defbdfa81455350648ca1ac600eaf0b0a743","unresolved":false,"context_lines":[{"line_number":447,"context_line":"                ips_iqns \u003d self._discover_iscsi_portals(connection_properties)"},{"line_number":448,"context_line":"            except Exception:"},{"line_number":449,"context_line":"                raise exception.TargetPortalNotFound("},{"line_number":450,"context_line":"                    target_porta\u003dconnection_properties[\u0027target_portal\u0027])"},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"            if not connection_properties.get(\u0027target_iqns\u0027):"},{"line_number":453,"context_line":"                # There are two types of iSCSI multipath devices. One which"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a2ca52d_afd8b21e","line":450,"updated":"2015-10-13 20:27:56.000000000","message":"Typo here that needs to be fixed.  target_porta should be target_portal","commit_id":"fe9b41f61a921dc1bdd16133f3ff8cfde50b889a"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"65712b37b39c320906e3a3067296ef3d3a051495","unresolved":false,"context_lines":[{"line_number":447,"context_line":"                ips_iqns \u003d self._discover_iscsi_portals(connection_properties)"},{"line_number":448,"context_line":"            except Exception:"},{"line_number":449,"context_line":"                raise exception.TargetPortalNotFound("},{"line_number":450,"context_line":"                    target_porta\u003dconnection_properties[\u0027target_portal\u0027])"},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"            if not connection_properties.get(\u0027target_iqns\u0027):"},{"line_number":453,"context_line":"                # There are two types of iSCSI multipath devices. One which"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a2ca52d_4e1689f2","line":450,"in_reply_to":"5a2ca52d_afd8b21e","updated":"2015-10-14 18:02:07.000000000","message":"Done","commit_id":"fe9b41f61a921dc1bdd16133f3ff8cfde50b889a"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"7115defbdfa81455350648ca1ac600eaf0b0a743","unresolved":false,"context_lines":[{"line_number":476,"context_line":"                self._rescan_iscsi()"},{"line_number":477,"context_line":"            host_devices \u003d self._get_device_path(connection_properties)"},{"line_number":478,"context_line":"        else:"},{"line_number":479,"context_line":"            LOG.info(_LI(\"Multipath discovery for iSCSI not enabled\"))"},{"line_number":480,"context_line":"            iscsi_sessions \u003d []"},{"line_number":481,"context_line":"            if not connect_to_portal:"},{"line_number":482,"context_line":"                iscsi_sessions \u003d self._get_iscsi_sessions()"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a2ca52d_1fdb0f7e","line":479,"updated":"2015-10-13 20:27:56.000000000","message":"Ok, I know you are going to yell at me but it would be nice for the LI and LW messages if we could get consistency with \u0027.\u0027 or no \u0027.\u0027 at the end.  There is a mixture in the new code.  I personally vote for \u0027.\u0027.  :-)","commit_id":"fe9b41f61a921dc1bdd16133f3ff8cfde50b889a"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"65712b37b39c320906e3a3067296ef3d3a051495","unresolved":false,"context_lines":[{"line_number":476,"context_line":"                self._rescan_iscsi()"},{"line_number":477,"context_line":"            host_devices \u003d self._get_device_path(connection_properties)"},{"line_number":478,"context_line":"        else:"},{"line_number":479,"context_line":"            LOG.info(_LI(\"Multipath discovery for iSCSI not enabled\"))"},{"line_number":480,"context_line":"            iscsi_sessions \u003d []"},{"line_number":481,"context_line":"            if not connect_to_portal:"},{"line_number":482,"context_line":"                iscsi_sessions \u003d self._get_iscsi_sessions()"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a2ca52d_6ee825e3","line":479,"in_reply_to":"5a2ca52d_1fdb0f7e","updated":"2015-10-14 18:02:07.000000000","message":"Done","commit_id":"fe9b41f61a921dc1bdd16133f3ff8cfde50b889a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"2d07ea5a7747e587415595299ae9423958795532","unresolved":false,"context_lines":[{"line_number":1588,"context_line":"    def get_volume_paths(self, connection_properties):"},{"line_number":1589,"context_line":"        # TODO(walter-boring): don\u0027t know where the connector"},{"line_number":1590,"context_line":"        # looks for RBD volumes."},{"line_number":1591,"context_line":"        return []"},{"line_number":1592,"context_line":""},{"line_number":1593,"context_line":"    def get_search_path(self):"},{"line_number":1594,"context_line":"        # TODO(walter-boring): don\u0027t know where the connector"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a2ca52d_58f1abcc","line":1591,"updated":"2015-10-13 16:21:52.000000000","message":"There won\u0027t be a path to look at in the file hierarchy for RBD volumes, so this is probably correct?","commit_id":"fe9b41f61a921dc1bdd16133f3ff8cfde50b889a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"2d07ea5a7747e587415595299ae9423958795532","unresolved":false,"context_lines":[{"line_number":1593,"context_line":"    def get_search_path(self):"},{"line_number":1594,"context_line":"        # TODO(walter-boring): don\u0027t know where the connector"},{"line_number":1595,"context_line":"        # looks for RBD volumes."},{"line_number":1596,"context_line":"        return None"},{"line_number":1597,"context_line":""},{"line_number":1598,"context_line":"    def get_all_available_volumes(self, connection_properties\u003dNone):"},{"line_number":1599,"context_line":"        # TODO(walter-boring): not sure what to return here for RBD"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a2ca52d_d8b37b09","line":1596,"updated":"2015-10-13 16:21:52.000000000","message":"Same as above?","commit_id":"fe9b41f61a921dc1bdd16133f3ff8cfde50b889a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"2d07ea5a7747e587415595299ae9423958795532","unresolved":false,"context_lines":[{"line_number":1597,"context_line":""},{"line_number":1598,"context_line":"    def get_all_available_volumes(self, connection_properties\u003dNone):"},{"line_number":1599,"context_line":"        # TODO(walter-boring): not sure what to return here for RBD"},{"line_number":1600,"context_line":"        return []"},{"line_number":1601,"context_line":""},{"line_number":1602,"context_line":"    def _get_rbd_handle(self, connection_properties):"},{"line_number":1603,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a2ca52d_b8231f05","line":1600,"updated":"2015-10-13 16:21:52.000000000","message":"I\u0027m not sure either, is it actually useful to return anything here for RBD?  My limited understanding of this change has me leaning toward no.","commit_id":"fe9b41f61a921dc1bdd16133f3ff8cfde50b889a"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"32e7857d5381ec9193aab265d28c77601489488e","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        path \u003d self.get_search_path()"},{"line_number":311,"context_line":"        if path:"},{"line_number":312,"context_line":"            # now find all entries in the search path"},{"line_number":313,"context_line":"            file_list \u003d []"},{"line_number":314,"context_line":"            if os.path.isdir(path):"},{"line_number":315,"context_line":"                files \u003d os.listdir(path)"},{"line_number":316,"context_line":"                for entry in files:"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a26ad4f_d0452fb3","line":313,"updated":"2015-10-30 18:58:17.000000000","message":"Could save a few lines by moving line 311 here, i.e. \"if path and os.path.isdir(path):\".  The we could get rid of the else statement.","commit_id":"6dbe939c23c76936753cfb3795dad49c1c9f159a"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"32e7857d5381ec9193aab265d28c77601489488e","unresolved":false,"context_lines":[{"line_number":437,"context_line":"        In this case, we don\u0027t want to connect to the portal.  If we"},{"line_number":438,"context_line":"        blindly try and connect to a portal, it could create a new iSCSI"},{"line_number":439,"context_line":"        session that didn\u0027t exist previously, and then leave it stale."},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"        \"\"\""},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"        target_props \u003d None"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a26ad4f_734ea570","line":440,"updated":"2015-10-30 18:58:17.000000000","message":"Stray blank line here.","commit_id":"6dbe939c23c76936753cfb3795dad49c1c9f159a"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"8c76b6a4d82b93dd36dcd213888a74d9b504a18b","unresolved":false,"context_lines":[{"line_number":437,"context_line":"        In this case, we don\u0027t want to connect to the portal.  If we"},{"line_number":438,"context_line":"        blindly try and connect to a portal, it could create a new iSCSI"},{"line_number":439,"context_line":"        session that didn\u0027t exist previously, and then leave it stale."},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"        \"\"\""},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"        target_props \u003d None"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a26ad4f_c6830b55","line":440,"in_reply_to":"1a26ad4f_734ea570","updated":"2015-11-02 17:35:25.000000000","message":"Done","commit_id":"6dbe939c23c76936753cfb3795dad49c1c9f159a"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"32e7857d5381ec9193aab265d28c77601489488e","unresolved":false,"context_lines":[{"line_number":1040,"context_line":"        if mpath_line and not mpath_map:"},{"line_number":1041,"context_line":"            LOG.warning(_LW(\"Failed to parse the output of multipath -ll.\"))"},{"line_number":1042,"context_line":"        return mpath_map"},{"line_number":1043,"context_line":""},{"line_number":1044,"context_line":"    def _run_iscsi_session(self, **kwargs):"},{"line_number":1045,"context_line":"        (out, err) \u003d self._run_iscsiadm_bare((\u0027-m\u0027, \u0027session\u0027),"},{"line_number":1046,"context_line":"                                             check_exit_code\u003d[0, 1, 21, 255])"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a26ad4f_b3c99d7a","line":1043,"updated":"2015-10-30 18:58:17.000000000","message":"Any reason we are accepting **kwargs here? We don\u0027t seem to be using them","commit_id":"6dbe939c23c76936753cfb3795dad49c1c9f159a"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"8c76b6a4d82b93dd36dcd213888a74d9b504a18b","unresolved":false,"context_lines":[{"line_number":1040,"context_line":"        if mpath_line and not mpath_map:"},{"line_number":1041,"context_line":"            LOG.warning(_LW(\"Failed to parse the output of multipath -ll.\"))"},{"line_number":1042,"context_line":"        return mpath_map"},{"line_number":1043,"context_line":""},{"line_number":1044,"context_line":"    def _run_iscsi_session(self, **kwargs):"},{"line_number":1045,"context_line":"        (out, err) \u003d self._run_iscsiadm_bare((\u0027-m\u0027, \u0027session\u0027),"},{"line_number":1046,"context_line":"                                             check_exit_code\u003d[0, 1, 21, 255])"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a26ad4f_b30baf23","line":1043,"in_reply_to":"1a26ad4f_b3c99d7a","updated":"2015-11-02 17:35:25.000000000","message":"Done","commit_id":"6dbe939c23c76936753cfb3795dad49c1c9f159a"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"32e7857d5381ec9193aab265d28c77601489488e","unresolved":false,"context_lines":[{"line_number":1416,"context_line":"        shelf \u003d connection_properties[\u0027target_shelf\u0027]"},{"line_number":1417,"context_line":"        lun \u003d connection_properties[\u0027target_lun\u0027]"},{"line_number":1418,"context_line":"        aoe_device \u003d \u0027e%(shelf)s.%(lun)s\u0027 % {\u0027shelf\u0027: shelf,"},{"line_number":1419,"context_line":"                                             \u0027lun\u0027: lun}"},{"line_number":1420,"context_line":"        aoe_path \u003d \u0027/dev/etherd/%s\u0027 % (aoe_device)"},{"line_number":1421,"context_line":"        return aoe_device, aoe_path"},{"line_number":1422,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1a26ad4f_7390e543","line":1419,"updated":"2015-10-30 18:58:17.000000000","message":"Could change this to use get_search_path instead of hardcoded \u0027dev/etherd\"","commit_id":"6dbe939c23c76936753cfb3795dad49c1c9f159a"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"8c76b6a4d82b93dd36dcd213888a74d9b504a18b","unresolved":false,"context_lines":[{"line_number":1416,"context_line":"        shelf \u003d connection_properties[\u0027target_shelf\u0027]"},{"line_number":1417,"context_line":"        lun \u003d connection_properties[\u0027target_lun\u0027]"},{"line_number":1418,"context_line":"        aoe_device \u003d \u0027e%(shelf)s.%(lun)s\u0027 % {\u0027shelf\u0027: shelf,"},{"line_number":1419,"context_line":"                                             \u0027lun\u0027: lun}"},{"line_number":1420,"context_line":"        aoe_path \u003d \u0027/dev/etherd/%s\u0027 % (aoe_device)"},{"line_number":1421,"context_line":"        return aoe_device, aoe_path"},{"line_number":1422,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1a26ad4f_536a5bb4","line":1419,"in_reply_to":"1a26ad4f_7390e543","updated":"2015-11-02 17:35:25.000000000","message":"Done","commit_id":"6dbe939c23c76936753cfb3795dad49c1c9f159a"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"32e7857d5381ec9193aab265d28c77601489488e","unresolved":false,"context_lines":[{"line_number":1732,"context_line":"        volume_path \u003d None"},{"line_number":1733,"context_line":"        try:"},{"line_number":1734,"context_line":"            volume_path \u003d self._get_volume_path(connection_properties)"},{"line_number":1735,"context_line":"        except Exception:"},{"line_number":1736,"context_line":"            msg \u003d _(\"Couldn\u0027t find a volume.\")"},{"line_number":1737,"context_line":"            LOG.warning(msg)"},{"line_number":1738,"context_line":"            raise exception.BrickException(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a26ad4f_44a961de","line":1735,"updated":"2015-10-30 18:58:17.000000000","message":"Should we be using LOG.warning(_LW(...))?","commit_id":"6dbe939c23c76936753cfb3795dad49c1c9f159a"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"8c76b6a4d82b93dd36dcd213888a74d9b504a18b","unresolved":false,"context_lines":[{"line_number":1732,"context_line":"        volume_path \u003d None"},{"line_number":1733,"context_line":"        try:"},{"line_number":1734,"context_line":"            volume_path \u003d self._get_volume_path(connection_properties)"},{"line_number":1735,"context_line":"        except Exception:"},{"line_number":1736,"context_line":"            msg \u003d _(\"Couldn\u0027t find a volume.\")"},{"line_number":1737,"context_line":"            LOG.warning(msg)"},{"line_number":1738,"context_line":"            raise exception.BrickException(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a26ad4f_138e2379","line":1735,"in_reply_to":"1a26ad4f_44a961de","updated":"2015-11-02 17:35:25.000000000","message":"nope.  Review the guidelines for this here:\n\nhttp://docs.openstack.org/developer/oslo.i18n/guidelines.html#choosing-a-marker-function","commit_id":"6dbe939c23c76936753cfb3795dad49c1c9f159a"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"32e7857d5381ec9193aab265d28c77601489488e","unresolved":false,"context_lines":[{"line_number":1741,"context_line":"    def _get_volume_path(self, connection_properties):"},{"line_number":1742,"context_line":"        out \u003d self._query_attached_volume("},{"line_number":1743,"context_line":"            connection_properties[\u0027volume_id\u0027])"},{"line_number":1744,"context_line":"        if not out or int(out[\u0027ret_code\u0027]) !\u003d 0:"},{"line_number":1745,"context_line":"            msg \u003d _(\"Couldn\u0027t find attached volume.\")"},{"line_number":1746,"context_line":"            LOG.error(msg)"},{"line_number":1747,"context_line":"            raise exception.BrickException(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a26ad4f_e4b0ad45","line":1744,"updated":"2015-10-30 18:58:17.000000000","message":"Should we be using LOG.error(_LE(...))","commit_id":"6dbe939c23c76936753cfb3795dad49c1c9f159a"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"331c51dfce14fce1cbb2847bfbf470edf926017b","unresolved":false,"context_lines":[{"line_number":1410,"context_line":"            device_scan_attempts\u003ddevice_scan_attempts,"},{"line_number":1411,"context_line":"            *args, **kwargs)"},{"line_number":1412,"context_line":""},{"line_number":1413,"context_line":"    def get_search_path(self):"},{"line_number":1414,"context_line":"        return \u0027/dev/etherd\u0027"},{"line_number":1415,"context_line":""},{"line_number":1416,"context_line":"    def get_volume_paths(self, connection_properties):"}],"source_content_type":"text/x-python","patch_set":21,"id":"da85f559_9b973c39","line":1413,"updated":"2015-11-12 18:25:15.000000000","message":"Nit: it should be a property, not method","commit_id":"6de857a981569ddc18385cac5629eef514250d14"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"331c51dfce14fce1cbb2847bfbf470edf926017b","unresolved":false,"context_lines":[{"line_number":1912,"context_line":"        return \"/dev\""},{"line_number":1913,"context_line":""},{"line_number":1914,"context_line":"    def get_volume_paths(self, connection_properties):"},{"line_number":1915,"context_line":"        path \u003d \"/dev/\" + connection_properties[\u0027name\u0027]"},{"line_number":1916,"context_line":"        volume_path \u003d None"},{"line_number":1917,"context_line":"        if os.path.exists(path):"},{"line_number":1918,"context_line":"            volume_path \u003d path"}],"source_content_type":"text/x-python","patch_set":21,"id":"da85f559_5ba6b4ae","line":1915,"updated":"2015-11-12 18:25:15.000000000","message":"can we use get_search_path here?","commit_id":"6de857a981569ddc18385cac5629eef514250d14"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"1e27e0a116915892bee1660b1789a522033edb3b","unresolved":false,"context_lines":[{"line_number":1912,"context_line":"        return \"/dev\""},{"line_number":1913,"context_line":""},{"line_number":1914,"context_line":"    def get_volume_paths(self, connection_properties):"},{"line_number":1915,"context_line":"        path \u003d \"/dev/\" + connection_properties[\u0027name\u0027]"},{"line_number":1916,"context_line":"        volume_path \u003d None"},{"line_number":1917,"context_line":"        if os.path.exists(path):"},{"line_number":1918,"context_line":"            volume_path \u003d path"}],"source_content_type":"text/x-python","patch_set":21,"id":"da85f559_fbcc4836","line":1915,"in_reply_to":"da85f559_5ba6b4ae","updated":"2015-11-13 19:01:43.000000000","message":"ok I\u0027ll fix this.","commit_id":"6de857a981569ddc18385cac5629eef514250d14"}]}
