)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"23ce75c9e4b65c8b6da1d06d6a1b2aeb82d3c6f7","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove deprecated aggregate DB compatibility"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"We dropped support for aggregates in newton, so this compatibility code"},{"line_number":10,"context_line":"should no longer be used or needed."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Related to blueprint placement-req-filter"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3fa0c359_f8722aad","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":43},"updated":"2018-02-19 21:04:53.000000000","message":"Note to self: this means the old \"main db\" aggregates. Aggregates have been living in the api db for awhile now.","commit_id":"3a258ba927e9a190e1d4fe9e6fb654ba43d9fcb8"}],"nova/objects/aggregate.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c87814243022a274c6416eda9845065dd76d06f9","unresolved":false,"context_lines":[{"line_number":328,"context_line":"                                              reason\u003d\u0027already created\u0027)"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        # NOTE(mdoff): Once we have made it past a point where we know"},{"line_number":331,"context_line":"        # all aggregates have been migrated, we can remove this. Ideally"},{"line_number":332,"context_line":"        # in Ocata with a blocker migration to be sure."},{"line_number":333,"context_line":"        if not self._ensure_migrated(self._context):"},{"line_number":334,"context_line":"            raise exception.ObjectActionError("},{"line_number":335,"context_line":"                action\u003d\u0027create\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_bb2fd186","side":"PARENT","line":332,"range":{"start_line":331,"start_character":65,"end_line":332,"end_character":55},"updated":"2018-02-19 00:26:41.000000000","message":"Done here:\n\nhttps://github.com/openstack/nova/blob/master/nova/db/sqlalchemy/migrate_repo/versions/345_require_online_migration_completion.py","commit_id":"fba4161f71e47e4155e7f9a1f0d3a41b8107cef5"}],"nova/tests/functional/db/test_aggregate.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c87814243022a274c6416eda9845065dd76d06f9","unresolved":false,"context_lines":[{"line_number":467,"context_line":"                        comparators\u003d{\u0027updated_at\u0027: updated_at_comparator})"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"class AggregateObjectTestCase(test.TestCase):"},{"line_number":471,"context_line":"    def setUp(self):"},{"line_number":472,"context_line":"        super(AggregateObjectTestCase, self).setUp()"},{"line_number":473,"context_line":"        self.context \u003d context.RequestContext(\u0027fake-user\u0027, \u0027fake-project\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_3b598134","line":470,"range":{"start_line":470,"start_character":6,"end_line":470,"end_character":29},"updated":"2018-02-19 00:26:41.000000000","message":"I\u0027m guessing this test class is mostly redundant with the one above now, yeah? If so, we can cleanup in a follow up.","commit_id":"3a258ba927e9a190e1d4fe9e6fb654ba43d9fcb8"}],"nova/tests/unit/db/test_sqlalchemy_migration.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c87814243022a274c6416eda9845065dd76d06f9","unresolved":false,"context_lines":[{"line_number":240,"context_line":"            \u0027330_enforce_mitaka_online_migrations\u0027)"},{"line_number":241,"context_line":"        self.engine \u003d db_api.get_engine()"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"    def test_aggregate_not_migrated(self):"},{"line_number":244,"context_line":"        agg \u003d db_api.aggregate_create(self.context, {\"name\": \"foobar\"})"},{"line_number":245,"context_line":"        db_api.aggregate_update(self.context, agg.id, {\u0027uuid\u0027: None})"},{"line_number":246,"context_line":"        self.assertRaises(exception.ValidationError,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_5b756d97","side":"PARENT","line":243,"updated":"2018-02-19 00:26:41.000000000","message":"We could still test the code in this migration if we insert the record directly using the sqla API rather than our DB API, like:\n\nhttps://review.openstack.org/#/c/544703/1/nova/tests/unit/db/test_sqlalchemy_migration.py","commit_id":"fba4161f71e47e4155e7f9a1f0d3a41b8107cef5"}]}
