)]}'
{"glance/common/config.py":[{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"3cba3d941585b5eda94bd92833e9953604619a61","unresolved":false,"context_lines":[{"line_number":151,"context_line":"def _get_deployment_flavor(flavor\u003dNone):"},{"line_number":152,"context_line":"    \"\"\""},{"line_number":153,"context_line":"    Retrieve the paste_deploy.flavor config item, formatted appropriately"},{"line_number":154,"context_line":"    for appending to the application name."},{"line_number":155,"context_line":"    \"\"\""},{"line_number":156,"context_line":"    if not flavor:"},{"line_number":157,"context_line":"        flavor \u003d CONF.paste_deploy.flavor"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2FfnQ%3D","line":154,"updated":"2013-05-31 22:01:16.000000000","message":"flavor needs docstring","commit_id":"c4d69d1005962b2df23ff3288ba83717594c6f6b"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"369808e189f85dd4f3aec360342bb45a738a2e61","unresolved":false,"context_lines":[{"line_number":151,"context_line":"def _get_deployment_flavor(flavor\u003dNone):"},{"line_number":152,"context_line":"    \"\"\""},{"line_number":153,"context_line":"    Retrieve the paste_deploy.flavor config item, formatted appropriately"},{"line_number":154,"context_line":"    for appending to the application name."},{"line_number":155,"context_line":"    \"\"\""},{"line_number":156,"context_line":"    if not flavor:"},{"line_number":157,"context_line":"        flavor \u003d CONF.paste_deploy.flavor"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2FxJI%3D","line":154,"in_reply_to":"AAAAPH%2F%2FfnQ%3D","updated":"2013-06-21 18:27:54.000000000","message":"Done","commit_id":"c4d69d1005962b2df23ff3288ba83717594c6f6b"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"3cba3d941585b5eda94bd92833e9953604619a61","unresolved":false,"context_lines":[{"line_number":191,"context_line":"    We assume the last config file specified in the supplied ConfigOpts"},{"line_number":192,"context_line":"    object is the paste config file."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    :param app_name: name of the application to load"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    :raises RuntimeError when config file cannot be located or application"},{"line_number":197,"context_line":"            cannot be loaded from config file"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2FfnA%3D","line":194,"updated":"2013-05-31 22:01:16.000000000","message":"deployment_flavor needs docstring and so does conf_file. \n\nDo you think we could use flavor instead of deployment_flavor here? Why the difference?","commit_id":"c4d69d1005962b2df23ff3288ba83717594c6f6b"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"369808e189f85dd4f3aec360342bb45a738a2e61","unresolved":false,"context_lines":[{"line_number":191,"context_line":"    We assume the last config file specified in the supplied ConfigOpts"},{"line_number":192,"context_line":"    object is the paste config file."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    :param app_name: name of the application to load"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    :raises RuntimeError when config file cannot be located or application"},{"line_number":197,"context_line":"            cannot be loaded from config file"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2FxI0%3D","line":194,"in_reply_to":"AAAAPH%2F%2FfnA%3D","updated":"2013-06-21 18:27:54.000000000","message":"Done","commit_id":"c4d69d1005962b2df23ff3288ba83717594c6f6b"}],"glance/db/sqlalchemy/api.py":[{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"3cba3d941585b5eda94bd92833e9953604619a61","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        sa_logger.setLevel(logging.DEBUG)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"def clear_db_env():"},{"line_number":109,"context_line":"    global _ENGINE, _MAKER, _MAX_RETRIES, _RETRY_INTERVAL, _CONNECTION"},{"line_number":110,"context_line":"    _ENGINE \u003d None"},{"line_number":111,"context_line":"    _MAKER \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2FfoE%3D","line":108,"updated":"2013-05-31 22:01:16.000000000","message":"This adds a new function to the db api, should we add it in simple db as well? \n\nDoes it need a separate patch?","commit_id":"c4d69d1005962b2df23ff3288ba83717594c6f6b"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"369808e189f85dd4f3aec360342bb45a738a2e61","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        sa_logger.setLevel(logging.DEBUG)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"def clear_db_env():"},{"line_number":109,"context_line":"    global _ENGINE, _MAKER, _MAX_RETRIES, _RETRY_INTERVAL, _CONNECTION"},{"line_number":110,"context_line":"    _ENGINE \u003d None"},{"line_number":111,"context_line":"    _MAKER \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2FxGc%3D","line":108,"in_reply_to":"AAAAPH%2F%2FfoE%3D","updated":"2013-06-21 18:27:54.000000000","message":"Done. I can\u0027t find a way or reason to write a test for it, however, since any such test would just have to assert \"no weird side effects persist\" after you call clear_db_env(). Since there is no way to know what weird side effects might occur, there isn\u0027t a clear assertion to make.","commit_id":"c4d69d1005962b2df23ff3288ba83717594c6f6b"}],"glance/tests/functional/lightweight.py":[{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"3cba3d941585b5eda94bd92833e9953604619a61","unresolved":false,"context_lines":[{"line_number":97,"context_line":"pipeline \u003d fakeauth context registryapp"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"[app:registryapp]"},{"line_number":100,"context_line":"paste.app_factory \u003d glance.registry.api.v1:API.factory"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"[filter:context]"},{"line_number":103,"context_line":"paste.filter_factory \u003d glance.api.middleware.context:ContextMiddleware.factory"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2Ffn0%3D","line":100,"updated":"2013-05-31 22:01:16.000000000","message":"since we now have 2 versions, it would be good to be able to change the factory. I think that just setting the version is good enough (v1|v2)","commit_id":"c4d69d1005962b2df23ff3288ba83717594c6f6b"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"369808e189f85dd4f3aec360342bb45a738a2e61","unresolved":false,"context_lines":[{"line_number":97,"context_line":"pipeline \u003d fakeauth context registryapp"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"[app:registryapp]"},{"line_number":100,"context_line":"paste.app_factory \u003d glance.registry.api.v1:API.factory"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"[filter:context]"},{"line_number":103,"context_line":"paste.filter_factory \u003d glance.api.middleware.context:ContextMiddleware.factory"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2FxGM%3D","line":100,"in_reply_to":"AAAAPH%2F%2Ffn0%3D","updated":"2013-06-21 18:27:54.000000000","message":"Since I\u0027m really just copying this config in from the functional testing setup, I\u0027d like to defer making such a change. Does that sound okay?","commit_id":"c4d69d1005962b2df23ff3288ba83717594c6f6b"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"d3aea5316881c95b30f34c425aca4bb1585b5380","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                \u0027eventlet.wsgi.server\u003dDEBUG\u0027"},{"line_number":146,"context_line":"        ])"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def _setup_database(self):"},{"line_number":149,"context_line":"        sql_connection \u003d \u0027sqlite:////%s/tests.sqlite\u0027 % self.test_dir"},{"line_number":150,"context_line":"        self.config(sql_connection\u003dsql_connection)"},{"line_number":151,"context_line":"        glance.db.sqlalchemy.api.clear_db_env()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPX%2F%2Fnqs%3D","line":148,"updated":"2013-06-14 07:29:53.000000000","message":"do we need test mysql backend case? this change always use sqlite database as functional test backend. https://github.com/openstack/glance/blob/master/glance/tests/functional/__init__.py#L605","commit_id":"c4d69d1005962b2df23ff3288ba83717594c6f6b"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"369808e189f85dd4f3aec360342bb45a738a2e61","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                \u0027eventlet.wsgi.server\u003dDEBUG\u0027"},{"line_number":146,"context_line":"        ])"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def _setup_database(self):"},{"line_number":149,"context_line":"        sql_connection \u003d \u0027sqlite:////%s/tests.sqlite\u0027 % self.test_dir"},{"line_number":150,"context_line":"        self.config(sql_connection\u003dsql_connection)"},{"line_number":151,"context_line":"        glance.db.sqlalchemy.api.clear_db_env()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2FxGI%3D","line":148,"in_reply_to":"AAAAPX%2F%2Fnqs%3D","updated":"2013-06-21 18:27:54.000000000","message":"I\u0027m planning to say this in the top level comment, but I think I put this test stuff in wrong level. Rather than a lightweight functional test, I want to be writing a smaller-scoped integration test.\n\nThe current functional tests are really only gating on sqlite as well. I intend to keep that behavior the same, but I don\u0027t see the need to test mysql at the general integration test level. Rather, we should check mysql with \"edge\" tests or rely on \"system\" tests that live outside of glance. Just my opinion, but my goal is to provide fast feedback from tests, and I don\u0027t see how we can do that and put mysql testing in so many places.","commit_id":"c4d69d1005962b2df23ff3288ba83717594c6f6b"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"3cba3d941585b5eda94bd92833e9953604619a61","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            # use the empty db created and cached as a tempfile"},{"line_number":155,"context_line":"            # instead of spending the time creating a new one"},{"line_number":156,"context_line":"            db_location \u003d os.environ[glance_db_env]"},{"line_number":157,"context_line":"            os.system(\u0027cp %s %s/tests.sqlite\u0027"},{"line_number":158,"context_line":"                      % (db_location, self.test_dir))"},{"line_number":159,"context_line":"        else:"},{"line_number":160,"context_line":"            glance.db.sqlalchemy.migration.db_sync()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2Ffns%3D","line":157,"updated":"2013-05-31 22:01:16.000000000","message":"What about using https://github.com/openstack/glance/blob/master/glance/tests/utils.py#L197 ?","commit_id":"c4d69d1005962b2df23ff3288ba83717594c6f6b"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"369808e189f85dd4f3aec360342bb45a738a2e61","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            # use the empty db created and cached as a tempfile"},{"line_number":155,"context_line":"            # instead of spending the time creating a new one"},{"line_number":156,"context_line":"            db_location \u003d os.environ[glance_db_env]"},{"line_number":157,"context_line":"            os.system(\u0027cp %s %s/tests.sqlite\u0027"},{"line_number":158,"context_line":"                      % (db_location, self.test_dir))"},{"line_number":159,"context_line":"        else:"},{"line_number":160,"context_line":"            glance.db.sqlalchemy.migration.db_sync()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2FxDI%3D","line":157,"in_reply_to":"AAAAPH%2F%2Ffns%3D","updated":"2013-06-21 18:27:54.000000000","message":"Makes sense. But it looks like in addition to that I should really DRY up this sqlite db setup code and the code in https://github.com/openstack/glance/blob/master/glance/tests/functional/__init__.py#L211","commit_id":"c4d69d1005962b2df23ff3288ba83717594c6f6b"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"3cba3d941585b5eda94bd92833e9953604619a61","unresolved":false,"context_lines":[{"line_number":163,"context_line":"            # can be reused for future tests"},{"line_number":164,"context_line":"            (osf, db_location) \u003d tempfile.mkstemp()"},{"line_number":165,"context_line":"            os.close(osf)"},{"line_number":166,"context_line":"            os.system(\u0027cp %s/tests.sqlite %s\u0027"},{"line_number":167,"context_line":"                      % (self.test_dir, db_location))"},{"line_number":168,"context_line":"            os.environ[glance_db_env] \u003d db_location"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2Ffno%3D","line":166,"updated":"2013-05-31 22:01:16.000000000","message":"ditto","commit_id":"c4d69d1005962b2df23ff3288ba83717594c6f6b"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"369808e189f85dd4f3aec360342bb45a738a2e61","unresolved":false,"context_lines":[{"line_number":163,"context_line":"            # can be reused for future tests"},{"line_number":164,"context_line":"            (osf, db_location) \u003d tempfile.mkstemp()"},{"line_number":165,"context_line":"            os.close(osf)"},{"line_number":166,"context_line":"            os.system(\u0027cp %s/tests.sqlite %s\u0027"},{"line_number":167,"context_line":"                      % (self.test_dir, db_location))"},{"line_number":168,"context_line":"            os.environ[glance_db_env] \u003d db_location"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2FxDE%3D","line":166,"in_reply_to":"AAAAPH%2F%2Ffno%3D","updated":"2013-06-21 18:27:54.000000000","message":"Same response as well :-) Working on it. . .","commit_id":"c4d69d1005962b2df23ff3288ba83717594c6f6b"}],"glance/tests/utils.py":[{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"44cb1566baa602d66a870c68eae6280fe9b664db","unresolved":false,"context_lines":[{"line_number":418,"context_line":""},{"line_number":419,"context_line":"    def read(self, amt):"},{"line_number":420,"context_line":"        self.data.read(amt)"},{"line_number":421,"context_line":""},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"class Httplib2WsgiAdapter(object):"},{"line_number":424,"context_line":"    def __init__(self, app):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2Fs3k%3D","line":421,"updated":"2013-05-25 05:04:28.000000000","message":"A lot of the code below might actually be duplicating code elsewhere in glance.","commit_id":"c4d69d1005962b2df23ff3288ba83717594c6f6b"}]}
