)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"438ee5985dbf4a31aa58f12fb768ebb39ca65f2d","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There are some platform specific changes needed to allow Cinder to"},{"line_number":10,"context_line":"support FCP on System z: the System z specific format of the device file"},{"line_number":11,"context_line":"paths, adding and removing devices explicitely, and ignoring vHBAs which"},{"line_number":12,"context_line":"are offline."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Partial-Implements blueprint linux-systemz"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"9a80dd14_a07119e2","line":11,"updated":"2015-03-05 17:29:12.000000000","message":"typo -\u003e explicitely -\u003e explicitly","commit_id":"f346a703d355c4d2f7fc76728ea637cb15960650"}],"cinder/brick/initiator/connector.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"bb9e673cd0d63fa832e1918f5cb064532ae1e62e","unresolved":false,"context_lines":[{"line_number":608,"context_line":"                                      (pci_num,"},{"line_number":609,"context_line":"                                       target_wwn,"},{"line_number":610,"context_line":"                                       target_lun))"},{"line_number":611,"context_line":"                        LOG.debug(\"zKVM: pci_num\u003d%s target_wwn\u003d%s target_lun\u003d%s\" %"},{"line_number":612,"context_line":"                                    (pci_num,"},{"line_number":613,"context_line":"                                     target_wwn,"},{"line_number":614,"context_line":"                                     target_lun))"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a930d6b_8c861e64","line":611,"updated":"2015-01-22 14:29:06.000000000","message":"% \u003d\u003e ,","commit_id":"4f57b299273db92b68f620464a700d58cc43c930"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"bb9e673cd0d63fa832e1918f5cb064532ae1e62e","unresolved":false,"context_lines":[{"line_number":735,"context_line":"                    for wwn in wwns:"},{"line_number":736,"context_line":"                        target_wwn \u003d \"0x%s\" % wwn.lower()"},{"line_number":737,"context_line":"                        target_lun \u003d \"0x00%02d000000000000\" % int(connection_properties.get(\u0027target_lun\u0027, 0))"},{"line_number":738,"context_line":"                        LOG.debug(\"zKVM: pci_num\u003d%s target_wwn\u003d%s target_lun\u003d%s\" %"},{"line_number":739,"context_line":"                                    (pci_num,"},{"line_number":740,"context_line":"                                     target_wwn,"},{"line_number":741,"context_line":"                                     target_lun))"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a930d6b_ec96c293","line":738,"updated":"2015-01-22 14:29:06.000000000","message":"% \u003d\u003e ,","commit_id":"4f57b299273db92b68f620464a700d58cc43c930"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"27e1a968f9c87bae9b70bfa0de1f0fc49f0bfc25","unresolved":false,"context_lines":[{"line_number":609,"context_line":"            if pci_num is not None:"},{"line_number":610,"context_line":"                for wwn in wwns:"},{"line_number":611,"context_line":"                    target_wwn \u003d \"0x%s\" % wwn.lower()"},{"line_number":612,"context_line":"                    if platform.machine() \u003d\u003d \u0027s390x\u0027:"},{"line_number":613,"context_line":"                        target_lun \u003d \"0x00%02d000000000000\" % int("},{"line_number":614,"context_line":"                            connection_properties.get(\u0027target_lun\u0027, 0))"},{"line_number":615,"context_line":"                        host_device \u003d ("}],"source_content_type":"text/x-python","patch_set":5,"id":"1a930d6b_80011607","line":612,"updated":"2015-01-26 17:10:27.000000000","message":"\u0027s390x\u0027 is used in multiple places. Please make it a constant.","commit_id":"9fac12712cb6dc5fc9bcda644aa8ea8dbda78f92"},{"author":{"_account_id":11433,"name":"Stefan Amann","email":"stefan.amann@de.ibm.com","username":"StefanAmann"},"change_message_id":"594e40dde5fa047b8c24aea2ebafd8e18862f0d3","unresolved":false,"context_lines":[{"line_number":609,"context_line":"            if pci_num is not None:"},{"line_number":610,"context_line":"                for wwn in wwns:"},{"line_number":611,"context_line":"                    target_wwn \u003d \"0x%s\" % wwn.lower()"},{"line_number":612,"context_line":"                    if platform.machine() \u003d\u003d \u0027s390x\u0027:"},{"line_number":613,"context_line":"                        target_lun \u003d \"0x00%02d000000000000\" % int("},{"line_number":614,"context_line":"                            connection_properties.get(\u0027target_lun\u0027, 0))"},{"line_number":615,"context_line":"                        host_device \u003d ("}],"source_content_type":"text/x-python","patch_set":5,"id":"1a930d6b_9d99547b","line":612,"in_reply_to":"1a930d6b_80011607","updated":"2015-02-20 11:51:51.000000000","message":"Done","commit_id":"9fac12712cb6dc5fc9bcda644aa8ea8dbda78f92"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"27e1a968f9c87bae9b70bfa0de1f0fc49f0bfc25","unresolved":false,"context_lines":[{"line_number":730,"context_line":"            # we support a list of wwns or a single wwn"},{"line_number":731,"context_line":"            if isinstance(ports, list):"},{"line_number":732,"context_line":"                for wwn in ports:"},{"line_number":733,"context_line":"                    wwns.append(str(wwn))"},{"line_number":734,"context_line":"            elif isinstance(ports, basestring):"},{"line_number":735,"context_line":"                wwns.append(str(ports))"},{"line_number":736,"context_line":"            hbas \u003d self._linuxfc.get_fc_hbas_info()"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a930d6b_203942d7","line":733,"updated":"2015-01-26 17:10:27.000000000","message":"Use six.text_type() instead of str().","commit_id":"9fac12712cb6dc5fc9bcda644aa8ea8dbda78f92"},{"author":{"_account_id":11433,"name":"Stefan Amann","email":"stefan.amann@de.ibm.com","username":"StefanAmann"},"change_message_id":"594e40dde5fa047b8c24aea2ebafd8e18862f0d3","unresolved":false,"context_lines":[{"line_number":730,"context_line":"            # we support a list of wwns or a single wwn"},{"line_number":731,"context_line":"            if isinstance(ports, list):"},{"line_number":732,"context_line":"                for wwn in ports:"},{"line_number":733,"context_line":"                    wwns.append(str(wwn))"},{"line_number":734,"context_line":"            elif isinstance(ports, basestring):"},{"line_number":735,"context_line":"                wwns.append(str(ports))"},{"line_number":736,"context_line":"            hbas \u003d self._linuxfc.get_fc_hbas_info()"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a930d6b_5d936c5a","line":733,"in_reply_to":"1a930d6b_203942d7","updated":"2015-02-20 11:51:51.000000000","message":"Done","commit_id":"9fac12712cb6dc5fc9bcda644aa8ea8dbda78f92"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"27e1a968f9c87bae9b70bfa0de1f0fc49f0bfc25","unresolved":false,"context_lines":[{"line_number":732,"context_line":"                for wwn in ports:"},{"line_number":733,"context_line":"                    wwns.append(str(wwn))"},{"line_number":734,"context_line":"            elif isinstance(ports, basestring):"},{"line_number":735,"context_line":"                wwns.append(str(ports))"},{"line_number":736,"context_line":"            hbas \u003d self._linuxfc.get_fc_hbas_info()"},{"line_number":737,"context_line":"            for hba in hbas:"},{"line_number":738,"context_line":"                pci_num \u003d self._get_pci_num(hba)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a930d6b_6046ea50","line":735,"updated":"2015-01-26 17:10:27.000000000","message":"Same here.","commit_id":"9fac12712cb6dc5fc9bcda644aa8ea8dbda78f92"},{"author":{"_account_id":11433,"name":"Stefan Amann","email":"stefan.amann@de.ibm.com","username":"StefanAmann"},"change_message_id":"594e40dde5fa047b8c24aea2ebafd8e18862f0d3","unresolved":false,"context_lines":[{"line_number":732,"context_line":"                for wwn in ports:"},{"line_number":733,"context_line":"                    wwns.append(str(wwn))"},{"line_number":734,"context_line":"            elif isinstance(ports, basestring):"},{"line_number":735,"context_line":"                wwns.append(str(ports))"},{"line_number":736,"context_line":"            hbas \u003d self._linuxfc.get_fc_hbas_info()"},{"line_number":737,"context_line":"            for hba in hbas:"},{"line_number":738,"context_line":"                pci_num \u003d self._get_pci_num(hba)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a930d6b_3d986077","line":735,"in_reply_to":"1a930d6b_6046ea50","updated":"2015-02-20 11:51:51.000000000","message":"Done","commit_id":"9fac12712cb6dc5fc9bcda644aa8ea8dbda78f92"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"27e1a968f9c87bae9b70bfa0de1f0fc49f0bfc25","unresolved":false,"context_lines":[{"line_number":736,"context_line":"            hbas \u003d self._linuxfc.get_fc_hbas_info()"},{"line_number":737,"context_line":"            for hba in hbas:"},{"line_number":738,"context_line":"                pci_num \u003d self._get_pci_num(hba)"},{"line_number":739,"context_line":"                LOG.debug(\"pci_num\u003d%s  \" % pci_num)"},{"line_number":740,"context_line":"                if pci_num is not None:"},{"line_number":741,"context_line":"                    for wwn in wwns:"},{"line_number":742,"context_line":"                        target_wwn \u003d \"0x%s\" % wwn.lower()"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a930d6b_00b1a646","line":739,"updated":"2015-01-26 17:10:27.000000000","message":"Use \",\" instead of \"%\" for delaying string interpolation. I refer to % before pci_num.","commit_id":"9fac12712cb6dc5fc9bcda644aa8ea8dbda78f92"},{"author":{"_account_id":11433,"name":"Stefan Amann","email":"stefan.amann@de.ibm.com","username":"StefanAmann"},"change_message_id":"594e40dde5fa047b8c24aea2ebafd8e18862f0d3","unresolved":false,"context_lines":[{"line_number":736,"context_line":"            hbas \u003d self._linuxfc.get_fc_hbas_info()"},{"line_number":737,"context_line":"            for hba in hbas:"},{"line_number":738,"context_line":"                pci_num \u003d self._get_pci_num(hba)"},{"line_number":739,"context_line":"                LOG.debug(\"pci_num\u003d%s  \" % pci_num)"},{"line_number":740,"context_line":"                if pci_num is not None:"},{"line_number":741,"context_line":"                    for wwn in wwns:"},{"line_number":742,"context_line":"                        target_wwn \u003d \"0x%s\" % wwn.lower()"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a930d6b_1dae4498","line":739,"in_reply_to":"1a930d6b_00b1a646","updated":"2015-02-20 11:51:51.000000000","message":"Done","commit_id":"9fac12712cb6dc5fc9bcda644aa8ea8dbda78f92"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"1714366c529d632c6e80ca7ab3b1ec14e8797f9b","unresolved":false,"context_lines":[{"line_number":727,"context_line":"        if platform.machine() \u003d\u003d \u0027s390x\u0027:"},{"line_number":728,"context_line":"            ports \u003d connection_properties[\u0027target_wwn\u0027]"},{"line_number":729,"context_line":"            wwns \u003d []"},{"line_number":730,"context_line":"            # we support a list of wwns or a single wwn"},{"line_number":731,"context_line":"            if isinstance(ports, list):"},{"line_number":732,"context_line":"                for wwn in ports:"},{"line_number":733,"context_line":"                    wwns.append(str(wwn))"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_ee954833","line":730,"updated":"2015-01-27 11:49:08.000000000","message":"Please start comments uppercase.","commit_id":"9a9b458b632d21ce6c41d6be3dc362ca0e3b12d2"},{"author":{"_account_id":11433,"name":"Stefan Amann","email":"stefan.amann@de.ibm.com","username":"StefanAmann"},"change_message_id":"2bc0537381e7a329373c37574071c17913c09a72","unresolved":false,"context_lines":[{"line_number":727,"context_line":"        if platform.machine() \u003d\u003d \u0027s390x\u0027:"},{"line_number":728,"context_line":"            ports \u003d connection_properties[\u0027target_wwn\u0027]"},{"line_number":729,"context_line":"            wwns \u003d []"},{"line_number":730,"context_line":"            # we support a list of wwns or a single wwn"},{"line_number":731,"context_line":"            if isinstance(ports, list):"},{"line_number":732,"context_line":"                for wwn in ports:"},{"line_number":733,"context_line":"                    wwns.append(str(wwn))"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_fd98986b","line":730,"in_reply_to":"1a930d6b_ee954833","updated":"2015-01-27 13:40:33.000000000","message":"Done","commit_id":"9a9b458b632d21ce6c41d6be3dc362ca0e3b12d2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"1714366c529d632c6e80ca7ab3b1ec14e8797f9b","unresolved":false,"context_lines":[{"line_number":736,"context_line":"            hbas \u003d self._linuxfc.get_fc_hbas_info()"},{"line_number":737,"context_line":"            for hba in hbas:"},{"line_number":738,"context_line":"                pci_num \u003d self._get_pci_num(hba)"},{"line_number":739,"context_line":"                LOG.debug(\"pci_num\u003d%s  \" % pci_num)"},{"line_number":740,"context_line":"                if pci_num is not None:"},{"line_number":741,"context_line":"                    for wwn in wwns:"},{"line_number":742,"context_line":"                        target_wwn \u003d \"0x%s\" % wwn.lower()"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_4ecd7c65","line":739,"updated":"2015-01-27 11:49:08.000000000","message":"Change % to , so string formatting only happens if debug logging level. Also please remove extra spaces on the end of the string.","commit_id":"9a9b458b632d21ce6c41d6be3dc362ca0e3b12d2"},{"author":{"_account_id":11433,"name":"Stefan Amann","email":"stefan.amann@de.ibm.com","username":"StefanAmann"},"change_message_id":"2bc0537381e7a329373c37574071c17913c09a72","unresolved":false,"context_lines":[{"line_number":736,"context_line":"            hbas \u003d self._linuxfc.get_fc_hbas_info()"},{"line_number":737,"context_line":"            for hba in hbas:"},{"line_number":738,"context_line":"                pci_num \u003d self._get_pci_num(hba)"},{"line_number":739,"context_line":"                LOG.debug(\"pci_num\u003d%s  \" % pci_num)"},{"line_number":740,"context_line":"                if pci_num is not None:"},{"line_number":741,"context_line":"                    for wwn in wwns:"},{"line_number":742,"context_line":"                        target_wwn \u003d \"0x%s\" % wwn.lower()"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_9dbeb4ac","line":739,"in_reply_to":"1a930d6b_4ecd7c65","updated":"2015-01-27 13:40:33.000000000","message":"Done","commit_id":"9a9b458b632d21ce6c41d6be3dc362ca0e3b12d2"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"6da276417791554725abd50650dab8223e35f90c","unresolved":false,"context_lines":[{"line_number":739,"context_line":"            hbas \u003d self._linuxfc.get_fc_hbas_info()"},{"line_number":740,"context_line":"            for hba in hbas:"},{"line_number":741,"context_line":"                pci_num \u003d self._get_pci_num(hba)"},{"line_number":742,"context_line":"                LOG.debug(\"pci_num\u003d%(pci_num)s \", {\u0027pci_num\u0027: pci_num})"},{"line_number":743,"context_line":"                if pci_num is not None:"},{"line_number":744,"context_line":"                    for wwn in wwns:"},{"line_number":745,"context_line":"                        target_wwn \u003d \"0x%s\" % wwn.lower()"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_7d45e8b1","line":742,"updated":"2015-02-03 19:13:56.000000000","message":"This debug message doesn\u0027t seem very helpful.  Would make more sense to have some context: \u0027 Disconnecting volume: pci_num\u003d%(pci_num)s \u0027 or something like that.","commit_id":"be81ddacd0047b8191ce7cce7f4b309bf1592001"},{"author":{"_account_id":11433,"name":"Stefan Amann","email":"stefan.amann@de.ibm.com","username":"StefanAmann"},"change_message_id":"5281d239d1752527f56c0a58376386fd9844c412","unresolved":false,"context_lines":[{"line_number":739,"context_line":"            hbas \u003d self._linuxfc.get_fc_hbas_info()"},{"line_number":740,"context_line":"            for hba in hbas:"},{"line_number":741,"context_line":"                pci_num \u003d self._get_pci_num(hba)"},{"line_number":742,"context_line":"                LOG.debug(\"pci_num\u003d%(pci_num)s \", {\u0027pci_num\u0027: pci_num})"},{"line_number":743,"context_line":"                if pci_num is not None:"},{"line_number":744,"context_line":"                    for wwn in wwns:"},{"line_number":745,"context_line":"                        target_wwn \u003d \"0x%s\" % wwn.lower()"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_761fb008","line":742,"in_reply_to":"da86d52c_7d45e8b1","updated":"2015-02-20 11:52:20.000000000","message":"I removed this log message because the function called below logs the same information. I improved the message within the called function","commit_id":"be81ddacd0047b8191ce7cce7f4b309bf1592001"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"b06906684b21e55ba73bdf25880b41029cbb2aa9","unresolved":false,"context_lines":[{"line_number":608,"context_line":"        # where they will show up."},{"line_number":609,"context_line":"        hbas \u003d self._linuxfc.get_fc_hbas_info()"},{"line_number":610,"context_line":"        host_devices \u003d []"},{"line_number":611,"context_line":"        for hba in hbas:"},{"line_number":612,"context_line":"            pci_num \u003d self._get_pci_num(hba)"},{"line_number":613,"context_line":"            if pci_num is not None:"},{"line_number":614,"context_line":"                for wwn in wwns:"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_ca954c41","line":611,"updated":"2015-03-05 16:40:07.000000000","message":"This is refactored in the next patch set to be more in line with the current nova code which does the same [1]. I intend to make the transition to \"os-brick\" easier with this approach.\n\n[1] See novas \"volume.py\": https://github.com/openstack/nova/blob/master/nova/virt/libvirt/volume.py#L1266","commit_id":"ebc8e18370dc43491d244a0640c4d2b53ca3f57a"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"4fc9f61bcb9444e583053bece7acf92f837342ed","unresolved":false,"context_lines":[{"line_number":613,"context_line":"            if pci_num is not None:"},{"line_number":614,"context_line":"                for wwn in wwns:"},{"line_number":615,"context_line":"                    target_wwn \u003d \"0x%s\" % wwn.lower()"},{"line_number":616,"context_line":"                    if (platform.machine() \u003d\u003d S390X or"},{"line_number":617,"context_line":"                            platform.machine() \u003d\u003d S390):"},{"line_number":618,"context_line":"                        lun \u003d connection_properties.get(\u0027target_lun\u0027, 0)"},{"line_number":619,"context_line":"                        target_lun \u003d 0"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_2302ce3e","line":616,"updated":"2015-03-04 19:07:13.000000000","message":"I think a cleaner way of doing this is to \n\n1) refactor the code that lives in in the original FibreChannelConnector and put it into a class method.\n2) Create a subclass of FibreChannelConnector that is S390X/S390 platform specific, with it\u0027s changes to the new function.\n\n3) Alter the InitiatorConnector.factory() to build the correct platform specific FibreChannelConnector based upon platform.machine()\n\nThat keeps the code clean and easier to follow.  Any custom code for the S390X/S390 code is in the child class.","commit_id":"ebc8e18370dc43491d244a0640c4d2b53ca3f57a"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"b06906684b21e55ba73bdf25880b41029cbb2aa9","unresolved":false,"context_lines":[{"line_number":613,"context_line":"            if pci_num is not None:"},{"line_number":614,"context_line":"                for wwn in wwns:"},{"line_number":615,"context_line":"                    target_wwn \u003d \"0x%s\" % wwn.lower()"},{"line_number":616,"context_line":"                    if (platform.machine() \u003d\u003d S390X or"},{"line_number":617,"context_line":"                            platform.machine() \u003d\u003d S390):"},{"line_number":618,"context_line":"                        lun \u003d connection_properties.get(\u0027target_lun\u0027, 0)"},{"line_number":619,"context_line":"                        target_lun \u003d 0"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_0a1be41b","line":616,"in_reply_to":"9a80dd14_2302ce3e","updated":"2015-03-05 16:40:07.000000000","message":"@Walter A. Boring IV: I like that approach. The next patch set will include that. If the approach in the next patch set seems to be OK for you, I will then hand in the unit tests in a subsequent patch set.","commit_id":"ebc8e18370dc43491d244a0640c4d2b53ca3f57a"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"438ee5985dbf4a31aa58f12fb768ebb39ca65f2d","unresolved":false,"context_lines":[{"line_number":785,"context_line":""},{"line_number":786,"context_line":"        :returns: list of (pci_id, wwn) tuples"},{"line_number":787,"context_line":""},{"line_number":788,"context_line":"        Given one or more wwn (mac addresses for fiber channel) ports"},{"line_number":789,"context_line":"        do the matrix math to figure out a set of pci device, wwn"},{"line_number":790,"context_line":"        tuples that are potentially valid (they won\u0027t all be). This"},{"line_number":791,"context_line":"        provides a search space for the device connection."}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_03910f99","line":788,"updated":"2015-03-05 17:29:12.000000000","message":"fiber -\u003e fibre","commit_id":"f346a703d355c4d2f7fc76728ea637cb15960650"},{"author":{"_account_id":11433,"name":"Stefan Amann","email":"stefan.amann@de.ibm.com","username":"StefanAmann"},"change_message_id":"19a4f615e6230fb12df38eb899e3c95ea9122f3f","unresolved":false,"context_lines":[{"line_number":785,"context_line":""},{"line_number":786,"context_line":"        :returns: list of (pci_id, wwn) tuples"},{"line_number":787,"context_line":""},{"line_number":788,"context_line":"        Given one or more wwn (mac addresses for fiber channel) ports"},{"line_number":789,"context_line":"        do the matrix math to figure out a set of pci device, wwn"},{"line_number":790,"context_line":"        tuples that are potentially valid (they won\u0027t all be). This"},{"line_number":791,"context_line":"        provides a search space for the device connection."}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_15cf6180","line":788,"in_reply_to":"9a80dd14_03910f99","updated":"2015-03-06 13:47:18.000000000","message":"Done","commit_id":"f346a703d355c4d2f7fc76728ea637cb15960650"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"438ee5985dbf4a31aa58f12fb768ebb39ca65f2d","unresolved":false,"context_lines":[{"line_number":791,"context_line":"        provides a search space for the device connection."},{"line_number":792,"context_line":""},{"line_number":793,"context_line":"        \"\"\""},{"line_number":794,"context_line":"        # the wwn (think mac addresses for fiber channel devices) can"},{"line_number":795,"context_line":"        # either be a single value or a list. Normalize it to a list"},{"line_number":796,"context_line":"        # for further operations."},{"line_number":797,"context_line":"        wwns \u003d []"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_23e37334","line":794,"updated":"2015-03-05 17:29:12.000000000","message":"fiber -\u003e fibre","commit_id":"f346a703d355c4d2f7fc76728ea637cb15960650"},{"author":{"_account_id":11433,"name":"Stefan Amann","email":"stefan.amann@de.ibm.com","username":"StefanAmann"},"change_message_id":"19a4f615e6230fb12df38eb899e3c95ea9122f3f","unresolved":false,"context_lines":[{"line_number":791,"context_line":"        provides a search space for the device connection."},{"line_number":792,"context_line":""},{"line_number":793,"context_line":"        \"\"\""},{"line_number":794,"context_line":"        # the wwn (think mac addresses for fiber channel devices) can"},{"line_number":795,"context_line":"        # either be a single value or a list. Normalize it to a list"},{"line_number":796,"context_line":"        # for further operations."},{"line_number":797,"context_line":"        wwns \u003d []"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_55c9d976","line":794,"in_reply_to":"9a80dd14_23e37334","updated":"2015-03-06 13:47:18.000000000","message":"Done","commit_id":"f346a703d355c4d2f7fc76728ea637cb15960650"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"438ee5985dbf4a31aa58f12fb768ebb39ca65f2d","unresolved":false,"context_lines":[{"line_number":875,"context_line":"                                                         execute\u003dexecute,"},{"line_number":876,"context_line":"                                                         device_scan_attempts\u003d"},{"line_number":877,"context_line":"                                                         device_scan_attempts,"},{"line_number":878,"context_line":"                                                         *args, **kwargs)"},{"line_number":879,"context_line":"        self.use_multipath \u003d use_multipath"},{"line_number":880,"context_line":""},{"line_number":881,"context_line":"    def _get_host_devices(self, possible_devs, lun):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_e3f4fbd0","line":878,"updated":"2015-03-05 17:29:12.000000000","message":"I would like to see a LOG.debug or maybe a LOG.info message here so we know when we have detected S390X hardware and are using it.","commit_id":"f346a703d355c4d2f7fc76728ea637cb15960650"},{"author":{"_account_id":11433,"name":"Stefan Amann","email":"stefan.amann@de.ibm.com","username":"StefanAmann"},"change_message_id":"19a4f615e6230fb12df38eb899e3c95ea9122f3f","unresolved":false,"context_lines":[{"line_number":875,"context_line":"                                                         execute\u003dexecute,"},{"line_number":876,"context_line":"                                                         device_scan_attempts\u003d"},{"line_number":877,"context_line":"                                                         device_scan_attempts,"},{"line_number":878,"context_line":"                                                         *args, **kwargs)"},{"line_number":879,"context_line":"        self.use_multipath \u003d use_multipath"},{"line_number":880,"context_line":""},{"line_number":881,"context_line":"    def _get_host_devices(self, possible_devs, lun):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_95c8b123","line":878,"in_reply_to":"9a80dd14_e3f4fbd0","updated":"2015-03-06 13:47:18.000000000","message":"factory() already has a LOG.debug message printing the protocol and architecture. But I\u0027ll add a LOG.debug message in addition","commit_id":"f346a703d355c4d2f7fc76728ea637cb15960650"}],"cinder/brick/initiator/linuxfc.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"bb9e673cd0d63fa832e1918f5cb064532ae1e62e","unresolved":false,"context_lines":[{"line_number":155,"context_line":"            self.echo_scsi_command(zfcp_device_command, lun)"},{"line_number":156,"context_line":"        except putils.ProcessExecutionError as exc:"},{"line_number":157,"context_line":"            LOG.warn(_(\"zKVM unit_add call failed exit (%(code)s), stderr (%(stderr)s)\")"},{"line_number":158,"context_line":"                     % {\u0027code\u0027: exc.exit_code, \u0027stderr\u0027: exc.stderr})"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def deconfigure_scsi_device(self, device_number, target_wwn, lun):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a930d6b_cca906e1","line":158,"updated":"2015-01-22 14:29:06.000000000","message":"According to logging guidelines, please, replace % \u003d\u003e ,","commit_id":"4f57b299273db92b68f620464a700d58cc43c930"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"bb9e673cd0d63fa832e1918f5cb064532ae1e62e","unresolved":false,"context_lines":[{"line_number":163,"context_line":"           write the device\u0027s LUN to the port\u0027s unit_remove attribute\"\"\""},{"line_number":164,"context_line":"        out \u003d None"},{"line_number":165,"context_line":"        err \u003d None"},{"line_number":166,"context_line":"        LOG.debug(\"zKVM: target_lun: %s\" % lun)"},{"line_number":167,"context_line":"        zfcp_device_command \u003d (\"/sys/bus/ccw/drivers/zfcp/%s/%s/unit_remove\" %"},{"line_number":168,"context_line":"                                (device_number,"},{"line_number":169,"context_line":"                                 target_wwn))"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a930d6b_0cab0ed7","line":166,"updated":"2015-01-22 14:29:06.000000000","message":"% \u003d\u003e ,","commit_id":"4f57b299273db92b68f620464a700d58cc43c930"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"bb9e673cd0d63fa832e1918f5cb064532ae1e62e","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            self.echo_scsi_command(zfcp_device_command, lun)"},{"line_number":173,"context_line":"        except putils.ProcessExecutionError as exc:"},{"line_number":174,"context_line":"            LOG.warn(_(\"zKVM unit_remove call failed exit (%(code)s), stderr (%(stderr)s)\")"},{"line_number":175,"context_line":"                     % {\u0027code\u0027: exc.exit_code, \u0027stderr\u0027: exc.stderr})"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a930d6b_6c83b256","line":175,"updated":"2015-01-22 14:29:06.000000000","message":"% \u003d\u003e ,","commit_id":"4f57b299273db92b68f620464a700d58cc43c930"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"27e1a968f9c87bae9b70bfa0de1f0fc49f0bfc25","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        hbas_info \u003d []"},{"line_number":98,"context_line":"        for hba in hbas:"},{"line_number":99,"context_line":"            if (platform.machine() !\u003d \u0027s390x\u0027) or ("},{"line_number":100,"context_line":"                    hba[\u0027port_state\u0027] \u003d\u003d \u0027Online\u0027):"},{"line_number":101,"context_line":"                wwpn \u003d hba[\u0027port_name\u0027].replace(\u00270x\u0027, \u0027\u0027)"},{"line_number":102,"context_line":"                wwnn \u003d hba[\u0027node_name\u0027].replace(\u00270x\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a930d6b_0056065c","line":99,"updated":"2015-01-26 17:10:27.000000000","message":"Please use a constant for \u0027s390x\u0027.","commit_id":"9fac12712cb6dc5fc9bcda644aa8ea8dbda78f92"},{"author":{"_account_id":11433,"name":"Stefan Amann","email":"stefan.amann@de.ibm.com","username":"StefanAmann"},"change_message_id":"594e40dde5fa047b8c24aea2ebafd8e18862f0d3","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        hbas_info \u003d []"},{"line_number":98,"context_line":"        for hba in hbas:"},{"line_number":99,"context_line":"            if (platform.machine() !\u003d \u0027s390x\u0027) or ("},{"line_number":100,"context_line":"                    hba[\u0027port_state\u0027] \u003d\u003d \u0027Online\u0027):"},{"line_number":101,"context_line":"                wwpn \u003d hba[\u0027port_name\u0027].replace(\u00270x\u0027, \u0027\u0027)"},{"line_number":102,"context_line":"                wwnn \u003d hba[\u0027node_name\u0027].replace(\u00270x\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a930d6b_075a7782","line":99,"in_reply_to":"1a930d6b_0056065c","updated":"2015-02-20 11:51:51.000000000","message":"Do you have any suggestions where to put the constant?\nNova has a file named arch.py. I was not able to find any similar file in Cinder.","commit_id":"9fac12712cb6dc5fc9bcda644aa8ea8dbda78f92"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"27e1a968f9c87bae9b70bfa0de1f0fc49f0bfc25","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def configure_scsi_device(self, device_number, target_wwn, lun):"},{"line_number":146,"context_line":"        \"\"\"Write the LUN to the port\u0027s unit_add attribute.\"\"\""},{"line_number":147,"context_line":"        LOG.debug(\"target_lun: %s\" % lun)"},{"line_number":148,"context_line":"        zfcp_device_command \u003d (\"/sys/bus/ccw/drivers/zfcp/%s/%s/unit_add\" %"},{"line_number":149,"context_line":"                               (device_number, target_wwn))"},{"line_number":150,"context_line":"        LOG.debug(\"unit_add call execute ... %s \", zfcp_device_command)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a930d6b_e029fa37","line":147,"updated":"2015-01-26 17:10:27.000000000","message":"Use \",\" instead of \"%\".","commit_id":"9fac12712cb6dc5fc9bcda644aa8ea8dbda78f92"},{"author":{"_account_id":11433,"name":"Stefan Amann","email":"stefan.amann@de.ibm.com","username":"StefanAmann"},"change_message_id":"594e40dde5fa047b8c24aea2ebafd8e18862f0d3","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def configure_scsi_device(self, device_number, target_wwn, lun):"},{"line_number":146,"context_line":"        \"\"\"Write the LUN to the port\u0027s unit_add attribute.\"\"\""},{"line_number":147,"context_line":"        LOG.debug(\"target_lun: %s\" % lun)"},{"line_number":148,"context_line":"        zfcp_device_command \u003d (\"/sys/bus/ccw/drivers/zfcp/%s/%s/unit_add\" %"},{"line_number":149,"context_line":"                               (device_number, target_wwn))"},{"line_number":150,"context_line":"        LOG.debug(\"unit_add call execute ... %s \", zfcp_device_command)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a930d6b_a748c3b3","line":147,"in_reply_to":"1a930d6b_e029fa37","updated":"2015-02-20 11:51:51.000000000","message":"Done","commit_id":"9fac12712cb6dc5fc9bcda644aa8ea8dbda78f92"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"27e1a968f9c87bae9b70bfa0de1f0fc49f0bfc25","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        except putils.ProcessExecutionError as exc:"},{"line_number":154,"context_line":"            msg \u003d _(\"unit_add call failed exit (%(code)s), \""},{"line_number":155,"context_line":"                    \"stderr (%(stderr)s)\")"},{"line_number":156,"context_line":"            LOG.warn(msg, {\u0027code\u0027: exc.exit_code, \u0027stderr\u0027: exc.stderr})"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    def deconfigure_scsi_device(self, device_number, target_wwn, lun):"},{"line_number":159,"context_line":"        \"\"\"Write the LUN to the port\u0027s unit_remove attribute.\"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"1a930d6b_80911649","line":156,"updated":"2015-01-26 17:10:27.000000000","message":"Use _LW for warning message.","commit_id":"9fac12712cb6dc5fc9bcda644aa8ea8dbda78f92"},{"author":{"_account_id":11433,"name":"Stefan Amann","email":"stefan.amann@de.ibm.com","username":"StefanAmann"},"change_message_id":"594e40dde5fa047b8c24aea2ebafd8e18862f0d3","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        except putils.ProcessExecutionError as exc:"},{"line_number":154,"context_line":"            msg \u003d _(\"unit_add call failed exit (%(code)s), \""},{"line_number":155,"context_line":"                    \"stderr (%(stderr)s)\")"},{"line_number":156,"context_line":"            LOG.warn(msg, {\u0027code\u0027: exc.exit_code, \u0027stderr\u0027: exc.stderr})"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    def deconfigure_scsi_device(self, device_number, target_wwn, lun):"},{"line_number":159,"context_line":"        \"\"\"Write the LUN to the port\u0027s unit_remove attribute.\"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"1a930d6b_e7cd6b32","line":156,"in_reply_to":"1a930d6b_80911649","updated":"2015-02-20 11:51:51.000000000","message":"Done","commit_id":"9fac12712cb6dc5fc9bcda644aa8ea8dbda78f92"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"27e1a968f9c87bae9b70bfa0de1f0fc49f0bfc25","unresolved":false,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    def deconfigure_scsi_device(self, device_number, target_wwn, lun):"},{"line_number":159,"context_line":"        \"\"\"Write the LUN to the port\u0027s unit_remove attribute.\"\"\""},{"line_number":160,"context_line":"        LOG.debug(\"target_lun: %s\" % lun)"},{"line_number":161,"context_line":"        zfcp_device_command \u003d (\"/sys/bus/ccw/drivers/zfcp/%s/%s/unit_remove\" %"},{"line_number":162,"context_line":"                               (device_number, target_wwn))"},{"line_number":163,"context_line":"        LOG.debug(\"unit_remove call execute ... %s \", zfcp_device_command)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a930d6b_60ec2af4","line":160,"updated":"2015-01-26 17:10:27.000000000","message":"Use \",\" instead of \"%\".","commit_id":"9fac12712cb6dc5fc9bcda644aa8ea8dbda78f92"},{"author":{"_account_id":11433,"name":"Stefan Amann","email":"stefan.amann@de.ibm.com","username":"StefanAmann"},"change_message_id":"594e40dde5fa047b8c24aea2ebafd8e18862f0d3","unresolved":false,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    def deconfigure_scsi_device(self, device_number, target_wwn, lun):"},{"line_number":159,"context_line":"        \"\"\"Write the LUN to the port\u0027s unit_remove attribute.\"\"\""},{"line_number":160,"context_line":"        LOG.debug(\"target_lun: %s\" % lun)"},{"line_number":161,"context_line":"        zfcp_device_command \u003d (\"/sys/bus/ccw/drivers/zfcp/%s/%s/unit_remove\" %"},{"line_number":162,"context_line":"                               (device_number, target_wwn))"},{"line_number":163,"context_line":"        LOG.debug(\"unit_remove call execute ... %s \", zfcp_device_command)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a930d6b_27d4d3bb","line":160,"in_reply_to":"1a930d6b_60ec2af4","updated":"2015-02-20 11:51:51.000000000","message":"Done","commit_id":"9fac12712cb6dc5fc9bcda644aa8ea8dbda78f92"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"27e1a968f9c87bae9b70bfa0de1f0fc49f0bfc25","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        except putils.ProcessExecutionError as exc:"},{"line_number":167,"context_line":"            msg \u003d _(\"unit_add call failed exit (%(code)s), \""},{"line_number":168,"context_line":"                    \"stderr (%(stderr)s)\")"},{"line_number":169,"context_line":"            LOG.warn(msg, {\u0027code\u0027: exc.exit_code, \u0027stderr\u0027: exc.stderr})"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a930d6b_e09c9a5f","line":169,"updated":"2015-01-26 17:10:27.000000000","message":"Use _LW for warning message.","commit_id":"9fac12712cb6dc5fc9bcda644aa8ea8dbda78f92"},{"author":{"_account_id":11433,"name":"Stefan Amann","email":"stefan.amann@de.ibm.com","username":"StefanAmann"},"change_message_id":"594e40dde5fa047b8c24aea2ebafd8e18862f0d3","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        except putils.ProcessExecutionError as exc:"},{"line_number":167,"context_line":"            msg \u003d _(\"unit_add call failed exit (%(code)s), \""},{"line_number":168,"context_line":"                    \"stderr (%(stderr)s)\")"},{"line_number":169,"context_line":"            LOG.warn(msg, {\u0027code\u0027: exc.exit_code, \u0027stderr\u0027: exc.stderr})"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a930d6b_c7f14f6c","line":169,"in_reply_to":"1a930d6b_e09c9a5f","updated":"2015-02-20 11:51:51.000000000","message":"Done","commit_id":"9fac12712cb6dc5fc9bcda644aa8ea8dbda78f92"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"1714366c529d632c6e80ca7ab3b1ec14e8797f9b","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def configure_scsi_device(self, device_number, target_wwn, lun):"},{"line_number":146,"context_line":"        \"\"\"Write the LUN to the port\u0027s unit_add attribute.\"\"\""},{"line_number":147,"context_line":"        LOG.debug(\"target_lun: %s\" % lun)"},{"line_number":148,"context_line":"        zfcp_device_command \u003d (\"/sys/bus/ccw/drivers/zfcp/%s/%s/unit_add\" %"},{"line_number":149,"context_line":"                               (device_number, target_wwn))"},{"line_number":150,"context_line":"        LOG.debug(\"unit_add call execute ... %s \", zfcp_device_command)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_8eda0415","line":147,"updated":"2015-01-27 11:49:08.000000000","message":"Change % to ,","commit_id":"9a9b458b632d21ce6c41d6be3dc362ca0e3b12d2"},{"author":{"_account_id":11433,"name":"Stefan Amann","email":"stefan.amann@de.ibm.com","username":"StefanAmann"},"change_message_id":"2bc0537381e7a329373c37574071c17913c09a72","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def configure_scsi_device(self, device_number, target_wwn, lun):"},{"line_number":146,"context_line":"        \"\"\"Write the LUN to the port\u0027s unit_add attribute.\"\"\""},{"line_number":147,"context_line":"        LOG.debug(\"target_lun: %s\" % lun)"},{"line_number":148,"context_line":"        zfcp_device_command \u003d (\"/sys/bus/ccw/drivers/zfcp/%s/%s/unit_add\" %"},{"line_number":149,"context_line":"                               (device_number, target_wwn))"},{"line_number":150,"context_line":"        LOG.debug(\"unit_add call execute ... %s \", zfcp_device_command)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_8233b5f4","line":147,"in_reply_to":"1a930d6b_8eda0415","updated":"2015-01-27 13:40:33.000000000","message":"Done","commit_id":"9a9b458b632d21ce6c41d6be3dc362ca0e3b12d2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"1714366c529d632c6e80ca7ab3b1ec14e8797f9b","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        try:"},{"line_number":152,"context_line":"            self.echo_scsi_command(zfcp_device_command, lun)"},{"line_number":153,"context_line":"        except putils.ProcessExecutionError as exc:"},{"line_number":154,"context_line":"            msg \u003d _(\"unit_add call failed exit (%(code)s), \""},{"line_number":155,"context_line":"                    \"stderr (%(stderr)s)\")"},{"line_number":156,"context_line":"            LOG.warn(msg, {\u0027code\u0027: exc.exit_code, \u0027stderr\u0027: exc.stderr})"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_ee9b8815","line":154,"updated":"2015-01-27 11:49:08.000000000","message":"This should be _LW().","commit_id":"9a9b458b632d21ce6c41d6be3dc362ca0e3b12d2"},{"author":{"_account_id":11433,"name":"Stefan Amann","email":"stefan.amann@de.ibm.com","username":"StefanAmann"},"change_message_id":"2bc0537381e7a329373c37574071c17913c09a72","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        try:"},{"line_number":152,"context_line":"            self.echo_scsi_command(zfcp_device_command, lun)"},{"line_number":153,"context_line":"        except putils.ProcessExecutionError as exc:"},{"line_number":154,"context_line":"            msg \u003d _(\"unit_add call failed exit (%(code)s), \""},{"line_number":155,"context_line":"                    \"stderr (%(stderr)s)\")"},{"line_number":156,"context_line":"            LOG.warn(msg, {\u0027code\u0027: exc.exit_code, \u0027stderr\u0027: exc.stderr})"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_a22ef189","line":154,"in_reply_to":"1a930d6b_ee9b8815","updated":"2015-01-27 13:40:33.000000000","message":"Done","commit_id":"9a9b458b632d21ce6c41d6be3dc362ca0e3b12d2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"1714366c529d632c6e80ca7ab3b1ec14e8797f9b","unresolved":false,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    def deconfigure_scsi_device(self, device_number, target_wwn, lun):"},{"line_number":159,"context_line":"        \"\"\"Write the LUN to the port\u0027s unit_remove attribute.\"\"\""},{"line_number":160,"context_line":"        LOG.debug(\"target_lun: %s\" % lun)"},{"line_number":161,"context_line":"        zfcp_device_command \u003d (\"/sys/bus/ccw/drivers/zfcp/%s/%s/unit_remove\" %"},{"line_number":162,"context_line":"                               (device_number, target_wwn))"},{"line_number":163,"context_line":"        LOG.debug(\"unit_remove call execute ... %s \", zfcp_device_command)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_8e9204f4","line":160,"updated":"2015-01-27 11:49:08.000000000","message":"% \u003d\u003e ,","commit_id":"9a9b458b632d21ce6c41d6be3dc362ca0e3b12d2"},{"author":{"_account_id":11433,"name":"Stefan Amann","email":"stefan.amann@de.ibm.com","username":"StefanAmann"},"change_message_id":"2bc0537381e7a329373c37574071c17913c09a72","unresolved":false,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    def deconfigure_scsi_device(self, device_number, target_wwn, lun):"},{"line_number":159,"context_line":"        \"\"\"Write the LUN to the port\u0027s unit_remove attribute.\"\"\""},{"line_number":160,"context_line":"        LOG.debug(\"target_lun: %s\" % lun)"},{"line_number":161,"context_line":"        zfcp_device_command \u003d (\"/sys/bus/ccw/drivers/zfcp/%s/%s/unit_remove\" %"},{"line_number":162,"context_line":"                               (device_number, target_wwn))"},{"line_number":163,"context_line":"        LOG.debug(\"unit_remove call execute ... %s \", zfcp_device_command)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_0257c502","line":160,"in_reply_to":"1a930d6b_8e9204f4","updated":"2015-01-27 13:40:33.000000000","message":"Done","commit_id":"9a9b458b632d21ce6c41d6be3dc362ca0e3b12d2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"1714366c529d632c6e80ca7ab3b1ec14e8797f9b","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        try:"},{"line_number":165,"context_line":"            self.echo_scsi_command(zfcp_device_command, lun)"},{"line_number":166,"context_line":"        except putils.ProcessExecutionError as exc:"},{"line_number":167,"context_line":"            msg \u003d _(\"unit_remove call failed exit (%(code)s), \""},{"line_number":168,"context_line":"                    \"stderr (%(stderr)s)\")"},{"line_number":169,"context_line":"            LOG.warn(msg, {\u0027code\u0027: exc.exit_code, \u0027stderr\u0027: exc.stderr})"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_2eb91079","line":167,"updated":"2015-01-27 11:49:08.000000000","message":"This should be _LW().","commit_id":"9a9b458b632d21ce6c41d6be3dc362ca0e3b12d2"},{"author":{"_account_id":11433,"name":"Stefan Amann","email":"stefan.amann@de.ibm.com","username":"StefanAmann"},"change_message_id":"2bc0537381e7a329373c37574071c17913c09a72","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        try:"},{"line_number":165,"context_line":"            self.echo_scsi_command(zfcp_device_command, lun)"},{"line_number":166,"context_line":"        except putils.ProcessExecutionError as exc:"},{"line_number":167,"context_line":"            msg \u003d _(\"unit_remove call failed exit (%(code)s), \""},{"line_number":168,"context_line":"                    \"stderr (%(stderr)s)\")"},{"line_number":169,"context_line":"            LOG.warn(msg, {\u0027code\u0027: exc.exit_code, \u0027stderr\u0027: exc.stderr})"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_225a012a","line":167,"in_reply_to":"1a930d6b_2eb91079","updated":"2015-01-27 13:40:33.000000000","message":"Done","commit_id":"9a9b458b632d21ce6c41d6be3dc362ca0e3b12d2"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"6da276417791554725abd50650dab8223e35f90c","unresolved":false,"context_lines":[{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    def configure_scsi_device(self, device_number, target_wwn, lun):"},{"line_number":148,"context_line":"        \"\"\"Write the LUN to the port\u0027s unit_add attribute.\"\"\""},{"line_number":149,"context_line":"        LOG.debug(\"target_lun: %(lun)s\", {\u0027lun\u0027: lun})"},{"line_number":150,"context_line":"        zfcp_device_command \u003d (\"/sys/bus/ccw/drivers/zfcp/%s/%s/unit_add\" %"},{"line_number":151,"context_line":"                               (device_number, target_wwn))"},{"line_number":152,"context_line":"        LOG.debug(\"unit_add call execute ... %s \", zfcp_device_command)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_bd64c049","line":149,"updated":"2015-02-03 19:13:56.000000000","message":"As in the other file, these seem like they need to have some context around them for all the debug messages here.  Also think we should have some documentation explaining why this is necessary for zLinux.","commit_id":"be81ddacd0047b8191ce7cce7f4b309bf1592001"},{"author":{"_account_id":11433,"name":"Stefan Amann","email":"stefan.amann@de.ibm.com","username":"StefanAmann"},"change_message_id":"5281d239d1752527f56c0a58376386fd9844c412","unresolved":false,"context_lines":[{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    def configure_scsi_device(self, device_number, target_wwn, lun):"},{"line_number":148,"context_line":"        \"\"\"Write the LUN to the port\u0027s unit_add attribute.\"\"\""},{"line_number":149,"context_line":"        LOG.debug(\"target_lun: %(lun)s\", {\u0027lun\u0027: lun})"},{"line_number":150,"context_line":"        zfcp_device_command \u003d (\"/sys/bus/ccw/drivers/zfcp/%s/%s/unit_add\" %"},{"line_number":151,"context_line":"                               (device_number, target_wwn))"},{"line_number":152,"context_line":"        LOG.debug(\"unit_add call execute ... %s \", zfcp_device_command)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_96efc4e8","line":149,"in_reply_to":"da86d52c_bd64c049","updated":"2015-02-20 11:52:20.000000000","message":"I updated the log message as well as the text above","commit_id":"be81ddacd0047b8191ce7cce7f4b309bf1592001"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"438ee5985dbf4a31aa58f12fb768ebb39ca65f2d","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        try:"},{"line_number":185,"context_line":"            self.echo_scsi_command(zfcp_device_command, lun)"},{"line_number":186,"context_line":"        except putils.ProcessExecutionError as exc:"},{"line_number":187,"context_line":"            msg \u003d _LW(\"unit_add call failed exit (%(code)s), \""},{"line_number":188,"context_line":"                      \"stderr (%(stderr)s)\")"},{"line_number":189,"context_line":"            LOG.warn(msg, {\u0027code\u0027: exc.exit_code, \u0027stderr\u0027: exc.stderr})"},{"line_number":190,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_43894725","line":187,"updated":"2015-03-05 17:29:12.000000000","message":"Think we should indicate that this was for S390X.  Will help with future debug.","commit_id":"f346a703d355c4d2f7fc76728ea637cb15960650"},{"author":{"_account_id":11433,"name":"Stefan Amann","email":"stefan.amann@de.ibm.com","username":"StefanAmann"},"change_message_id":"19a4f615e6230fb12df38eb899e3c95ea9122f3f","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        try:"},{"line_number":185,"context_line":"            self.echo_scsi_command(zfcp_device_command, lun)"},{"line_number":186,"context_line":"        except putils.ProcessExecutionError as exc:"},{"line_number":187,"context_line":"            msg \u003d _LW(\"unit_add call failed exit (%(code)s), \""},{"line_number":188,"context_line":"                      \"stderr (%(stderr)s)\")"},{"line_number":189,"context_line":"            LOG.warn(msg, {\u0027code\u0027: exc.exit_code, \u0027stderr\u0027: exc.stderr})"},{"line_number":190,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_f02adb2a","line":187,"in_reply_to":"9a80dd14_43894725","updated":"2015-03-06 13:47:18.000000000","message":"I changed all 3 debug messages in this function accordingly","commit_id":"f346a703d355c4d2f7fc76728ea637cb15960650"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"438ee5985dbf4a31aa58f12fb768ebb39ca65f2d","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        try:"},{"line_number":207,"context_line":"            self.echo_scsi_command(zfcp_device_command, lun)"},{"line_number":208,"context_line":"        except putils.ProcessExecutionError as exc:"},{"line_number":209,"context_line":"            msg \u003d _LW(\"unit_remove call failed exit (%(code)s), \""},{"line_number":210,"context_line":"                      \"stderr (%(stderr)s)\")"},{"line_number":211,"context_line":"            LOG.warn(msg, {\u0027code\u0027: exc.exit_code, \u0027stderr\u0027: exc.stderr})"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_e3779b39","line":209,"updated":"2015-03-05 17:29:12.000000000","message":"Same here as above.","commit_id":"f346a703d355c4d2f7fc76728ea637cb15960650"},{"author":{"_account_id":11433,"name":"Stefan Amann","email":"stefan.amann@de.ibm.com","username":"StefanAmann"},"change_message_id":"19a4f615e6230fb12df38eb899e3c95ea9122f3f","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        try:"},{"line_number":207,"context_line":"            self.echo_scsi_command(zfcp_device_command, lun)"},{"line_number":208,"context_line":"        except putils.ProcessExecutionError as exc:"},{"line_number":209,"context_line":"            msg \u003d _LW(\"unit_remove call failed exit (%(code)s), \""},{"line_number":210,"context_line":"                      \"stderr (%(stderr)s)\")"},{"line_number":211,"context_line":"            LOG.warn(msg, {\u0027code\u0027: exc.exit_code, \u0027stderr\u0027: exc.stderr})"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_10212f4d","line":209,"in_reply_to":"9a80dd14_e3779b39","updated":"2015-03-06 13:47:18.000000000","message":"Done","commit_id":"f346a703d355c4d2f7fc76728ea637cb15960650"}]}
