)]}'
{"etc/nova/nova.conf.sample":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"c5b77bd4671a38a81006cfa5db3e31fbde063581","unresolved":false,"context_lines":[{"line_number":936,"context_line":"# glance api servers defined by glance_api_servers is down."},{"line_number":937,"context_line":"# Prefix with https:// for ssl-based glance api servers."},{"line_number":938,"context_line":"# ([hostname|ip]:port) (list value)"},{"line_number":939,"context_line":"#glance_api_servers_secondary\u003d"},{"line_number":940,"context_line":""},{"line_number":941,"context_line":"# Allow to perform insecure SSL (https) requests to glance"},{"line_number":942,"context_line":"# (boolean value)"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"AAAAUH%2F%2FIgU%3D","line":939,"updated":"2014-01-17 05:11:32.000000000","message":"if all servers down, split them into 2 parts doesn\u0027t make sense\nthe logic in the code shows it will find server in glance_api_servers first then\nfind in secondary, but it\u0027s identical to put all servers into one list\n\nCould you please help to describe the difference of 2 methods?\nconsider the length of glance server?","commit_id":"45ab1dcf1ac6c886b09d36ae470ab3620d34bb0e"}],"nova/image/glance.py":[{"author":{"_account_id":7884,"name":"Noboru Arai","email":"arai@mxa.nes.nec.co.jp","username":"NoboruArai"},"change_message_id":"45d604943d8cc09487e9e8bc90bece41e52b388f","unresolved":false,"context_lines":[{"line_number":159,"context_line":"    api_servers \u003d _get_server_list(CONF.glance_api_servers)"},{"line_number":160,"context_line":"    api_servers_secondary \u003d _get_server_list(CONF.glance_api_servers_secondary)"},{"line_number":161,"context_line":"    api_servers +\u003d api_servers_secondary"},{"line_number":162,"context_line":"    return itertools.cycle(api_servers)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"def _get_server_list(config):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2FGng%3D","line":162,"updated":"2014-01-17 12:31:02.000000000","message":"@jichenjc\t\n\nRandomly sorted 2 lists are concatenated.","commit_id":"45ab1dcf1ac6c886b09d36ae470ab3620d34bb0e"},{"author":{"_account_id":7884,"name":"Noboru Arai","email":"arai@mxa.nes.nec.co.jp","username":"NoboruArai"},"change_message_id":"45d604943d8cc09487e9e8bc90bece41e52b388f","unresolved":false,"context_lines":[{"line_number":174,"context_line":"            host \u003d host[1:-1]"},{"line_number":175,"context_line":"        use_ssl \u003d (o.scheme \u003d\u003d \u0027https\u0027)"},{"line_number":176,"context_line":"        api_servers.append((host, port, use_ssl))"},{"line_number":177,"context_line":"    random.shuffle(api_servers)"},{"line_number":178,"context_line":"    return api_servers"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2FGns%3D","line":177,"updated":"2014-01-17 12:31:02.000000000","message":"@jichenjc\n\nrandom.shuffle is executed per each list associated with \noption.","commit_id":"45ab1dcf1ac6c886b09d36ae470ab3620d34bb0e"}],"nova/tests/image/test_glance.py":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"5340f1aa7a9bbf3b91c3920d93e214cb1d0232a6","unresolved":false,"context_lines":[{"line_number":1019,"context_line":"                self.assertIn(server[0], glance_host_secondary)"},{"line_number":1020,"context_line":"            else:"},{"line_number":1021,"context_line":"                break"},{"line_number":1022,"context_line":""},{"line_number":1023,"context_line":"    # Python 2.6 can not parse ipv6 address correctly"},{"line_number":1024,"context_line":"    @testtools.skipIf(sys.version_info \u003c (2, 7), \"py27 or greater only\")"},{"line_number":1025,"context_line":"    def test_get_ipv6_api_servers(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2FZJw%3D","line":1022,"updated":"2014-01-14 08:59:05.000000000","message":"Can you add another test for ipv6?","commit_id":"5550d4c14786231b68c93f70dcf026ae15839201"},{"author":{"_account_id":7884,"name":"Noboru Arai","email":"arai@mxa.nes.nec.co.jp","username":"NoboruArai"},"change_message_id":"2277298640ddb12b8a82620d2ca6ee2178329293","unresolved":false,"context_lines":[{"line_number":1019,"context_line":"                self.assertIn(server[0], glance_host_secondary)"},{"line_number":1020,"context_line":"            else:"},{"line_number":1021,"context_line":"                break"},{"line_number":1022,"context_line":""},{"line_number":1023,"context_line":"    # Python 2.6 can not parse ipv6 address correctly"},{"line_number":1024,"context_line":"    @testtools.skipIf(sys.version_info \u003c (2, 7), \"py27 or greater only\")"},{"line_number":1025,"context_line":"    def test_get_ipv6_api_servers(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2FT6U%3D","line":1022,"in_reply_to":"AAAAUH%2F%2FZJw%3D","updated":"2014-01-15 06:47:55.000000000","message":"Done.\n\nIn PS5, I added the test case.","commit_id":"5550d4c14786231b68c93f70dcf026ae15839201"},{"author":{"_account_id":7884,"name":"Noboru Arai","email":"arai@mxa.nes.nec.co.jp","username":"NoboruArai"},"change_message_id":"45d604943d8cc09487e9e8bc90bece41e52b388f","unresolved":false,"context_lines":[{"line_number":1055,"context_line":"        for server in api_servers:"},{"line_number":1056,"context_line":"            i +\u003d 1"},{"line_number":1057,"context_line":"            if i \u003c\u003d 3:"},{"line_number":1058,"context_line":"                self.assertIn(server[0], glance_host)"},{"line_number":1059,"context_line":"            elif i \u003c\u003d 6:"},{"line_number":1060,"context_line":"                self.assertIn(server[0], glance_host_secondary)"},{"line_number":1061,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2FHQs%3D","line":1058,"updated":"2014-01-17 12:31:02.000000000","message":"@jichenjc\n\nthis statement checks if api_server[0], api_server[1] and api_server[2] is one of glance API Server defined by \"glance_api_servers\"","commit_id":"45ab1dcf1ac6c886b09d36ae470ab3620d34bb0e"},{"author":{"_account_id":7884,"name":"Noboru Arai","email":"arai@mxa.nes.nec.co.jp","username":"NoboruArai"},"change_message_id":"45d604943d8cc09487e9e8bc90bece41e52b388f","unresolved":false,"context_lines":[{"line_number":1058,"context_line":"                self.assertIn(server[0], glance_host)"},{"line_number":1059,"context_line":"            elif i \u003c\u003d 6:"},{"line_number":1060,"context_line":"                self.assertIn(server[0], glance_host_secondary)"},{"line_number":1061,"context_line":"            else:"},{"line_number":1062,"context_line":"                break"},{"line_number":1063,"context_line":""},{"line_number":1064,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2FHQg%3D","line":1061,"updated":"2014-01-17 12:31:02.000000000","message":"@jichenjc\n\nthis statement check if api_server[3], api_server[4] and api_server[5] is one of glance API Server defined by \"glance_api_servers_secondary\"","commit_id":"45ab1dcf1ac6c886b09d36ae470ab3620d34bb0e"}]}
