)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"254782c7236af479459e9aad2aa117a956341f38","unresolved":false,"context_lines":[{"line_number":15,"context_line":"test class overrides the old one. To reuse source code of the old class,"},{"line_number":16,"context_line":"test_container_sync.py file is cleaned up."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"!!!CONFIG DEFAULT VALUE IS CHANGED!!!"},{"line_number":19,"context_line":"The default value of \u0027container_sync_timeout\u0027 item is changed from 120 to"},{"line_number":20,"context_line":"600 because the default interval time when container-sync daemon process"},{"line_number":21,"context_line":"runs is 300 sec so tests related to container-sync had a potential to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"1a930d6b_d0c31055","line":18,"updated":"2015-01-24 17:37:55.000000000","message":"Heh, I\u0027m not sure I\u0027ve ever seen this in a commit msg before. I guess it gets the point across well. :)","commit_id":"09d8a7f76f9473769f5e8009f8e6789b0da9536e"}],"etc/tempest.conf.sample":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"a904eedf3215b02b086cfaa703b784ee1d94f867","unresolved":false,"context_lines":[{"line_number":806,"context_line":""},{"line_number":807,"context_line":"# Number of seconds to time on waiting for a container to container"},{"line_number":808,"context_line":"# synchronization complete. (integer value)"},{"line_number":809,"context_line":"#container_sync_timeout \u003d 600"},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"# Number of seconds to wait while looping to check the status of a"},{"line_number":812,"context_line":"# container to container synchronization (integer value)"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"1a930d6b_8dd526bb","line":809,"updated":"2015-01-23 00:37:46.000000000","message":"Why do you make timeout value long here?\nA new test requires it?","commit_id":"5e26ebaa6347b9b6b3ad74f66b41bb587e07767e"},{"author":{"_account_id":8859,"name":"Daisuke Morita","email":"morita.daisuke@ntti3.com","username":"morrisson"},"change_message_id":"66863cf446b6be76c4861ff83607417a6db4ede5","unresolved":false,"context_lines":[{"line_number":806,"context_line":""},{"line_number":807,"context_line":"# Number of seconds to time on waiting for a container to container"},{"line_number":808,"context_line":"# synchronization complete. (integer value)"},{"line_number":809,"context_line":"#container_sync_timeout \u003d 600"},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"# Number of seconds to wait while looping to check the status of a"},{"line_number":812,"context_line":"# container to container synchronization (integer value)"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"1a930d6b_e3aa3b18","line":809,"in_reply_to":"1a930d6b_2806e0ce","updated":"2015-01-23 02:17:09.000000000","message":"Done","commit_id":"5e26ebaa6347b9b6b3ad74f66b41bb587e07767e"},{"author":{"_account_id":8859,"name":"Daisuke Morita","email":"morita.daisuke@ntti3.com","username":"morrisson"},"change_message_id":"c4e701709d84d77003f1066b6530d4536e9aaca4","unresolved":false,"context_lines":[{"line_number":806,"context_line":""},{"line_number":807,"context_line":"# Number of seconds to time on waiting for a container to container"},{"line_number":808,"context_line":"# synchronization complete. (integer value)"},{"line_number":809,"context_line":"#container_sync_timeout \u003d 600"},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"# Number of seconds to wait while looping to check the status of a"},{"line_number":812,"context_line":"# container to container synchronization (integer value)"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"1a930d6b_a8af30e2","line":809,"in_reply_to":"1a930d6b_8dd526bb","updated":"2015-01-23 00:51:49.000000000","message":"The default interval time when container-sync daemon process runs is 300 sec. I set double value here for the purpose of safety. If I do not change this value with the old default, container-sync tests occasionally terminate in failure.","commit_id":"5e26ebaa6347b9b6b3ad74f66b41bb587e07767e"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"10f2303d286ec214e9d81e392611937d336fea21","unresolved":false,"context_lines":[{"line_number":806,"context_line":""},{"line_number":807,"context_line":"# Number of seconds to time on waiting for a container to container"},{"line_number":808,"context_line":"# synchronization complete. (integer value)"},{"line_number":809,"context_line":"#container_sync_timeout \u003d 600"},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"# Number of seconds to wait while looping to check the status of a"},{"line_number":812,"context_line":"# container to container synchronization (integer value)"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"1a930d6b_2806e0ce","line":809,"in_reply_to":"1a930d6b_a8af30e2","updated":"2015-01-23 00:57:25.000000000","message":"Thanks for your explanation, that seems reasonable.\nbut the change of default value is important because some env would continue using old value by using the existing tempest.conf.\n\nSo it is better to describe the above comment in the commit message at least for the hint.","commit_id":"5e26ebaa6347b9b6b3ad74f66b41bb587e07767e"}],"tempest/api/object_storage/test_container_sync.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"a904eedf3215b02b086cfaa703b784ee1d94f867","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        container_sync_timeout \u003d \\"},{"line_number":48,"context_line":"            int(CONF.object_storage.container_sync_timeout)"},{"line_number":49,"context_line":"        cls.container_sync_interval \u003d \\"},{"line_number":50,"context_line":"            int(CONF.object_storage.container_sync_interval)"},{"line_number":51,"context_line":"        cls.attempts \u003d \\"},{"line_number":52,"context_line":"            int(container_sync_timeout / cls.container_sync_interval)"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1a930d6b_4df25e70","side":"PARENT","line":50,"updated":"2015-01-23 00:37:46.000000000","message":"The above change seems unrelated to the purpose of this patch..","commit_id":"0bc91f6ac8b9debf640b21bbf72ca02b0dccb188"},{"author":{"_account_id":8859,"name":"Daisuke Morita","email":"morita.daisuke@ntti3.com","username":"morrisson"},"change_message_id":"c4e701709d84d77003f1066b6530d4536e9aaca4","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        container_sync_timeout \u003d \\"},{"line_number":48,"context_line":"            int(CONF.object_storage.container_sync_timeout)"},{"line_number":49,"context_line":"        cls.container_sync_interval \u003d \\"},{"line_number":50,"context_line":"            int(CONF.object_storage.container_sync_interval)"},{"line_number":51,"context_line":"        cls.attempts \u003d \\"},{"line_number":52,"context_line":"            int(container_sync_timeout / cls.container_sync_interval)"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1a930d6b_68f468f2","side":"PARENT","line":50,"in_reply_to":"1a930d6b_4df25e70","updated":"2015-01-23 00:51:49.000000000","message":"I reflect Jordan Pittier\u0027s comments for Patch 4.","commit_id":"0bc91f6ac8b9debf640b21bbf72ca02b0dccb188"}],"tempest/api/object_storage/test_container_sync_middleware.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"ae5eb699dd3c1b17151ebcd473b928303b977fd7","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        cls.cluster_name \u003d CONF.object_storage.cluster_name"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        container_sync_timeout \u003d \\"},{"line_number":45,"context_line":"            int(CONF.object_storage.container_sync_timeout)"},{"line_number":46,"context_line":"        cls.container_sync_interval \u003d \\"},{"line_number":47,"context_line":"            int(CONF.object_storage.container_sync_interval)"},{"line_number":48,"context_line":"        cls.attempts \u003d \\"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_af577801","line":45,"updated":"2014-12-08 14:59:15.000000000","message":"Are you sure this int() cast are required ?","commit_id":"ee2d1555be5be91bf2f2f4b23100699214344434"},{"author":{"_account_id":8859,"name":"Daisuke Morita","email":"morita.daisuke@ntti3.com","username":"morrisson"},"change_message_id":"dc4c85651944380d1262348582d9a5abde9d9b2d","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        cls.cluster_name \u003d CONF.object_storage.cluster_name"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        container_sync_timeout \u003d \\"},{"line_number":45,"context_line":"            int(CONF.object_storage.container_sync_timeout)"},{"line_number":46,"context_line":"        cls.container_sync_interval \u003d \\"},{"line_number":47,"context_line":"            int(CONF.object_storage.container_sync_interval)"},{"line_number":48,"context_line":"        cls.attempts \u003d \\"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_4463361a","line":45,"in_reply_to":"3a961159_af577801","updated":"2014-12-17 08:49:14.000000000","message":"Done","commit_id":"ee2d1555be5be91bf2f2f4b23100699214344434"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"ae5eb699dd3c1b17151ebcd473b928303b977fd7","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        container_sync_timeout \u003d \\"},{"line_number":45,"context_line":"            int(CONF.object_storage.container_sync_timeout)"},{"line_number":46,"context_line":"        cls.container_sync_interval \u003d \\"},{"line_number":47,"context_line":"            int(CONF.object_storage.container_sync_interval)"},{"line_number":48,"context_line":"        cls.attempts \u003d \\"},{"line_number":49,"context_line":"            int(container_sync_timeout / cls.container_sync_interval)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_ef40a037","line":46,"updated":"2014-12-08 14:59:15.000000000","message":"Same","commit_id":"ee2d1555be5be91bf2f2f4b23100699214344434"},{"author":{"_account_id":8859,"name":"Daisuke Morita","email":"morita.daisuke@ntti3.com","username":"morrisson"},"change_message_id":"dc4c85651944380d1262348582d9a5abde9d9b2d","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        container_sync_timeout \u003d \\"},{"line_number":45,"context_line":"            int(CONF.object_storage.container_sync_timeout)"},{"line_number":46,"context_line":"        cls.container_sync_interval \u003d \\"},{"line_number":47,"context_line":"            int(CONF.object_storage.container_sync_interval)"},{"line_number":48,"context_line":"        cls.attempts \u003d \\"},{"line_number":49,"context_line":"            int(container_sync_timeout / cls.container_sync_interval)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_6466722b","line":46,"in_reply_to":"3a961159_ef40a037","updated":"2014-12-17 08:49:14.000000000","message":"Done","commit_id":"ee2d1555be5be91bf2f2f4b23100699214344434"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"ae5eb699dd3c1b17151ebcd473b928303b977fd7","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"            resp, body \u003d \\"},{"line_number":92,"context_line":"                cont_client[0].put(str(cont[0]), body\u003dNone, headers\u003dheaders)"},{"line_number":93,"context_line":"            self.assertIn(int(resp[\u0027status\u0027]), test.HTTP_SUCCESS)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"            # create object in container"},{"line_number":96,"context_line":"            object_name \u003d data_utils.rand_name(name\u003d\u0027TestSyncObject\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_0fc16c80","line":93,"updated":"2014-12-08 14:59:15.000000000","message":"We don\"t check response code in tests anymore.","commit_id":"ee2d1555be5be91bf2f2f4b23100699214344434"},{"author":{"_account_id":8859,"name":"Daisuke Morita","email":"morita.daisuke@ntti3.com","username":"morrisson"},"change_message_id":"dc4c85651944380d1262348582d9a5abde9d9b2d","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"            resp, body \u003d \\"},{"line_number":92,"context_line":"                cont_client[0].put(str(cont[0]), body\u003dNone, headers\u003dheaders)"},{"line_number":93,"context_line":"            self.assertIn(int(resp[\u0027status\u0027]), test.HTTP_SUCCESS)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"            # create object in container"},{"line_number":96,"context_line":"            object_name \u003d data_utils.rand_name(name\u003d\u0027TestSyncObject\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_a4b3fae7","line":93,"in_reply_to":"3a961159_0fc16c80","updated":"2014-12-17 08:49:14.000000000","message":"Done","commit_id":"ee2d1555be5be91bf2f2f4b23100699214344434"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"ae5eb699dd3c1b17151ebcd473b928303b977fd7","unresolved":false,"context_lines":[{"line_number":96,"context_line":"            object_name \u003d data_utils.rand_name(name\u003d\u0027TestSyncObject\u0027)"},{"line_number":97,"context_line":"            data \u003d object_name[::-1]  # data_utils.arbitrary_string()"},{"line_number":98,"context_line":"            resp, _ \u003d obj_client[0].create_object(cont[0], object_name, data)"},{"line_number":99,"context_line":"            self.assertIn(int(resp[\u0027status\u0027]), test.HTTP_SUCCESS)"},{"line_number":100,"context_line":"            self.objects.append(object_name)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        # wait until container contents list is not empty"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_2fbe2800","line":99,"updated":"2014-12-08 14:59:15.000000000","message":"We don\"t check response code in tests anymore.","commit_id":"ee2d1555be5be91bf2f2f4b23100699214344434"},{"author":{"_account_id":8859,"name":"Daisuke Morita","email":"morita.daisuke@ntti3.com","username":"morrisson"},"change_message_id":"dc4c85651944380d1262348582d9a5abde9d9b2d","unresolved":false,"context_lines":[{"line_number":96,"context_line":"            object_name \u003d data_utils.rand_name(name\u003d\u0027TestSyncObject\u0027)"},{"line_number":97,"context_line":"            data \u003d object_name[::-1]  # data_utils.arbitrary_string()"},{"line_number":98,"context_line":"            resp, _ \u003d obj_client[0].create_object(cont[0], object_name, data)"},{"line_number":99,"context_line":"            self.assertIn(int(resp[\u0027status\u0027]), test.HTTP_SUCCESS)"},{"line_number":100,"context_line":"            self.objects.append(object_name)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        # wait until container contents list is not empty"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_04c4ce3e","line":99,"in_reply_to":"3a961159_2fbe2800","updated":"2014-12-17 08:49:14.000000000","message":"Done","commit_id":"ee2d1555be5be91bf2f2f4b23100699214344434"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"ae5eb699dd3c1b17151ebcd473b928303b977fd7","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        params \u003d {\u0027format\u0027: \u0027json\u0027}"},{"line_number":105,"context_line":"        while self.attempts \u003e 0:"},{"line_number":106,"context_line":"            object_lists \u003d []"},{"line_number":107,"context_line":"            for client_index in (0, 1):"},{"line_number":108,"context_line":"                resp, object_list \u003d \\"},{"line_number":109,"context_line":"                    cont_client[client_index].\\"},{"line_number":110,"context_line":"                    list_container_contents(self.containers[client_index],"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_eff8a0c6","line":107,"updated":"2014-12-08 14:59:15.000000000","message":"This is not pythonic. If you really have to get the index, use enumerate : https://docs.python.org/2/library/functions.html#enumerate","commit_id":"ee2d1555be5be91bf2f2f4b23100699214344434"},{"author":{"_account_id":8859,"name":"Daisuke Morita","email":"morita.daisuke@ntti3.com","username":"morrisson"},"change_message_id":"dc4c85651944380d1262348582d9a5abde9d9b2d","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        params \u003d {\u0027format\u0027: \u0027json\u0027}"},{"line_number":105,"context_line":"        while self.attempts \u003e 0:"},{"line_number":106,"context_line":"            object_lists \u003d []"},{"line_number":107,"context_line":"            for client_index in (0, 1):"},{"line_number":108,"context_line":"                resp, object_list \u003d \\"},{"line_number":109,"context_line":"                    cont_client[client_index].\\"},{"line_number":110,"context_line":"                    list_container_contents(self.containers[client_index],"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_84835ecb","line":107,"in_reply_to":"3a961159_eff8a0c6","updated":"2014-12-17 08:49:14.000000000","message":"Thanks. I used zip() function. Is this pythonic?","commit_id":"ee2d1555be5be91bf2f2f4b23100699214344434"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"ae5eb699dd3c1b17151ebcd473b928303b977fd7","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                    (obj[\u0027name\u0027], obj) for obj in object_list))"},{"line_number":115,"context_line":"            # check that containers are not empty and have equal keys()"},{"line_number":116,"context_line":"            # or wait for next attempt"},{"line_number":117,"context_line":"            if not object_lists[0] or not object_lists[1] or \\"},{"line_number":118,"context_line":"                    set(object_lists[0].keys()) !\u003d set(object_lists[1].keys()):"},{"line_number":119,"context_line":"                time.sleep(self.container_sync_interval)"},{"line_number":120,"context_line":"                self.attempts -\u003d 1"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_6f5e70eb","line":117,"updated":"2014-12-08 14:59:15.000000000","message":"This is really hard to understand and review. And hard to maintain.\n\nYou should reverse the while loop. Instead of \"if not .. OR if not OR .. !\u003d...\" use \"if .. and if ... and if ... \u003d\u003d ..\" then then break the while loop if all conditions are met.","commit_id":"ee2d1555be5be91bf2f2f4b23100699214344434"},{"author":{"_account_id":8859,"name":"Daisuke Morita","email":"morita.daisuke@ntti3.com","username":"morrisson"},"change_message_id":"dc4c85651944380d1262348582d9a5abde9d9b2d","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                    (obj[\u0027name\u0027], obj) for obj in object_list))"},{"line_number":115,"context_line":"            # check that containers are not empty and have equal keys()"},{"line_number":116,"context_line":"            # or wait for next attempt"},{"line_number":117,"context_line":"            if not object_lists[0] or not object_lists[1] or \\"},{"line_number":118,"context_line":"                    set(object_lists[0].keys()) !\u003d set(object_lists[1].keys()):"},{"line_number":119,"context_line":"                time.sleep(self.container_sync_interval)"},{"line_number":120,"context_line":"                self.attempts -\u003d 1"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_04aa0e19","line":117,"in_reply_to":"3a961159_6f5e70eb","updated":"2014-12-17 08:49:14.000000000","message":"Done","commit_id":"ee2d1555be5be91bf2f2f4b23100699214344434"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"3babb65b72e305f4613427740577cf6ab320a551","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                break"},{"line_number":114,"context_line":"            else:"},{"line_number":115,"context_line":"                time.sleep(self.container_sync_interval)"},{"line_number":116,"context_line":"                self.attempts -\u003d 1"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        self.assertEqual(object_lists[0], object_lists[1],"},{"line_number":119,"context_line":"                         \u0027Different object lists in containers.\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_b21a9816","line":116,"updated":"2014-12-25 01:49:12.000000000","message":"The above line(99-116) is almost the same as the part of test_container_synchronization().\nSo how about defining a common method in base.py and use it between them?\nMaybe it is better to create another patch for defining it before this patch for easy implementation/review.","commit_id":"a184958b3ad588de545b370998fdf56340acd7b3"},{"author":{"_account_id":8859,"name":"Daisuke Morita","email":"morita.daisuke@ntti3.com","username":"morrisson"},"change_message_id":"3ba6c7136da526dbe8dcc7ce45eb6208406f3d2d","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                break"},{"line_number":114,"context_line":"            else:"},{"line_number":115,"context_line":"                time.sleep(self.container_sync_interval)"},{"line_number":116,"context_line":"                self.attempts -\u003d 1"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        self.assertEqual(object_lists[0], object_lists[1],"},{"line_number":119,"context_line":"                         \u0027Different object lists in containers.\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_4ae34807","line":116,"in_reply_to":"3a961159_b21a9816","updated":"2015-01-22 06:53:25.000000000","message":"Thanks for your suggestion. I will reuse older code by extending this class (ContainerSyncMiddlewareTest) with ContainerSyncMiddleware. I do not think that it is necessary to separate this into other patches.","commit_id":"a184958b3ad588de545b370998fdf56340acd7b3"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"a904eedf3215b02b086cfaa703b784ee1d94f867","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright(c)2014 NTT corp. All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a930d6b_8da3664e","line":1,"updated":"2015-01-23 00:37:46.000000000","message":"very nit: s/2014/2015/   happy new year :)","commit_id":"5e26ebaa6347b9b6b3ad74f66b41bb587e07767e"},{"author":{"_account_id":8859,"name":"Daisuke Morita","email":"morita.daisuke@ntti3.com","username":"morrisson"},"change_message_id":"c4e701709d84d77003f1066b6530d4536e9aaca4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright(c)2014 NTT corp. All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a930d6b_c8d8fc81","line":1,"in_reply_to":"1a930d6b_8da3664e","updated":"2015-01-23 00:51:49.000000000","message":"OK. I will change it soon.","commit_id":"5e26ebaa6347b9b6b3ad74f66b41bb587e07767e"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"254782c7236af479459e9aad2aa117a956341f38","unresolved":false,"context_lines":[{"line_number":19,"context_line":"CONF \u003d config.CONF"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"# This test can be quite long to run due to its"},{"line_number":23,"context_line":"# dependency on container-sync process running interval."},{"line_number":24,"context_line":"# You can obviously reduce the container-sync interval in the"},{"line_number":25,"context_line":"# container-server configuration."}],"source_content_type":"text/x-python","patch_set":10,"id":"1a930d6b_b0c68466","line":22,"updated":"2015-01-24 17:37:55.000000000","message":"So if this is the case do we really want to run this in gate? We could tag this as slow and run it in check and experimental.","commit_id":"09d8a7f76f9473769f5e8009f8e6789b0da9536e"},{"author":{"_account_id":8859,"name":"Daisuke Morita","email":"morita.daisuke@ntti3.com","username":"morrisson"},"change_message_id":"235c281e85c9dd0aa3acf19263fa254cabcbd73b","unresolved":false,"context_lines":[{"line_number":19,"context_line":"CONF \u003d config.CONF"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"# This test can be quite long to run due to its"},{"line_number":23,"context_line":"# dependency on container-sync process running interval."},{"line_number":24,"context_line":"# You can obviously reduce the container-sync interval in the"},{"line_number":25,"context_line":"# container-server configuration."}],"source_content_type":"text/x-python","patch_set":10,"id":"1a930d6b_4c7b047b","line":22,"in_reply_to":"1a930d6b_b0c68466","updated":"2015-01-26 01:33:14.000000000","message":"That\u0027s a good point. I will change the tag with \u0027slow\u0027.","commit_id":"09d8a7f76f9473769f5e8009f8e6789b0da9536e"}],"tempest/config.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"ae5eb699dd3c1b17151ebcd473b928303b977fd7","unresolved":false,"context_lines":[{"line_number":629,"context_line":"               help\u003d\"User role that has reseller admin\"),"},{"line_number":630,"context_line":"    cfg.StrOpt(\u0027realm_name\u0027,"},{"line_number":631,"context_line":"               default\u003d\u0027realm1\u0027,"},{"line_number":632,"context_line":"               help\u003d\"Set the same realm name as container-sync-realms.conf\"),"},{"line_number":633,"context_line":"    cfg.StrOpt(\u0027cluster_name\u0027,"},{"line_number":634,"context_line":"               default\u003d\u0027name1\u0027,"},{"line_number":635,"context_line":"               help\u003d\"Set the same cluster name as container-sync-realms.conf\"),"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_4f1a946f","line":632,"updated":"2014-12-08 14:59:15.000000000","message":"This help message does\u0027nt describe the flag. You should explain what is this flag about and also (as you did) warn that both values must match.","commit_id":"ee2d1555be5be91bf2f2f4b23100699214344434"},{"author":{"_account_id":8859,"name":"Daisuke Morita","email":"morita.daisuke@ntti3.com","username":"morrisson"},"change_message_id":"dc4c85651944380d1262348582d9a5abde9d9b2d","unresolved":false,"context_lines":[{"line_number":629,"context_line":"               help\u003d\"User role that has reseller admin\"),"},{"line_number":630,"context_line":"    cfg.StrOpt(\u0027realm_name\u0027,"},{"line_number":631,"context_line":"               default\u003d\u0027realm1\u0027,"},{"line_number":632,"context_line":"               help\u003d\"Set the same realm name as container-sync-realms.conf\"),"},{"line_number":633,"context_line":"    cfg.StrOpt(\u0027cluster_name\u0027,"},{"line_number":634,"context_line":"               default\u003d\u0027name1\u0027,"},{"line_number":635,"context_line":"               help\u003d\"Set the same cluster name as container-sync-realms.conf\"),"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_a7cdbcb9","line":632,"in_reply_to":"3a961159_4f1a946f","updated":"2014-12-17 08:49:14.000000000","message":"Done","commit_id":"ee2d1555be5be91bf2f2f4b23100699214344434"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"ae5eb699dd3c1b17151ebcd473b928303b977fd7","unresolved":false,"context_lines":[{"line_number":632,"context_line":"               help\u003d\"Set the same realm name as container-sync-realms.conf\"),"},{"line_number":633,"context_line":"    cfg.StrOpt(\u0027cluster_name\u0027,"},{"line_number":634,"context_line":"               default\u003d\u0027name1\u0027,"},{"line_number":635,"context_line":"               help\u003d\"Set the same cluster name as container-sync-realms.conf\"),"},{"line_number":636,"context_line":"]"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"object_storage_feature_group \u003d cfg.OptGroup("}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_af20589c","line":635,"updated":"2014-12-08 14:59:15.000000000","message":"Same","commit_id":"ee2d1555be5be91bf2f2f4b23100699214344434"},{"author":{"_account_id":8859,"name":"Daisuke Morita","email":"morita.daisuke@ntti3.com","username":"morrisson"},"change_message_id":"dc4c85651944380d1262348582d9a5abde9d9b2d","unresolved":false,"context_lines":[{"line_number":632,"context_line":"               help\u003d\"Set the same realm name as container-sync-realms.conf\"),"},{"line_number":633,"context_line":"    cfg.StrOpt(\u0027cluster_name\u0027,"},{"line_number":634,"context_line":"               default\u003d\u0027name1\u0027,"},{"line_number":635,"context_line":"               help\u003d\"Set the same cluster name as container-sync-realms.conf\"),"},{"line_number":636,"context_line":"]"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"object_storage_feature_group \u003d cfg.OptGroup("}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_c7c3a888","line":635,"in_reply_to":"3a961159_af20589c","updated":"2014-12-17 08:49:14.000000000","message":"Done","commit_id":"ee2d1555be5be91bf2f2f4b23100699214344434"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"3babb65b72e305f4613427740577cf6ab320a551","unresolved":false,"context_lines":[{"line_number":643,"context_line":"               default\u003d\u0027name1\u0027,"},{"line_number":644,"context_line":"               help\u003d\"One name of cluster which is set in the realm whose name \""},{"line_number":645,"context_line":"                    \"is set in \u0027realm_name\u0027 item in this file. Set the \""},{"line_number":646,"context_line":"                    \"same cluster name as Swift\u0027s container-sync-realms.conf\"),"},{"line_number":647,"context_line":"]"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"object_storage_feature_group \u003d cfg.OptGroup("}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_320868d9","line":646,"updated":"2014-12-25 01:49:12.000000000","message":"I cannot find cluster_name in container-sync-realms.conf-sample.\nDoes this mean \"name1\" in the following \"cluster_name1\"?\n\n # [realm1]\n # key \u003d realm1key\n # key2 \u003d realm1key2\n # cluster_name1 \u003d https://host1/v1/\n # cluster_name2 \u003d https://host2/v1/\n\nIf so, this description seems difficult to understand it.","commit_id":"a184958b3ad588de545b370998fdf56340acd7b3"},{"author":{"_account_id":8859,"name":"Daisuke Morita","email":"morita.daisuke@ntti3.com","username":"morrisson"},"change_message_id":"3ba6c7136da526dbe8dcc7ce45eb6208406f3d2d","unresolved":false,"context_lines":[{"line_number":643,"context_line":"               default\u003d\u0027name1\u0027,"},{"line_number":644,"context_line":"               help\u003d\"One name of cluster which is set in the realm whose name \""},{"line_number":645,"context_line":"                    \"is set in \u0027realm_name\u0027 item in this file. Set the \""},{"line_number":646,"context_line":"                    \"same cluster name as Swift\u0027s container-sync-realms.conf\"),"},{"line_number":647,"context_line":"]"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"object_storage_feature_group \u003d cfg.OptGroup("}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_4ab6e8da","line":646,"in_reply_to":"3a961159_320868d9","updated":"2015-01-22 06:53:25.000000000","message":"Cluster name is specified by key value cluster_\u003cname\u003e. \u003cname\u003e part is regarded as a cluster\u0027s name.\n\nThis might be strange to those who are unfamiliar with Swift settings. However, Swift operators can find this feature from the doc (http://docs.openstack.org/developer/swift/overview_container_sync.html#configuring-container-sync) so I think it is OK to remain this description unchanged.","commit_id":"a184958b3ad588de545b370998fdf56340acd7b3"}]}
