)]}'
{"nova/objects/aggregate.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"2e615f2f000f1feafd972203d39a1b99fdfb0ca0","unresolved":false,"context_lines":[{"line_number":323,"context_line":"                                              reason\u003d\u0027already created\u0027)"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"        # NOTE(mdoff): Once we have made it past a point where we know"},{"line_number":326,"context_line":"        # all flavors have been migrated, we can remove this. Ideally"},{"line_number":327,"context_line":"        # in Ocata with a blocker migration to be sure."},{"line_number":328,"context_line":"        if not self._ensure_migrated(self._context):"},{"line_number":329,"context_line":"            raise exception.ObjectActionError("}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_9edde116","line":326,"updated":"2016-05-25 12:32:34.000000000","message":"s/flavors/aggregates/ ?","commit_id":"48ce265645cbd4cb4dd6721f729adc0b6acf4cfd"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c1b79ca00dfc14404178ddf81e5a519cd738ff4d","unresolved":false,"context_lines":[{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    @staticmethod"},{"line_number":342,"context_line":"    def _ensure_migrated(context):"},{"line_number":343,"context_line":"        return _ensure_migrated(context)"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    @base.remotable"},{"line_number":346,"context_line":"    def create(self):"}],"source_content_type":"text/x-python","patch_set":16,"id":"dada55a8_e3b245e4","line":343,"updated":"2016-07-20 20:03:48.000000000","message":"This is no longer a thing you have to do I think. The oslo bug was fixed.","commit_id":"ba7a4246a6a48de6bb564d1a0859accd5ac09fc1"},{"author":{"_account_id":18247,"name":"Mark Doffman","email":"mdoffman@linux.vnet.ibm.com","username":"doffm"},"change_message_id":"03c5a5a2e5653d0de6874c1c5327e6dc0c14775f","unresolved":false,"context_lines":[{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    @staticmethod"},{"line_number":342,"context_line":"    def _ensure_migrated(context):"},{"line_number":343,"context_line":"        return _ensure_migrated(context)"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    @base.remotable"},{"line_number":346,"context_line":"    def create(self):"}],"source_content_type":"text/x-python","patch_set":16,"id":"dada55a8_8353886a","line":343,"in_reply_to":"dada55a8_e3b245e4","updated":"2016-07-20 20:28:03.000000000","message":"Ok, Will remove and put back in object.","commit_id":"ba7a4246a6a48de6bb564d1a0859accd5ac09fc1"}],"nova/tests/functional/db/test_aggregate.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c1b79ca00dfc14404178ddf81e5a519cd738ff4d","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from nova.db.sqlalchemy import api_models"},{"line_number":22,"context_line":"from nova import exception"},{"line_number":23,"context_line":"from nova.objects.aggregate import Aggregate"},{"line_number":24,"context_line":"from nova.objects.aggregate import AggregateList"},{"line_number":25,"context_line":"from nova.objects.aggregate import migrate_aggregates"},{"line_number":26,"context_line":"from nova import test"},{"line_number":27,"context_line":"from nova.tests import fixtures"}],"source_content_type":"text/x-python","patch_set":16,"id":"dada55a8_e30ec58a","line":24,"updated":"2016-07-20 20:03:48.000000000","message":"Hmm, this is why it works below I guess, but this violates our style checking doesn\u0027t it? We are supposed to import modules only. When did this land?","commit_id":"ba7a4246a6a48de6bb564d1a0859accd5ac09fc1"},{"author":{"_account_id":18247,"name":"Mark Doffman","email":"mdoffman@linux.vnet.ibm.com","username":"doffm"},"change_message_id":"03c5a5a2e5653d0de6874c1c5327e6dc0c14775f","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from nova.db.sqlalchemy import api_models"},{"line_number":22,"context_line":"from nova import exception"},{"line_number":23,"context_line":"from nova.objects.aggregate import Aggregate"},{"line_number":24,"context_line":"from nova.objects.aggregate import AggregateList"},{"line_number":25,"context_line":"from nova.objects.aggregate import migrate_aggregates"},{"line_number":26,"context_line":"from nova import test"},{"line_number":27,"context_line":"from nova.tests import fixtures"}],"source_content_type":"text/x-python","patch_set":16,"id":"dada55a8_a3ddece1","line":24,"in_reply_to":"dada55a8_e30ec58a","updated":"2016-07-20 20:28:03.000000000","message":"I don\u0027t know. It seems to pass tests, but I will remove it and import the module.","commit_id":"ba7a4246a6a48de6bb564d1a0859accd5ac09fc1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c1b79ca00dfc14404178ddf81e5a519cd738ff4d","unresolved":false,"context_lines":[{"line_number":627,"context_line":"        self.assertEqual(main_aggregates_len, done)"},{"line_number":628,"context_line":"        self.assertEqual(0, len(db.flavor_get_all(self.context)))"},{"line_number":629,"context_line":"        self.assertEqual(main_aggregates_len,"},{"line_number":630,"context_line":"                         len(AggregateList.get_all(self.context)))"},{"line_number":631,"context_line":""},{"line_number":632,"context_line":"    def _test_migrate_aggregate_reset_autoincrement(self):"},{"line_number":633,"context_line":"        match, done \u003d aggregate_obj.migrate_aggregate_reset_autoincrement("}],"source_content_type":"text/x-python","patch_set":16,"id":"dada55a8_a3316d5c","line":630,"range":{"start_line":630,"start_character":29,"end_line":630,"end_character":42},"updated":"2016-07-20 20:03:48.000000000","message":"Hmm, what is up with this removal of objects.? I would think this would fail now.","commit_id":"ba7a4246a6a48de6bb564d1a0859accd5ac09fc1"},{"author":{"_account_id":18247,"name":"Mark Doffman","email":"mdoffman@linux.vnet.ibm.com","username":"doffm"},"change_message_id":"03c5a5a2e5653d0de6874c1c5327e6dc0c14775f","unresolved":false,"context_lines":[{"line_number":627,"context_line":"        self.assertEqual(main_aggregates_len, done)"},{"line_number":628,"context_line":"        self.assertEqual(0, len(db.flavor_get_all(self.context)))"},{"line_number":629,"context_line":"        self.assertEqual(main_aggregates_len,"},{"line_number":630,"context_line":"                         len(AggregateList.get_all(self.context)))"},{"line_number":631,"context_line":""},{"line_number":632,"context_line":"    def _test_migrate_aggregate_reset_autoincrement(self):"},{"line_number":633,"context_line":"        match, done \u003d aggregate_obj.migrate_aggregate_reset_autoincrement("}],"source_content_type":"text/x-python","patch_set":16,"id":"dada55a8_03f5d855","line":630,"range":{"start_line":630,"start_character":29,"end_line":630,"end_character":42},"in_reply_to":"dada55a8_a3316d5c","updated":"2016-07-20 20:28:03.000000000","message":"Ditto I will set this back as it was before.","commit_id":"ba7a4246a6a48de6bb564d1a0859accd5ac09fc1"}]}
