)]}'
{"cinder/brick/initiator/connector.py":[{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"eacb9fac7fcf3a2820db627db73844be9762ecf2","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    def set_driver(self, driver):"},{"line_number":49,"context_line":"        \"\"\"The driver is used to find used LUNs.\"\"\""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        self.driver \u003d driver"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def connect_volume(self, connection_properties):"},{"line_number":54,"context_line":"        raise NotImplementedError()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2Fptk%3D","line":51,"updated":"2013-07-15 09:25:31.000000000","message":"\u0027self.driver\u0027 also not be used in FibreChannelConnector, do you think we move it down to \u0027FibreChannelConnector\u0027 is better? Or do you think it well be better if we adding the same checking around \u0027self.driver.get_all_block_devices()\u0027 in \u0027FibreChannelConnector.disconnect_volume()\u0027 also, just like \u0027ISCSIConnector\u0027 did, i know it is not necessary on disconnection function but do we need  give some choices to client to make a hook in \u0027disconnect_volume()\u0027 logic?","commit_id":"620bc4d31e3db98396591fcb162b460d1958da56"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"12578efdc141f874762fa721b9d89fb4421fb4ae","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    def set_driver(self, driver):"},{"line_number":49,"context_line":"        \"\"\"The driver is used to find used LUNs.\"\"\""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        self.driver \u003d driver"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def connect_volume(self, connection_properties):"},{"line_number":54,"context_line":"        raise NotImplementedError()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2Foqc%3D","line":51,"in_reply_to":"AAAAP3%2F%2Fptk%3D","updated":"2013-07-15 15:35:46.000000000","message":"At some point we will rework both of the connectors to be similar.  For now, that objective of this work is to pull the code out of nova into this library such that cinder can use it.  Then we\u0027ll refactor Nova to use this code.  Both the iSCSI and FC code was pulled as it was from nova.   I will revisit the inconsistencies between iSCSI and FC code at a later date.   For what it\u0027s worth, I believe the iSCSI code should be more like the FC code in how it checks for devices etc.   Anyway, yes the self.driver isn\u0027t currently used in FC, but it\u0027s also not used in FC\u0027s code in nova either.","commit_id":"620bc4d31e3db98396591fcb162b460d1958da56"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"ea6bb6b153e2ea60546ad61ddbfb91dee2e1f342","unresolved":false,"context_lines":[{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        connection_properties for Fibre Channel must include:"},{"line_number":397,"context_line":"        target_portal - ip and optional port"},{"line_number":398,"context_line":"        target_iqn - iSCSI Qualified Name"},{"line_number":399,"context_line":"        target_lun - LUN id of the volume"},{"line_number":400,"context_line":"        \"\"\""},{"line_number":401,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2FqI0%3D","line":398,"updated":"2013-07-15 08:48:28.000000000","message":"Wrong hints in comments.","commit_id":"620bc4d31e3db98396591fcb162b460d1958da56"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"91aab88ea6288b621478beda3b968bcec16af1c4","unresolved":false,"context_lines":[{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        connection_properties for Fibre Channel must include:"},{"line_number":397,"context_line":"        target_portal - ip and optional port"},{"line_number":398,"context_line":"        target_iqn - iSCSI Qualified Name"},{"line_number":399,"context_line":"        target_lun - LUN id of the volume"},{"line_number":400,"context_line":"        \"\"\""},{"line_number":401,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2FofI%3D","line":398,"in_reply_to":"AAAAP3%2F%2FoqM%3D","updated":"2013-07-15 16:04:54.000000000","message":"Done","commit_id":"620bc4d31e3db98396591fcb162b460d1958da56"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"12578efdc141f874762fa721b9d89fb4421fb4ae","unresolved":false,"context_lines":[{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        connection_properties for Fibre Channel must include:"},{"line_number":397,"context_line":"        target_portal - ip and optional port"},{"line_number":398,"context_line":"        target_iqn - iSCSI Qualified Name"},{"line_number":399,"context_line":"        target_lun - LUN id of the volume"},{"line_number":400,"context_line":"        \"\"\""},{"line_number":401,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2FoqM%3D","line":398,"in_reply_to":"AAAAP3%2F%2FqI0%3D","updated":"2013-07-15 15:35:46.000000000","message":"I\u0027ll fix this.","commit_id":"620bc4d31e3db98396591fcb162b460d1958da56"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"ea6bb6b153e2ea60546ad61ddbfb91dee2e1f342","unresolved":false,"context_lines":[{"line_number":492,"context_line":"            devices \u003d [dev_info]"},{"line_number":493,"context_line":""},{"line_number":494,"context_line":"        device_info[\u0027path\u0027] \u003d device_path"},{"line_number":495,"context_line":"        device_info[\u0027devices\u0027] \u003d devices"},{"line_number":496,"context_line":"        return device_info"},{"line_number":497,"context_line":""},{"line_number":498,"context_line":"    @synchronized(\u0027connect_volume\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2Fp%2Fo%3D","line":495,"updated":"2013-07-15 08:48:28.000000000","message":"Inconsistent with ISCSIConnector part. So 1. if you this field is valuable for client, do you think it will be better if we add this also to \u0027ISCSIConnector.connect_volume()\u0027? 2. if you don\u0027t agree #1, I noticed at Line #515 you need get this list again, so why we not move \u0027devices\u0027 field related code to \u0027disconnect_volume()\u0027 there?","commit_id":"620bc4d31e3db98396591fcb162b460d1958da56"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"12578efdc141f874762fa721b9d89fb4421fb4ae","unresolved":false,"context_lines":[{"line_number":492,"context_line":"            devices \u003d [dev_info]"},{"line_number":493,"context_line":""},{"line_number":494,"context_line":"        device_info[\u0027path\u0027] \u003d device_path"},{"line_number":495,"context_line":"        device_info[\u0027devices\u0027] \u003d devices"},{"line_number":496,"context_line":"        return device_info"},{"line_number":497,"context_line":""},{"line_number":498,"context_line":"    @synchronized(\u0027connect_volume\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2FopY%3D","line":495,"in_reply_to":"AAAAP3%2F%2Fp%2Fo%3D","updated":"2013-07-15 15:35:46.000000000","message":"yes, this is inconsistent with iSCSI.  IMHO iSCSI code path should change.  As I described in the comment above, this purpose of this patch isn\u0027t to rework the logic of the code I pulled from Nova, but to get it pulled into a library that both nova, cinder, can use.  Then I\u0027ll revisit the inconsistencies between the 2.\n\nWe fetch the list again in disconnect because if multipath is enabled, then we most likely won\u0027t have the entire list of multipath devices at attach time.   I\u0027ve seen race conditions under load where only 1 device shows up at connect_volume time, due to kernel loading, etc. etc.   This was all explained when the original FC patch landed in Nova.   We need the list at connect_volume time to help discover what multipath device is created.   We actually need it both at connect_volume time and disconnect_volume time.","commit_id":"620bc4d31e3db98396591fcb162b460d1958da56"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"ea6bb6b153e2ea60546ad61ddbfb91dee2e1f342","unresolved":false,"context_lines":[{"line_number":501,"context_line":""},{"line_number":502,"context_line":"        connection_properties for Fibre Channel must include:"},{"line_number":503,"context_line":"        target_portal - ip and optional port"},{"line_number":504,"context_line":"        target_iqn - iSCSI Qualified Name"},{"line_number":505,"context_line":"        target_lun - LUN id of the volume"},{"line_number":506,"context_line":"        \"\"\""},{"line_number":507,"context_line":"        devices \u003d connection_properties[\u0027devices\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2FqA8%3D","line":504,"updated":"2013-07-15 08:48:28.000000000","message":"Wrong hints in comments again.","commit_id":"620bc4d31e3db98396591fcb162b460d1958da56"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"91aab88ea6288b621478beda3b968bcec16af1c4","unresolved":false,"context_lines":[{"line_number":501,"context_line":""},{"line_number":502,"context_line":"        connection_properties for Fibre Channel must include:"},{"line_number":503,"context_line":"        target_portal - ip and optional port"},{"line_number":504,"context_line":"        target_iqn - iSCSI Qualified Name"},{"line_number":505,"context_line":"        target_lun - LUN id of the volume"},{"line_number":506,"context_line":"        \"\"\""},{"line_number":507,"context_line":"        devices \u003d connection_properties[\u0027devices\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2FofE%3D","line":504,"in_reply_to":"AAAAP3%2F%2Foog%3D","updated":"2013-07-15 16:04:54.000000000","message":"Done","commit_id":"620bc4d31e3db98396591fcb162b460d1958da56"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"12578efdc141f874762fa721b9d89fb4421fb4ae","unresolved":false,"context_lines":[{"line_number":501,"context_line":""},{"line_number":502,"context_line":"        connection_properties for Fibre Channel must include:"},{"line_number":503,"context_line":"        target_portal - ip and optional port"},{"line_number":504,"context_line":"        target_iqn - iSCSI Qualified Name"},{"line_number":505,"context_line":"        target_lun - LUN id of the volume"},{"line_number":506,"context_line":"        \"\"\""},{"line_number":507,"context_line":"        devices \u003d connection_properties[\u0027devices\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2Foog%3D","line":504,"in_reply_to":"AAAAP3%2F%2FqA8%3D","updated":"2013-07-15 15:35:46.000000000","message":"will fix.","commit_id":"620bc4d31e3db98396591fcb162b460d1958da56"}],"cinder/brick/initiator/linuxfc.py":[{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"ea6bb6b153e2ea60546ad61ddbfb91dee2e1f342","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        return wwpns"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def get_fc_wwnns(self):"},{"line_number":123,"context_line":"        \"\"\"Get Fibre Channel WWNNs from the system, if any.\"\"\""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        # Note(walter-boring) modern linux kernels contain the FC HBA\u0027s in /sys"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2FqBY%3D","line":122,"updated":"2013-07-15 08:48:28.000000000","message":"Unused function?","commit_id":"620bc4d31e3db98396591fcb162b460d1958da56"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"12578efdc141f874762fa721b9d89fb4421fb4ae","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        return wwpns"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def get_fc_wwnns(self):"},{"line_number":123,"context_line":"        \"\"\"Get Fibre Channel WWNNs from the system, if any.\"\"\""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        # Note(walter-boring) modern linux kernels contain the FC HBA\u0027s in /sys"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2FooY%3D","line":122,"in_reply_to":"AAAAP3%2F%2FqBY%3D","updated":"2013-07-15 15:35:46.000000000","message":"This function is required for when the nova refactor is done and uses brick.   I don\u0027t want to not pull functions over and forget them.","commit_id":"620bc4d31e3db98396591fcb162b460d1958da56"}],"cinder/brick/initiator/linuxscsi.py":[{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"6721d5abf644292ff8abf662239cacb75a05dadc","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            self.echo_scsi_command(path, \"1\")"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def get_device_info(self, device):"},{"line_number":66,"context_line":"        (out, err) \u003d self._execute(\u0027sg_scan\u0027, device, run_as_root\u003dTrue,"},{"line_number":67,"context_line":"                                   root_helper\u003dself._root_helper)"},{"line_number":68,"context_line":"        dev_info \u003d {\u0027device\u0027: device, \u0027host\u0027: None,"},{"line_number":69,"context_line":"                    \u0027channel\u0027: None, \u0027id\u0027: None, \u0027lun\u0027: None}"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAP3%2F%2Ff70%3D","line":66,"updated":"2013-07-17 11:10:01.000000000","message":"We need also add \u0027sg_scan\u0027 to \u0027rootwrap.d/volume.filters\u0027.","commit_id":"cb6faab4d99801e76195802659013a5ccdc6b5b5"}],"etc/cinder/rootwrap.d/volume.filters":[{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"6721d5abf644292ff8abf662239cacb75a05dadc","unresolved":false,"context_lines":[{"line_number":57,"context_line":"# cinder/volumes/drivers/hds/hds.py: "},{"line_number":58,"context_line":"hus_cmd: CommandFilter, hus_cmd, root"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"# cinder/brick/initiator/connector.py:"},{"line_number":61,"context_line":"ls: CommandFilter, ls, root"},{"line_number":62,"context_line":"tee: CommandFilter, tee, root"},{"line_number":63,"context_line":"multipath: CommandFilter, multipath, root"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"AAAAP3%2F%2Ff6k%3D","line":60,"updated":"2013-07-17 11:10:01.000000000","message":"\u0027systool\u0027 calls in \u0027cinder/brick/initiator/linuxfc.py\u0027 but not this file.","commit_id":"cb6faab4d99801e76195802659013a5ccdc6b5b5"}]}
