)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"827bd0b017d20e545824a71500b3f4a563e104bc","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Ryan Liang \u003cryan.liang@emc.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-12-28 16:32:19 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add support to set IO ports in option"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add option `unity_io_ports`, which is a list of strings set by users"},{"line_number":10,"context_line":"to specify which FC/iSCSI ports can be used by the driver."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"da4df55a_ed640e23","line":7,"updated":"2016-12-28 14:39:34.000000000","message":"If you do an update, please add \"Unity:\" to the beginning of the summary message or something similar.","commit_id":"82e22c97ad3d9545629ad85c9069ed15a37cf91e"}],"cinder/tests/unit/volume/drivers/dell_emc/unity/test_adapter.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a1e3549ca7b1c5cad7c0bfc6a5446e86500f6198","unresolved":false,"context_lines":[{"line_number":439,"context_line":"        config.unity_storage_pool_names \u003d [\u0027  pool_1  \u0027, \u0027\u0027, \u0027    \u0027]"},{"line_number":440,"context_line":"        config.unity_io_ports \u003d [\u0027  spa_eth2  \u0027, \u0027\u0027, \u0027   \u0027]"},{"line_number":441,"context_line":"        normalized \u003d self.adapter.normalize_config(config)"},{"line_number":442,"context_line":"        self.assertEqual(normalized.unity_storage_pool_names, [\u0027pool_1\u0027])"},{"line_number":443,"context_line":"        self.assertEqual(normalized.unity_io_ports, [\u0027spa_eth2\u0027])"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"    def test_normalize_config_raise(self):"},{"line_number":446,"context_line":"        with self.assertRaisesRegexp(exception.InvalidConfigurationValue,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_53d7d2ec","line":443,"range":{"start_line":442,"start_character":1,"end_line":443,"end_character":65},"updated":"2017-01-11 04:57:43.000000000","message":"These are reversed.  Should be expected, actual.","commit_id":"4510162d96f710093fb72d607b1eb470240c9348"},{"author":{"_account_id":18742,"name":"Ryan Liang","email":"ryan.liang@emc.com","username":"RyanLiang"},"change_message_id":"fa7bfa3dd39c3b3c506d31163f87818b4d9e99d6","unresolved":false,"context_lines":[{"line_number":439,"context_line":"        config.unity_storage_pool_names \u003d [\u0027  pool_1  \u0027, \u0027\u0027, \u0027    \u0027]"},{"line_number":440,"context_line":"        config.unity_io_ports \u003d [\u0027  spa_eth2  \u0027, \u0027\u0027, \u0027   \u0027]"},{"line_number":441,"context_line":"        normalized \u003d self.adapter.normalize_config(config)"},{"line_number":442,"context_line":"        self.assertEqual(normalized.unity_storage_pool_names, [\u0027pool_1\u0027])"},{"line_number":443,"context_line":"        self.assertEqual(normalized.unity_io_ports, [\u0027spa_eth2\u0027])"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"    def test_normalize_config_raise(self):"},{"line_number":446,"context_line":"        with self.assertRaisesRegexp(exception.InvalidConfigurationValue,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_dfd8eb55","line":443,"range":{"start_line":442,"start_character":1,"end_line":443,"end_character":65},"in_reply_to":"ba5201f7_53d7d2ec","updated":"2017-01-12 02:57:02.000000000","message":"Done","commit_id":"4510162d96f710093fb72d607b1eb470240c9348"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a1e3549ca7b1c5cad7c0bfc6a5446e86500f6198","unresolved":false,"context_lines":[{"line_number":525,"context_line":"    def test_validate_ports_whitelist_none(self):"},{"line_number":526,"context_line":"        ports \u003d self.adapter.validate_ports(None)"},{"line_number":527,"context_line":"        self.assertEqual(set(ports),"},{"line_number":528,"context_line":"                         set((\u0027spa_iom_0_fc0\u0027, \u0027spa_iom_0_fc1\u0027)))"},{"line_number":529,"context_line":""},{"line_number":530,"context_line":"    def test_validate_ports(self):"},{"line_number":531,"context_line":"        ports \u003d self.adapter.validate_ports([\u0027spa_iom_0_fc0\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_93077a80","line":528,"updated":"2017-01-11 04:57:43.000000000","message":"Reversed.","commit_id":"4510162d96f710093fb72d607b1eb470240c9348"},{"author":{"_account_id":18742,"name":"Ryan Liang","email":"ryan.liang@emc.com","username":"RyanLiang"},"change_message_id":"fa7bfa3dd39c3b3c506d31163f87818b4d9e99d6","unresolved":false,"context_lines":[{"line_number":525,"context_line":"    def test_validate_ports_whitelist_none(self):"},{"line_number":526,"context_line":"        ports \u003d self.adapter.validate_ports(None)"},{"line_number":527,"context_line":"        self.assertEqual(set(ports),"},{"line_number":528,"context_line":"                         set((\u0027spa_iom_0_fc0\u0027, \u0027spa_iom_0_fc1\u0027)))"},{"line_number":529,"context_line":""},{"line_number":530,"context_line":"    def test_validate_ports(self):"},{"line_number":531,"context_line":"        ports \u003d self.adapter.validate_ports([\u0027spa_iom_0_fc0\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_1fdfd33a","line":528,"in_reply_to":"ba5201f7_93077a80","updated":"2017-01-12 02:57:02.000000000","message":"Done","commit_id":"4510162d96f710093fb72d607b1eb470240c9348"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a1e3549ca7b1c5cad7c0bfc6a5446e86500f6198","unresolved":false,"context_lines":[{"line_number":530,"context_line":"    def test_validate_ports(self):"},{"line_number":531,"context_line":"        ports \u003d self.adapter.validate_ports([\u0027spa_iom_0_fc0\u0027])"},{"line_number":532,"context_line":"        self.assertEqual(set(ports),"},{"line_number":533,"context_line":"                         set((\u0027spa_iom_0_fc0\u0027,)))"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"    def test_validate_ports_asterisk(self):"},{"line_number":536,"context_line":"        ports \u003d self.adapter.validate_ports([\u0027spa*\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_b3fe3e69","line":533,"updated":"2017-01-11 04:57:43.000000000","message":"Same","commit_id":"4510162d96f710093fb72d607b1eb470240c9348"},{"author":{"_account_id":18742,"name":"Ryan Liang","email":"ryan.liang@emc.com","username":"RyanLiang"},"change_message_id":"fa7bfa3dd39c3b3c506d31163f87818b4d9e99d6","unresolved":false,"context_lines":[{"line_number":530,"context_line":"    def test_validate_ports(self):"},{"line_number":531,"context_line":"        ports \u003d self.adapter.validate_ports([\u0027spa_iom_0_fc0\u0027])"},{"line_number":532,"context_line":"        self.assertEqual(set(ports),"},{"line_number":533,"context_line":"                         set((\u0027spa_iom_0_fc0\u0027,)))"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"    def test_validate_ports_asterisk(self):"},{"line_number":536,"context_line":"        ports \u003d self.adapter.validate_ports([\u0027spa*\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_3fe817e2","line":533,"in_reply_to":"ba5201f7_b3fe3e69","updated":"2017-01-12 02:57:02.000000000","message":"Done","commit_id":"4510162d96f710093fb72d607b1eb470240c9348"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a1e3549ca7b1c5cad7c0bfc6a5446e86500f6198","unresolved":false,"context_lines":[{"line_number":535,"context_line":"    def test_validate_ports_asterisk(self):"},{"line_number":536,"context_line":"        ports \u003d self.adapter.validate_ports([\u0027spa*\u0027])"},{"line_number":537,"context_line":"        self.assertEqual(set(ports),"},{"line_number":538,"context_line":"                         set((\u0027spa_iom_0_fc0\u0027, \u0027spa_iom_0_fc1\u0027)))"},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"    def test_validate_ports_question_mark(self):"},{"line_number":541,"context_line":"        ports \u003d self.adapter.validate_ports([\u0027spa_iom_0_fc?\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_13f46a85","line":538,"updated":"2017-01-11 04:57:43.000000000","message":"Same","commit_id":"4510162d96f710093fb72d607b1eb470240c9348"},{"author":{"_account_id":18742,"name":"Ryan Liang","email":"ryan.liang@emc.com","username":"RyanLiang"},"change_message_id":"fa7bfa3dd39c3b3c506d31163f87818b4d9e99d6","unresolved":false,"context_lines":[{"line_number":535,"context_line":"    def test_validate_ports_asterisk(self):"},{"line_number":536,"context_line":"        ports \u003d self.adapter.validate_ports([\u0027spa*\u0027])"},{"line_number":537,"context_line":"        self.assertEqual(set(ports),"},{"line_number":538,"context_line":"                         set((\u0027spa_iom_0_fc0\u0027, \u0027spa_iom_0_fc1\u0027)))"},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"    def test_validate_ports_question_mark(self):"},{"line_number":541,"context_line":"        ports \u003d self.adapter.validate_ports([\u0027spa_iom_0_fc?\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_7fee1fee","line":538,"in_reply_to":"ba5201f7_13f46a85","updated":"2017-01-12 02:57:02.000000000","message":"Done","commit_id":"4510162d96f710093fb72d607b1eb470240c9348"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a1e3549ca7b1c5cad7c0bfc6a5446e86500f6198","unresolved":false,"context_lines":[{"line_number":540,"context_line":"    def test_validate_ports_question_mark(self):"},{"line_number":541,"context_line":"        ports \u003d self.adapter.validate_ports([\u0027spa_iom_0_fc?\u0027])"},{"line_number":542,"context_line":"        self.assertEqual(set(ports),"},{"line_number":543,"context_line":"                         set((\u0027spa_iom_0_fc0\u0027, \u0027spa_iom_0_fc1\u0027)))"},{"line_number":544,"context_line":""},{"line_number":545,"context_line":"    def test_validate_ports_no_matched(self):"},{"line_number":546,"context_line":"        with self.assertRaisesRegexp(exception.InvalidConfigurationValue,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_53eef2b4","line":543,"updated":"2017-01-11 04:57:43.000000000","message":"Same","commit_id":"4510162d96f710093fb72d607b1eb470240c9348"},{"author":{"_account_id":18742,"name":"Ryan Liang","email":"ryan.liang@emc.com","username":"RyanLiang"},"change_message_id":"fa7bfa3dd39c3b3c506d31163f87818b4d9e99d6","unresolved":false,"context_lines":[{"line_number":540,"context_line":"    def test_validate_ports_question_mark(self):"},{"line_number":541,"context_line":"        ports \u003d self.adapter.validate_ports([\u0027spa_iom_0_fc?\u0027])"},{"line_number":542,"context_line":"        self.assertEqual(set(ports),"},{"line_number":543,"context_line":"                         set((\u0027spa_iom_0_fc0\u0027, \u0027spa_iom_0_fc1\u0027)))"},{"line_number":544,"context_line":""},{"line_number":545,"context_line":"    def test_validate_ports_no_matched(self):"},{"line_number":546,"context_line":"        with self.assertRaisesRegexp(exception.InvalidConfigurationValue,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_dfbf0bce","line":543,"in_reply_to":"ba5201f7_53eef2b4","updated":"2017-01-12 02:57:02.000000000","message":"Done","commit_id":"4510162d96f710093fb72d607b1eb470240c9348"}],"cinder/volume/drivers/dell_emc/unity/adapter.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"827bd0b017d20e545824a71500b3f4a563e104bc","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        # Unix style glob like \u0027spa_*\u0027 is supported."},{"line_number":103,"context_line":"        whitelist \u003d set(ports_whitelist)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        matched, _, unmatched_whitelist \u003d utils.match_any(all_ports.id,"},{"line_number":106,"context_line":"                                                          whitelist)"},{"line_number":107,"context_line":"        if not matched:"},{"line_number":108,"context_line":"            LOG.error(_LE(\u0027No matched ports filtered by all patterns: %s\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"da4df55a_ed4b2e85","line":105,"range":{"start_line":105,"start_character":17,"end_line":105,"end_character":18},"updated":"2016-12-28 14:39:34.000000000","message":"This is good practice for unused variables, but unfortunately with the way we do translations, this hides the _() translation function by doing this. Please use a similar way to denote that other than the single _","commit_id":"82e22c97ad3d9545629ad85c9069ed15a37cf91e"},{"author":{"_account_id":18742,"name":"Ryan Liang","email":"ryan.liang@emc.com","username":"RyanLiang"},"change_message_id":"8205da96cc627e37054e8be26daed694961bcad6","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        # Unix style glob like \u0027spa_*\u0027 is supported."},{"line_number":103,"context_line":"        whitelist \u003d set(ports_whitelist)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        matched, _, unmatched_whitelist \u003d utils.match_any(all_ports.id,"},{"line_number":106,"context_line":"                                                          whitelist)"},{"line_number":107,"context_line":"        if not matched:"},{"line_number":108,"context_line":"            LOG.error(_LE(\u0027No matched ports filtered by all patterns: %s\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"da4df55a_cd002169","line":105,"range":{"start_line":105,"start_character":17,"end_line":105,"end_character":18},"in_reply_to":"da4df55a_ed4b2e85","updated":"2016-12-29 01:31:05.000000000","message":"Done","commit_id":"82e22c97ad3d9545629ad85c9069ed15a37cf91e"}]}
