)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"c1ab5b37ebb6b722320fa15630e3691939d968d3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     chenying \u003cying.chen@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-11-02 09:36:14 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix can not adding a new zone with Cisco FC zone driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A new zone can not been added with Cisco FC zone driver when no zone"},{"line_number":10,"context_line":"is created in the Cisco FC switch before. Cisco zone driver should be"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1a26ad4f_3af76c5a","line":7,"updated":"2015-11-02 20:17:09.000000000","message":"I think this title could use some rephrasing since I wasn\u0027t sure what this patch was about until I read the body. \n\nAlso though, the first line should be limited to 50 characters. https://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure","commit_id":"c132ea785e18abb837c307a139cd2c8f5bb34f2e"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"4c46a70ee858ff552820acf1e06e8a75b5b3989b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     chenying \u003cying.chen@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-11-03 20:13:47 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix can\u0027t adding a zone with no zone created before"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A new zone can not been added with Cisco FC zone driver when no zone"},{"line_number":10,"context_line":"is created in the Cisco FC switch before. Cisco zone driver should be"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"fa80f949_7c95a63e","line":7,"updated":"2015-11-03 13:49:20.000000000","message":"Cisco: can\u0027t add new zone when no zone is created before","commit_id":"a1390f623b7010ec4957e4a7cfd72eb15bfc5e5e"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"85d867e50655d7ebdd85436368d04005eeca4fa6","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     chenying \u003cying.chen@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-11-03 20:13:47 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix can\u0027t adding a zone with no zone created before"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A new zone can not been added with Cisco FC zone driver when no zone"},{"line_number":10,"context_line":"is created in the Cisco FC switch before. Cisco zone driver should be"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"fa80f949_55e97719","line":7,"in_reply_to":"fa80f949_7c95a63e","updated":"2015-11-04 03:08:10.000000000","message":"Done","commit_id":"a1390f623b7010ec4957e4a7cfd72eb15bfc5e5e"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"4c46a70ee858ff552820acf1e06e8a75b5b3989b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix can\u0027t adding a zone with no zone created before"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A new zone can not been added with Cisco FC zone driver when no zone"},{"line_number":10,"context_line":"is created in the Cisco FC switch before. Cisco zone driver should be"},{"line_number":11,"context_line":"consistent with Brocade zone driver.This patch fixes this bug."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"fa80f949_dcb852e8","line":9,"updated":"2015-11-03 13:49:20.000000000","message":"Can\u0027t add new zone on Cisco switch when there is no zone exists on it.","commit_id":"a1390f623b7010ec4957e4a7cfd72eb15bfc5e5e"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"85d867e50655d7ebdd85436368d04005eeca4fa6","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix can\u0027t adding a zone with no zone created before"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A new zone can not been added with Cisco FC zone driver when no zone"},{"line_number":10,"context_line":"is created in the Cisco FC switch before. Cisco zone driver should be"},{"line_number":11,"context_line":"consistent with Brocade zone driver.This patch fixes this bug."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"fa80f949_75eefb23","line":9,"in_reply_to":"fa80f949_dcb852e8","updated":"2015-11-04 03:08:10.000000000","message":"Done","commit_id":"a1390f623b7010ec4957e4a7cfd72eb15bfc5e5e"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"4c46a70ee858ff552820acf1e06e8a75b5b3989b","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A new zone can not been added with Cisco FC zone driver when no zone"},{"line_number":10,"context_line":"is created in the Cisco FC switch before. Cisco zone driver should be"},{"line_number":11,"context_line":"consistent with Brocade zone driver.This patch fixes this bug."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Co-Authored-By: Al Lau \u003calau2@cisco.com\u003e"},{"line_number":14,"context_line":"Closes-Bug: #1496270"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"fa80f949_5caa2272","line":11,"updated":"2015-11-03 13:49:20.000000000","message":"\"Cisco zone driver should be consistent with Brocade zone driver.\" This sentence is no need.","commit_id":"a1390f623b7010ec4957e4a7cfd72eb15bfc5e5e"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"85d867e50655d7ebdd85436368d04005eeca4fa6","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A new zone can not been added with Cisco FC zone driver when no zone"},{"line_number":10,"context_line":"is created in the Cisco FC switch before. Cisco zone driver should be"},{"line_number":11,"context_line":"consistent with Brocade zone driver.This patch fixes this bug."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Co-Authored-By: Al Lau \u003calau2@cisco.com\u003e"},{"line_number":14,"context_line":"Closes-Bug: #1496270"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"fa80f949_15f3ef0b","line":11,"in_reply_to":"fa80f949_5caa2272","updated":"2015-11-04 03:08:10.000000000","message":"Done","commit_id":"a1390f623b7010ec4957e4a7cfd72eb15bfc5e5e"}],"cinder/tests/unit/zonemanager/test_cisco_fc_zone_driver.py":[{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"558f1eecb61cfb8be03a9e50f2a123fb83b3ecb1","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        self.driver.delete_connection("},{"line_number":135,"context_line":"            \u0027CISCO_FAB_1\u0027, _initiator_target_map)"},{"line_number":136,"context_line":"        self.assertFalse(_zone_name in GlobalVars._zone_state)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    @mock.patch.object(driver.CiscoFCZoneDriver, \u0027get_zoning_status\u0027)"},{"line_number":139,"context_line":"    @mock.patch.object(driver.CiscoFCZoneDriver, \u0027get_active_zone_set\u0027)"},{"line_number":140,"context_line":"    def test_add_connection(self, get_active_zone_set_mock,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a710552_8117bcec","line":137,"updated":"2015-12-14 23:34:39.000000000","message":"Since this and other test are the same except for get_active_zone_set_mock\u0027s return value, would be a good place to use ddt for","commit_id":"d510a491813a25ba0af3527083e56ee91930b4ce"}],"cinder/zonemanager/drivers/cisco/cisco_fc_zone_driver.py":[{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"432edf9d06f4bf89aae6c7ee7bbe982b2489985d","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                zone_map \u003d {}"},{"line_number":160,"context_line":"                initiator \u003d initiator_key.lower()"},{"line_number":161,"context_line":"                t_list \u003d initiator_target_map[initiator_key]"},{"line_number":162,"context_line":"                if zoning_policy \u003d\u003d \u0027initiator-target\u0027:"},{"line_number":163,"context_line":"                    for t in t_list:"},{"line_number":164,"context_line":"                        target \u003d t.lower()"},{"line_number":165,"context_line":"                        zone_members \u003d ["}],"source_content_type":"text/x-python","patch_set":4,"id":"1a26ad4f_02eb2179","line":162,"updated":"2015-11-03 04:16:56.000000000","message":"Can we consolidate some of the logic that follows here?  I can see a case for a comprehension to fold some of this up.\n\nAlso maybe some of this would be best split out into a helper method?","commit_id":"cd7f40615fb5a38ceff81e1896e5975467bf1b67"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"432edf9d06f4bf89aae6c7ee7bbe982b2489985d","unresolved":false,"context_lines":[{"line_number":165,"context_line":"                        zone_members \u003d ["},{"line_number":166,"context_line":"                            zm_utils.get_formatted_wwn(initiator),"},{"line_number":167,"context_line":"                            zm_utils.get_formatted_wwn(target)]"},{"line_number":168,"context_line":"                        zone_name \u003d (self."},{"line_number":169,"context_line":"                                     configuration.cisco_zone_name_prefix"},{"line_number":170,"context_line":"                                     + initiator.replace(\u0027:\u0027, \u0027\u0027)"},{"line_number":171,"context_line":"                                     + target.replace(\u0027:\u0027, \u0027\u0027))"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a26ad4f_c201a939","line":168,"updated":"2015-11-03 04:16:56.000000000","message":"the formatting above is no good IMO","commit_id":"cd7f40615fb5a38ceff81e1896e5975467bf1b67"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"432edf9d06f4bf89aae6c7ee7bbe982b2489985d","unresolved":false,"context_lines":[{"line_number":168,"context_line":"                        zone_name \u003d (self."},{"line_number":169,"context_line":"                                     configuration.cisco_zone_name_prefix"},{"line_number":170,"context_line":"                                     + initiator.replace(\u0027:\u0027, \u0027\u0027)"},{"line_number":171,"context_line":"                                     + target.replace(\u0027:\u0027, \u0027\u0027))"},{"line_number":172,"context_line":"                        if (len(cfgmap_from_fabric) \u003d\u003d 0 or ("},{"line_number":173,"context_line":"                                zone_name not in zone_names)):"},{"line_number":174,"context_line":"                            zone_map[zone_name] \u003d zone_members"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a26ad4f_22973ded","line":171,"updated":"2015-11-03 04:16:56.000000000","message":"I applaud the efficiency, but sometimes I think it\u0027s better to break these steps out and make it more clear as to what\u0027s being done exactly.  Not a big deal at all, just a note.","commit_id":"cd7f40615fb5a38ceff81e1896e5975467bf1b67"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"432edf9d06f4bf89aae6c7ee7bbe982b2489985d","unresolved":false,"context_lines":[{"line_number":174,"context_line":"                            zone_map[zone_name] \u003d zone_members"},{"line_number":175,"context_line":"                        else:"},{"line_number":176,"context_line":"                            # This is I-T zoning, skip if zone exists."},{"line_number":177,"context_line":"                            LOG.info(_LI(\"Zone exists in I-T mode. \""},{"line_number":178,"context_line":"                                         \"Skipping zone creation %s\"),"},{"line_number":179,"context_line":"                                     zone_name)"},{"line_number":180,"context_line":"                elif zoning_policy \u003d\u003d \u0027initiator\u0027:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a26ad4f_e29ce50f","line":177,"updated":"2015-11-03 04:16:56.000000000","message":"Are these really important enough to log as info as opposed to debug?","commit_id":"cd7f40615fb5a38ceff81e1896e5975467bf1b67"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"432edf9d06f4bf89aae6c7ee7bbe982b2489985d","unresolved":false,"context_lines":[{"line_number":199,"context_line":"                    LOG.error(msg)"},{"line_number":200,"context_line":"                    raise exception.FCZoneDriverException(msg)"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"            LOG.info(_LI(\"Zone map to add: %s\"), zone_map)"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"            if len(zone_map) \u003e 0:"},{"line_number":205,"context_line":"                conn \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a26ad4f_426a79ef","line":202,"updated":"2015-11-03 04:16:56.000000000","message":"I don\u0027t think this is needed as info either.  Also some of the logging/exception messaging should probably just be handled by the calling zone_manager code IMO.","commit_id":"cd7f40615fb5a38ceff81e1896e5975467bf1b67"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"432edf9d06f4bf89aae6c7ee7bbe982b2489985d","unresolved":false,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":"            LOG.info(_LI(\"Zone map to add: %s\"), zone_map)"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"            if len(zone_map) \u003e 0:"},{"line_number":205,"context_line":"                conn \u003d None"},{"line_number":206,"context_line":"                try:"},{"line_number":207,"context_line":"                    conn \u003d importutils.import_object("}],"source_content_type":"text/x-python","patch_set":4,"id":"1a26ad4f_827c11b6","line":204,"updated":"2015-11-03 04:16:56.000000000","message":"so it\u0027s possible that this is an empty list and we log an empty list/None as a string in the above (L#202), that\u0027s probably not a good thing.","commit_id":"cd7f40615fb5a38ceff81e1896e5975467bf1b67"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"709feccc3049d67e2126903170294efeddae1257","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                            zm_utils.get_formatted_wwn(target)]"},{"line_number":168,"context_line":"                        initiator.replace(\u0027:\u0027, \u0027\u0027)"},{"line_number":169,"context_line":"                        target.replace(\u0027:\u0027, \u0027\u0027)"},{"line_number":170,"context_line":"                        zone_name \u003d (self."},{"line_number":171,"context_line":"                                     configuration.cisco_zone_name_prefix"},{"line_number":172,"context_line":"                                     + initiator + target)"},{"line_number":173,"context_line":"                        if (len(cfgmap_from_fabric) \u003d\u003d 0 or ("}],"source_content_type":"text/x-python","patch_set":5,"id":"fa80f949_c065bce1","line":170,"updated":"2015-11-03 15:43:27.000000000","message":"I wouldn\u0027t have thought the line break at \"self.\" would pass pep8 but indeed it seems it does. I\u0027ll leave it up to you because there\u0027s no pep8 violation or hacking rule check it would seem.  But if you fix up the logger hints below and would like to move that all down on the same line that would be great.\n\nSo you could meet the line length limit with just:\nzone_name \u003d (\n    self.configuration.cisco_zone_name_prefix,\n    + initiator_target + target)\n\nThat\u0027s an awfully long config string we\u0027ve ended up with there :)","commit_id":"a1390f623b7010ec4957e4a7cfd72eb15bfc5e5e"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"85d867e50655d7ebdd85436368d04005eeca4fa6","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                            zm_utils.get_formatted_wwn(target)]"},{"line_number":168,"context_line":"                        initiator.replace(\u0027:\u0027, \u0027\u0027)"},{"line_number":169,"context_line":"                        target.replace(\u0027:\u0027, \u0027\u0027)"},{"line_number":170,"context_line":"                        zone_name \u003d (self."},{"line_number":171,"context_line":"                                     configuration.cisco_zone_name_prefix"},{"line_number":172,"context_line":"                                     + initiator + target)"},{"line_number":173,"context_line":"                        if (len(cfgmap_from_fabric) \u003d\u003d 0 or ("}],"source_content_type":"text/x-python","patch_set":5,"id":"fa80f949_68b063f5","line":170,"in_reply_to":"fa80f949_c065bce1","updated":"2015-11-04 03:08:10.000000000","message":"Done","commit_id":"a1390f623b7010ec4957e4a7cfd72eb15bfc5e5e"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"709feccc3049d67e2126903170294efeddae1257","unresolved":false,"context_lines":[{"line_number":175,"context_line":"                            zone_map[zone_name] \u003d zone_members"},{"line_number":176,"context_line":"                        else:"},{"line_number":177,"context_line":"                            # This is I-T zoning, skip if zone exists."},{"line_number":178,"context_line":"                            LOG.debug(_LI(\"Zone exists in I-T mode. \""},{"line_number":179,"context_line":"                                          \"Skipping zone creation %s\"),"},{"line_number":180,"context_line":"                                      zone_name)"},{"line_number":181,"context_line":"                elif zoning_policy \u003d\u003d \u0027initiator\u0027:"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa80f949_fec66615","line":178,"updated":"2015-11-03 15:43:27.000000000","message":"Oops, need to drop the _LI hint here, sorry.","commit_id":"a1390f623b7010ec4957e4a7cfd72eb15bfc5e5e"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"85d867e50655d7ebdd85436368d04005eeca4fa6","unresolved":false,"context_lines":[{"line_number":175,"context_line":"                            zone_map[zone_name] \u003d zone_members"},{"line_number":176,"context_line":"                        else:"},{"line_number":177,"context_line":"                            # This is I-T zoning, skip if zone exists."},{"line_number":178,"context_line":"                            LOG.debug(_LI(\"Zone exists in I-T mode. \""},{"line_number":179,"context_line":"                                          \"Skipping zone creation %s\"),"},{"line_number":180,"context_line":"                                      zone_name)"},{"line_number":181,"context_line":"                elif zoning_policy \u003d\u003d \u0027initiator\u0027:"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa80f949_0896774c","line":178,"in_reply_to":"fa80f949_fec66615","updated":"2015-11-04 03:08:10.000000000","message":"Done","commit_id":"a1390f623b7010ec4957e4a7cfd72eb15bfc5e5e"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"709feccc3049d67e2126903170294efeddae1257","unresolved":false,"context_lines":[{"line_number":201,"context_line":"                    raise exception.FCZoneDriverException(msg)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"            if len(zone_map) \u003e 0:"},{"line_number":204,"context_line":"                LOG.debug(_LI(\"Zone map to add: %s\"), zone_map)"},{"line_number":205,"context_line":"                conn \u003d None"},{"line_number":206,"context_line":"                try:"},{"line_number":207,"context_line":"                    conn \u003d importutils.import_object("}],"source_content_type":"text/x-python","patch_set":5,"id":"fa80f949_3ee5cea7","line":204,"updated":"2015-11-03 15:43:27.000000000","message":"Same note as above regarding the _LI hint","commit_id":"a1390f623b7010ec4957e4a7cfd72eb15bfc5e5e"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"85d867e50655d7ebdd85436368d04005eeca4fa6","unresolved":false,"context_lines":[{"line_number":201,"context_line":"                    raise exception.FCZoneDriverException(msg)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"            if len(zone_map) \u003e 0:"},{"line_number":204,"context_line":"                LOG.debug(_LI(\"Zone map to add: %s\"), zone_map)"},{"line_number":205,"context_line":"                conn \u003d None"},{"line_number":206,"context_line":"                try:"},{"line_number":207,"context_line":"                    conn \u003d importutils.import_object("}],"source_content_type":"text/x-python","patch_set":5,"id":"fa80f949_28933b5d","line":204,"in_reply_to":"fa80f949_3ee5cea7","updated":"2015-11-04 03:08:10.000000000","message":"Done","commit_id":"a1390f623b7010ec4957e4a7cfd72eb15bfc5e5e"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"e5fd41582356e83283a7534461975931f96532ff","unresolved":false,"context_lines":[{"line_number":222,"context_line":"                except Exception:"},{"line_number":223,"context_line":"                    msg \u003d _(\"Failed to add zoning configuration.\")"},{"line_number":224,"context_line":"                    LOG.exception(msg)"},{"line_number":225,"context_line":"                    raise exception.FCZoneDriverException(msg)"},{"line_number":226,"context_line":"                LOG.debug(\"Zones added successfully: %s\", zone_map)"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"    @lockutils.synchronized(\u0027cisco\u0027, \u0027fcfabric-\u0027, True)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa80f949_0874e9cc","line":225,"updated":"2015-11-05 17:12:03.000000000","message":"Not really related to this bug fix, but as a future change we might want to use the save_and_reraise_exception helper instead of raising something new... I imagine it would make figuring out why it failed much easier.","commit_id":"d510a491813a25ba0af3527083e56ee91930b4ce"}]}
