)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f9250e9529debd5130a643e3a62f9a5bd4243d06","unresolved":false,"context_lines":[{"line_number":17,"context_line":"and limits the gabbi tests to only caring about the placement database"},{"line_number":18,"context_line":"connection, which is more correct and how it should have been all"},{"line_number":19,"context_line":"along."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: Ice89e9a25f74caaa53b7df079bd529d172354524"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5f7c97a3_63a2f3fd","line":20,"updated":"2018-07-25 22:17:56.000000000","message":"blueprint: placement-extract","commit_id":"9358e903958ef9b71346235339cb4b7b08e3e19c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bd3e15975455283809504ec3c73e63c6ac9a3de4","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"This means, for example, that if a placement fixture, which"},{"line_number":35,"context_line":"originally was not configuring a \u0027connection\u0027 string for the api"},{"line_number":36,"context_line":"or main databases ran before a later api db fixture, the api db"},{"line_number":37,"context_line":"fixture would fail with no connection string available."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"The quick and dirty fix is used here to fix the problem: we set"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f7c97a3_58ba2f0b","line":36,"range":{"start_line":36,"start_character":17,"end_line":36,"end_character":18},"updated":"2018-07-26 16:14:58.000000000","message":",","commit_id":"4318e2fa2a10950814d67acfaae8cda5d2bb6d59"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bd3e15975455283809504ec3c73e63c6ac9a3de4","unresolved":false,"context_lines":[{"line_number":37,"context_line":"fixture would fail with no connection string available."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"The quick and dirty fix is used here to fix the problem: we set"},{"line_number":40,"context_line":"reasonable configuration for all three database in the placement"},{"line_number":41,"context_line":"tests that need the placement database fixture."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"In the future when placement is extracted, these problems go away"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f7c97a3_183277c1","line":40,"range":{"start_line":40,"start_character":39,"end_line":40,"end_character":47},"updated":"2018-07-26 16:14:58.000000000","message":"databases","commit_id":"4318e2fa2a10950814d67acfaae8cda5d2bb6d59"}],"nova/tests/functional/api/openstack/placement/db/test_allocation_candidates.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bd3e15975455283809504ec3c73e63c6ac9a3de4","unresolved":false,"context_lines":[{"line_number":558,"context_line":""},{"line_number":559,"context_line":"        # Do it again, with conf set to randomize. We can\u0027t confirm the"},{"line_number":560,"context_line":"        # random-ness but we can be sure the code path doesn\u0027t explode."},{"line_number":561,"context_line":"        CONF.set_override(\u0027randomize_allocation_candidates\u0027, True, \u0027placement\u0027)"},{"line_number":562,"context_line":""},{"line_number":563,"context_line":"        # Ask for two candidates."},{"line_number":564,"context_line":"        limit \u003d 2"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_d854ffc8","line":561,"range":{"start_line":561,"start_character":68,"end_line":561,"end_character":77},"updated":"2018-07-26 16:14:58.000000000","message":"name kwargs","commit_id":"4318e2fa2a10950814d67acfaae8cda5d2bb6d59"}],"nova/tests/functional/api/openstack/placement/db/test_base.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bd3e15975455283809504ec3c73e63c6ac9a3de4","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def setUp(self):"},{"line_number":66,"context_line":"        super(PlacementDbBaseTestCase, self).setUp()"},{"line_number":67,"context_line":"        # we use context in some places and ctx in other. We should only use"},{"line_number":68,"context_line":"        # context, but let\u0027s paper over that for now."},{"line_number":69,"context_line":"        self.ctx \u003d self.context"},{"line_number":70,"context_line":"        self.user_obj \u003d user_obj.User(self.ctx, external_id\u003d\u0027fake-user\u0027)"},{"line_number":71,"context_line":"        self.user_obj.create()"},{"line_number":72,"context_line":"        self.project_obj \u003d project_obj.Project("}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_58fd4fb0","line":69,"range":{"start_line":67,"start_character":0,"end_line":69,"end_character":31},"updated":"2018-07-26 16:14:58.000000000","message":"whyncha do this in base.TestCase instead of multiple subclasses?","commit_id":"4318e2fa2a10950814d67acfaae8cda5d2bb6d59"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"13d0e6d55a0afed2735c2d462dffa3e335020a4f","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def setUp(self):"},{"line_number":66,"context_line":"        super(PlacementDbBaseTestCase, self).setUp()"},{"line_number":67,"context_line":"        # we use context in some places and ctx in other. We should only use"},{"line_number":68,"context_line":"        # context, but let\u0027s paper over that for now."},{"line_number":69,"context_line":"        self.ctx \u003d self.context"},{"line_number":70,"context_line":"        self.user_obj \u003d user_obj.User(self.ctx, external_id\u003d\u0027fake-user\u0027)"},{"line_number":71,"context_line":"        self.user_obj.create()"},{"line_number":72,"context_line":"        self.project_obj \u003d project_obj.Project("}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_3804137d","line":69,"range":{"start_line":67,"start_character":0,"end_line":69,"end_character":31},"in_reply_to":"5f7c97a3_58fd4fb0","updated":"2018-07-26 16:26:57.000000000","message":"Because I want it to stick out like a sore thumb that self.ctx is wrong and should be fixed. Thus the \"for now\".","commit_id":"4318e2fa2a10950814d67acfaae8cda5d2bb6d59"}],"nova/tests/functional/api/openstack/placement/db/test_resource_class_cache.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bd3e15975455283809504ec3c73e63c6ac9a3de4","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def setUp(self):"},{"line_number":27,"context_line":"        super(TestResourceClassCache, self).setUp()"},{"line_number":28,"context_line":"        db \u003d self.placement_db"},{"line_number":29,"context_line":"        self.context \u003d mock.Mock()"},{"line_number":30,"context_line":"        sess_mock \u003d mock.Mock()"},{"line_number":31,"context_line":"        sess_mock.connection.side_effect \u003d db.get_engine().connect"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_d822bf54","line":28,"range":{"start_line":28,"start_character":8,"end_line":28,"end_character":30},"updated":"2018-07-26 16:14:58.000000000","message":"This doesn\u0027t seem real necessary - just inline it on L31?","commit_id":"4318e2fa2a10950814d67acfaae8cda5d2bb6d59"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"13d0e6d55a0afed2735c2d462dffa3e335020a4f","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def setUp(self):"},{"line_number":27,"context_line":"        super(TestResourceClassCache, self).setUp()"},{"line_number":28,"context_line":"        db \u003d self.placement_db"},{"line_number":29,"context_line":"        self.context \u003d mock.Mock()"},{"line_number":30,"context_line":"        sess_mock \u003d mock.Mock()"},{"line_number":31,"context_line":"        sess_mock.connection.side_effect \u003d db.get_engine().connect"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_783e0b27","line":28,"range":{"start_line":28,"start_character":8,"end_line":28,"end_character":30},"in_reply_to":"5f7c97a3_d822bf54","updated":"2018-07-26 16:26:57.000000000","message":"makes the line too long and I didn\u0027t want to wrap","commit_id":"4318e2fa2a10950814d67acfaae8cda5d2bb6d59"}],"nova/tests/functional/api/openstack/placement/fixtures/gabbits.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bd3e15975455283809504ec3c73e63c6ac9a3de4","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        self.warnings_fixture \u003d fixtures.WarningsFixture()"},{"line_number":57,"context_line":"        self.warnings_fixture.setUp()"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        self.conf_fixture \u003d config_fixture.Config(CONF)"},{"line_number":60,"context_line":"        self.conf_fixture.setUp()"},{"line_number":61,"context_line":"        # The Database fixture will get confused if only one of the databases"},{"line_number":62,"context_line":"        # is configured."},{"line_number":63,"context_line":"        for group in (\u0027placement_database\u0027, \u0027api_database\u0027, \u0027database\u0027):"},{"line_number":64,"context_line":"            self.conf_fixture.config("},{"line_number":65,"context_line":"                group\u003dgroup,"},{"line_number":66,"context_line":"                connection\u003d\u0027sqlite://\u0027,"},{"line_number":67,"context_line":"                sqlite_synchronous\u003dFalse)"},{"line_number":68,"context_line":"        self.conf_fixture.config("},{"line_number":69,"context_line":"            group\u003d\u0027api\u0027, auth_strategy\u003d\u0027noauth2\u0027)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        self.context \u003d context.RequestContext()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        # Register CORS opts, but do not set config. This has the"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_78112bf8","line":70,"range":{"start_line":59,"start_character":0,"end_line":70,"end_character":0},"updated":"2018-07-26 16:14:58.000000000","message":"this part can\u0027t be extracted to a mixin class to DRY?","commit_id":"4318e2fa2a10950814d67acfaae8cda5d2bb6d59"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"13d0e6d55a0afed2735c2d462dffa3e335020a4f","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        self.warnings_fixture \u003d fixtures.WarningsFixture()"},{"line_number":57,"context_line":"        self.warnings_fixture.setUp()"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        self.conf_fixture \u003d config_fixture.Config(CONF)"},{"line_number":60,"context_line":"        self.conf_fixture.setUp()"},{"line_number":61,"context_line":"        # The Database fixture will get confused if only one of the databases"},{"line_number":62,"context_line":"        # is configured."},{"line_number":63,"context_line":"        for group in (\u0027placement_database\u0027, \u0027api_database\u0027, \u0027database\u0027):"},{"line_number":64,"context_line":"            self.conf_fixture.config("},{"line_number":65,"context_line":"                group\u003dgroup,"},{"line_number":66,"context_line":"                connection\u003d\u0027sqlite://\u0027,"},{"line_number":67,"context_line":"                sqlite_synchronous\u003dFalse)"},{"line_number":68,"context_line":"        self.conf_fixture.config("},{"line_number":69,"context_line":"            group\u003d\u0027api\u0027, auth_strategy\u003d\u0027noauth2\u0027)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        self.context \u003d context.RequestContext()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        # Register CORS opts, but do not set config. This has the"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_b81d83c0","line":70,"range":{"start_line":59,"start_character":0,"end_line":70,"end_character":0},"in_reply_to":"5f7c97a3_78112bf8","updated":"2018-07-26 16:26:57.000000000","message":"As the commit message says, this is only relevant while we\u0027re within nova and while the issues in the Database fixture remain, so again, I want it to stick out rather noisily as a thing to be cleared out. DRYing it away feels like less of speedbump to me.\n\nBut yeah, could easily be done if that\u0027s what people preferred.","commit_id":"4318e2fa2a10950814d67acfaae8cda5d2bb6d59"}]}
