)]}'
{"nova/db/sqlalchemy/migrate_repo/versions/229_add_encryption_key_uuid.py":[{"author":{"_account_id":7069,"name":"Joshua Hesketh","email":"josh@nitrotech.org","username":"jhesketh"},"change_message_id":"025e093101ffaa8f632ef0fbf6d57761db672412","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    shadow_instances.create_column(ephemeral_key_uuid.copy())"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    migrate_engine.execute(instances.update()."},{"line_number":33,"context_line":"                           values(ephemeral_key_uuid\u003d\u0027None\u0027))"},{"line_number":34,"context_line":"    migrate_engine.execute(shadow_instances.update()."},{"line_number":35,"context_line":"                           values(ephemeral_key_uuid\u003d\u0027None\u0027))"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9Y4A%3D","line":33,"updated":"2013-12-12 00:31:17.000000000","message":"Won\u0027t this insert the string \"None\" and not NULL?","commit_id":"ef2735a6ffb41afe90a33967278633f551b043b0"},{"author":{"_account_id":7746,"name":"Dan Genin","email":"daniel.genin@jhuapl.edu","username":"DiG"},"change_message_id":"3fc1b527a996341619432b126773aa13f0cb60c9","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    shadow_instances.create_column(ephemeral_key_uuid.copy())"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    migrate_engine.execute(instances.update()."},{"line_number":33,"context_line":"                           values(ephemeral_key_uuid\u003d\u0027None\u0027))"},{"line_number":34,"context_line":"    migrate_engine.execute(shadow_instances.update()."},{"line_number":35,"context_line":"                           values(ephemeral_key_uuid\u003d\u0027None\u0027))"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9VdA%3D","line":33,"in_reply_to":"AAAATn%2F9Y4A%3D","updated":"2013-12-12 14:59:02.000000000","message":"Done","commit_id":"ef2735a6ffb41afe90a33967278633f551b043b0"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"1421d6286f82f18fc0204c69b0814379b0b9b408","unresolved":false,"context_lines":[{"line_number":20,"context_line":"def upgrade(migrate_engine):"},{"line_number":21,"context_line":"    \"\"\"Function adds ephemeral storage encryption key uuid.\"\"\""},{"line_number":22,"context_line":"    meta \u003d MetaData()"},{"line_number":23,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    instances \u003d Table(\u0027instances\u0027, meta, autoload\u003dTrue)"},{"line_number":26,"context_line":"    shadow_instances \u003d Table(\u0027shadow_instances\u0027, meta, autoload\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9OP0%3D","line":23,"updated":"2013-12-13 20:35:10.000000000","message":"You do this in two lines here, but one line in downgrade.  I\u0027d make it consistent one way or the other.","commit_id":"6606bac9959405fbd28f7980e5b04ca27b354d1b"}],"nova/db/sqlalchemy/migrate_repo/versions/230_add_ephemeral_key_uuid.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7b028815e2102ce0cea191de86088b054734ce9f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2013 The Johns Hopkins University/Applied Physics Laboratory"},{"line_number":2,"context_line":"# All Rights Reserved"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAUH%2F%2Bi7U%3D","line":1,"updated":"2014-01-24 15:02:15.000000000","message":"2014 for the copyright?","commit_id":"ac4632938105aff74c8accf36234538ac049ce09"}],"nova/objects/instance.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"962a8169953bb38c200629c958bbed08dd54f31a","unresolved":false,"context_lines":[{"line_number":580,"context_line":"        \u00271.1\u0027: \u00271.9\u0027,"},{"line_number":581,"context_line":"        # NOTE(danms): Instance was at 1.9 before we added this"},{"line_number":582,"context_line":"        \u00271.2\u0027: \u00271.11\u0027,"},{"line_number":583,"context_line":"        \u00271.3\u0027: \u00271.12\u0027,"},{"line_number":584,"context_line":"        }"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"    @base.remotable_classmethod"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAUH%2F%2B1d0%3D","line":583,"updated":"2014-01-21 15:51:04.000000000","message":"InstanceList API isn\u0027t changing so I don\u0027t think this is needed, note that it didn\u0027t change between InstanceList 1.2 and 1.3.","commit_id":"6fa3ea928b5ca2c70610ea8f8229f94adeabc726"},{"author":{"_account_id":7746,"name":"Dan Genin","email":"daniel.genin@jhuapl.edu","username":"DiG"},"change_message_id":"38e68090b9ede30045ef5f0c605568dfe9064dd3","unresolved":false,"context_lines":[{"line_number":580,"context_line":"        \u00271.1\u0027: \u00271.9\u0027,"},{"line_number":581,"context_line":"        # NOTE(danms): Instance was at 1.9 before we added this"},{"line_number":582,"context_line":"        \u00271.2\u0027: \u00271.11\u0027,"},{"line_number":583,"context_line":"        \u00271.3\u0027: \u00271.12\u0027,"},{"line_number":584,"context_line":"        }"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"    @base.remotable_classmethod"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAUH%2F%2BwFs%3D","line":583,"in_reply_to":"AAAAUH%2F%2B1d0%3D","updated":"2014-01-22 15:31:11.000000000","message":"I have to admit that I don\u0027t really understand how versioning works here but unless the instance version is bumped up the test_object_version_mappings unit test fails.","commit_id":"6fa3ea928b5ca2c70610ea8f8229f94adeabc726"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7c1771015bc50c9937a8d2c3a41a0de124f0f0a3","unresolved":false,"context_lines":[{"line_number":580,"context_line":"        \u00271.1\u0027: \u00271.9\u0027,"},{"line_number":581,"context_line":"        # NOTE(danms): Instance was at 1.9 before we added this"},{"line_number":582,"context_line":"        \u00271.2\u0027: \u00271.11\u0027,"},{"line_number":583,"context_line":"        \u00271.3\u0027: \u00271.12\u0027,"},{"line_number":584,"context_line":"        }"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"    @base.remotable_classmethod"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAUH%2F%2BvEw%3D","line":583,"in_reply_to":"AAAAUH%2F%2BwFs%3D","updated":"2014-01-22 17:14:21.000000000","message":"Bumping the version for an Instance change makes sense, but this is InstanceList, a different class and API and since nothing is changing in the InstanceList API, the version mapping (child_versions) doesn\u0027t need to change.","commit_id":"6fa3ea928b5ca2c70610ea8f8229f94adeabc726"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"15be870b88a068f5d89b14a5e4df367ba3c5c1f6","unresolved":false,"context_lines":[{"line_number":580,"context_line":"        \u00271.1\u0027: \u00271.9\u0027,"},{"line_number":581,"context_line":"        # NOTE(danms): Instance was at 1.9 before we added this"},{"line_number":582,"context_line":"        \u00271.2\u0027: \u00271.11\u0027,"},{"line_number":583,"context_line":"        \u00271.3\u0027: \u00271.12\u0027,"},{"line_number":584,"context_line":"        }"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"    @base.remotable_classmethod"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUH%2F%2BvEI%3D","line":583,"updated":"2014-01-22 17:16:34.000000000","message":"Huh?  Is this because the tests are failing? Which tests and what\u0027s the failure (link to a paste or something).\n\nI was thinking you didn\u0027t need to change this, but maybe you do?  Was checking based on my change here which is a bit different:\n\nhttps://review.openstack.org/#/c/64725/\n\nBut note that the 1.2-\u003e1.3 map to the same version, so not sure why you\u0027d need to change now...\n\nProbably need some help from comstud here since dansmith is out this week.","commit_id":"fcf4d9bd8a4d95a4a50d082d4745aaa43eaa2f30"},{"author":{"_account_id":7746,"name":"Dan Genin","email":"daniel.genin@jhuapl.edu","username":"DiG"},"change_message_id":"85f77bcd6752f6a1b73f65417c76161f1416afc5","unresolved":false,"context_lines":[{"line_number":580,"context_line":"        \u00271.1\u0027: \u00271.9\u0027,"},{"line_number":581,"context_line":"        # NOTE(danms): Instance was at 1.9 before we added this"},{"line_number":582,"context_line":"        \u00271.2\u0027: \u00271.11\u0027,"},{"line_number":583,"context_line":"        \u00271.3\u0027: \u00271.12\u0027,"},{"line_number":584,"context_line":"        }"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"    @base.remotable_classmethod"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUH%2F%2Bupo%3D","line":583,"in_reply_to":"AAAAUH%2F%2BuqM%3D","updated":"2014-01-22 18:34:48.000000000","message":"Even if the InstanceList object hasn\u0027t changed, as Matt pointed out?","commit_id":"fcf4d9bd8a4d95a4a50d082d4745aaa43eaa2f30"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"97bea4b4fb80c7cffc1365727331943221010df4","unresolved":false,"context_lines":[{"line_number":580,"context_line":"        \u00271.1\u0027: \u00271.9\u0027,"},{"line_number":581,"context_line":"        # NOTE(danms): Instance was at 1.9 before we added this"},{"line_number":582,"context_line":"        \u00271.2\u0027: \u00271.11\u0027,"},{"line_number":583,"context_line":"        \u00271.3\u0027: \u00271.12\u0027,"},{"line_number":584,"context_line":"        }"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"    @base.remotable_classmethod"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUH%2F%2BuqM%3D","line":583,"in_reply_to":"AAAAUH%2F%2Buz4%3D","updated":"2014-01-22 18:30:41.000000000","message":"I believe the correct answer is that if you bump the Instance version, you also bump the InstanceList version.  This means that you should change InstanceList to 1.4, and add a 1.4 -\u003e 1.12 mapping here.... and NOT change the 1.3 mapping.","commit_id":"fcf4d9bd8a4d95a4a50d082d4745aaa43eaa2f30"},{"author":{"_account_id":7746,"name":"Dan Genin","email":"daniel.genin@jhuapl.edu","username":"DiG"},"change_message_id":"020e48a4ebc7c34526397c15f83405edbec7c0cd","unresolved":false,"context_lines":[{"line_number":580,"context_line":"        \u00271.1\u0027: \u00271.9\u0027,"},{"line_number":581,"context_line":"        # NOTE(danms): Instance was at 1.9 before we added this"},{"line_number":582,"context_line":"        \u00271.2\u0027: \u00271.11\u0027,"},{"line_number":583,"context_line":"        \u00271.3\u0027: \u00271.12\u0027,"},{"line_number":584,"context_line":"        }"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"    @base.remotable_classmethod"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUH%2F%2Buz4%3D","line":583,"in_reply_to":"AAAAUH%2F%2BvEI%3D","updated":"2014-01-22 18:11:26.000000000","message":"It seems that the first number is the version of the InstanceList class and the second is the current version of Instance. Between InstanceList 1.2 and 1.3 the Instance version stayed the same -- 1.11. Now that the Instance version has gone up, perhaps, the mapping for 1.3 needs to be updated. Just guessing.\n\nHere is what I get if I leave 1.3: 1.11\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nFAIL: nova.tests.objects.test_objects.TestObjectListBase.test_object_version_mappings\n----------------------------------------------------------------------\nTraceback (most recent call last):\n_StringException: Empty attachments:\n  pythonlogging:\u0027\u0027\n  stderr\n  stdout\n\nTraceback (most recent call last):\n  File \"/home/stack/nova-dev/nova/tests/objects/test_objects.py\", line 754, in test_object_version_mappings\n    self._test_object_list_version_mappings(obj_class)\n  File \"/home/stack/nova-dev/nova/tests/objects/test_objects.py\", line 746, in _test_object_list_version_mappings\n    list_obj_class.child_versions.values())\n  File \"/home/stack/nova-dev/.venv/local/lib/python2.7/site-packages/testtools/testcase.py\", line 330, in assertIn\n    self.assertThat(haystack, Contains(needle))\n  File \"/home/stack/nova-dev/.venv/local/lib/python2.7/site-packages/testtools/testcase.py\", line 414, in assertThat\n    raise MismatchError(matchee, matcher, mismatch, verbose)\nMismatchError: \u00271.12\u0027 not in [\u00271.9\u0027, \u00271.11\u0027, \u00271.11\u0027]\n\n\nRan 89 tests in 8.105s\n\nFAILED (failures\u003d1)","commit_id":"fcf4d9bd8a4d95a4a50d082d4745aaa43eaa2f30"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"a57feb51c8b6f444c0821508280e7034af0db91f","unresolved":false,"context_lines":[{"line_number":572,"context_line":"    # Version 1.2: Instance \u003c\u003d version 1.11"},{"line_number":573,"context_line":"    # Version 1.3: Added use_slave to get_by_filters"},{"line_number":574,"context_line":"    # Version 1.4: Instance \u003c\u003d version 1.12"},{"line_number":575,"context_line":"    VERSION \u003d \u00271.3\u0027"},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"    fields \u003d {"},{"line_number":578,"context_line":"        \u0027objects\u0027: fields.ListOfObjectsField(\u0027Instance\u0027),"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAUH%2F%2BV%2Fs%3D","line":575,"updated":"2014-01-27 20:53:49.000000000","message":"Added the comment, but forgot to bump the version :)","commit_id":"c02530343eb5c082fd68c33f3d4897b92da75b9e"}],"nova/tests/db/test_migrations.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"15be870b88a068f5d89b14a5e4df367ba3c5c1f6","unresolved":false,"context_lines":[{"line_number":2459,"context_line":"        self.assertColumnNotExists(engine, \u0027compute_nodes\u0027, \u0027extra_resources\u0027)"},{"line_number":2460,"context_line":""},{"line_number":2461,"context_line":"    def _check_230(self, engine, data):"},{"line_number":2462,"context_line":"        self.assertColumnExists(engine, \u0027instances\u0027, \u0027ephemeral_key_uuid\u0027)"},{"line_number":2463,"context_line":""},{"line_number":2464,"context_line":"        instances \u003d db_utils.get_table(engine, \u0027instances\u0027)"},{"line_number":2465,"context_line":"        self.assertTrue(isinstance(instances.c.ephemeral_key_uuid.type,"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUH%2F%2BvEA%3D","line":2462,"updated":"2014-01-22 17:16:34.000000000","message":"Shouldn\u0027t this also check the shadow_instances table?","commit_id":"fcf4d9bd8a4d95a4a50d082d4745aaa43eaa2f30"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1418f7f85987bda5b040e0cb9fb5415f8bc7d632","unresolved":false,"context_lines":[{"line_number":2459,"context_line":"        self.assertColumnNotExists(engine, \u0027compute_nodes\u0027, \u0027extra_resources\u0027)"},{"line_number":2460,"context_line":""},{"line_number":2461,"context_line":"    def _check_230(self, engine, data):"},{"line_number":2462,"context_line":"        self.assertColumnExists(engine, \u0027instances\u0027, \u0027ephemeral_key_uuid\u0027)"},{"line_number":2463,"context_line":""},{"line_number":2464,"context_line":"        instances \u003d db_utils.get_table(engine, \u0027instances\u0027)"},{"line_number":2465,"context_line":"        self.assertTrue(isinstance(instances.c.ephemeral_key_uuid.type,"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUH%2F%2BpEY%3D","line":2462,"in_reply_to":"AAAAUH%2F%2BuDY%3D","updated":"2014-01-23 16:27:35.000000000","message":"I would think checking the shadow table is something that should be tested here also, see the usage of db_utils.check_shadow_table through this class.","commit_id":"fcf4d9bd8a4d95a4a50d082d4745aaa43eaa2f30"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"eb6fcc81c81d2959c31c10fe76f28471d5ee0964","unresolved":false,"context_lines":[{"line_number":2459,"context_line":"        self.assertColumnNotExists(engine, \u0027compute_nodes\u0027, \u0027extra_resources\u0027)"},{"line_number":2460,"context_line":""},{"line_number":2461,"context_line":"    def _check_230(self, engine, data):"},{"line_number":2462,"context_line":"        self.assertColumnExists(engine, \u0027instances\u0027, \u0027ephemeral_key_uuid\u0027)"},{"line_number":2463,"context_line":""},{"line_number":2464,"context_line":"        instances \u003d db_utils.get_table(engine, \u0027instances\u0027)"},{"line_number":2465,"context_line":"        self.assertTrue(isinstance(instances.c.ephemeral_key_uuid.type,"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUH%2F%2BuDY%3D","line":2462,"in_reply_to":"AAAAUH%2F%2Buww%3D","updated":"2014-01-22 20:22:30.000000000","message":"Hmm, not sure, I don\u0027t have a ton of experience with reviewing these, so maybe it\u0027s common to not test shadow_tables, but if so, I don\u0027t know why.  Might be a good question for IRC, maybe ask dripton or dprince in #openstack-nova?","commit_id":"fcf4d9bd8a4d95a4a50d082d4745aaa43eaa2f30"},{"author":{"_account_id":7746,"name":"Dan Genin","email":"daniel.genin@jhuapl.edu","username":"DiG"},"change_message_id":"020e48a4ebc7c34526397c15f83405edbec7c0cd","unresolved":false,"context_lines":[{"line_number":2459,"context_line":"        self.assertColumnNotExists(engine, \u0027compute_nodes\u0027, \u0027extra_resources\u0027)"},{"line_number":2460,"context_line":""},{"line_number":2461,"context_line":"    def _check_230(self, engine, data):"},{"line_number":2462,"context_line":"        self.assertColumnExists(engine, \u0027instances\u0027, \u0027ephemeral_key_uuid\u0027)"},{"line_number":2463,"context_line":""},{"line_number":2464,"context_line":"        instances \u003d db_utils.get_table(engine, \u0027instances\u0027)"},{"line_number":2465,"context_line":"        self.assertTrue(isinstance(instances.c.ephemeral_key_uuid.type,"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUH%2F%2Buww%3D","line":2462,"in_reply_to":"AAAAUH%2F%2BvEA%3D","updated":"2014-01-22 18:11:26.000000000","message":"Not sure, 229 is basically an identical alteration but does not check shadow tables, although, a column is added to shadow_compute_nodes. Is 229 wrong?","commit_id":"fcf4d9bd8a4d95a4a50d082d4745aaa43eaa2f30"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d98ec8491f12acd42c0cb9153be612ae79d441fe","unresolved":false,"context_lines":[{"line_number":2460,"context_line":""},{"line_number":2461,"context_line":"    def _check_230(self, engine, data):"},{"line_number":2462,"context_line":"        self.assertColumnExists(engine, \u0027instances\u0027, \u0027ephemeral_key_uuid\u0027)"},{"line_number":2463,"context_line":""},{"line_number":2464,"context_line":"        instances \u003d db_utils.get_table(engine, \u0027instances\u0027)"},{"line_number":2465,"context_line":"        self.assertTrue(isinstance(instances.c.ephemeral_key_uuid.type,"},{"line_number":2466,"context_line":"            sqlalchemy.types.String))"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAUH%2F%2BpCg%3D","line":2463,"updated":"2014-01-23 16:33:00.000000000","message":"Should also assert this is true:\n\ndb_utils.check_shadow_table(engine, \u0027instances\u0027)\n\nThat confirms that instances and shadow_instances have the same columns.","commit_id":"b8da1ad9d3e19bf4fdf25576075ec7fde088c81e"},{"author":{"_account_id":7746,"name":"Dan Genin","email":"daniel.genin@jhuapl.edu","username":"DiG"},"change_message_id":"53793c05fd8148e71a7881e22ff4d99c64e38fca","unresolved":false,"context_lines":[{"line_number":2460,"context_line":""},{"line_number":2461,"context_line":"    def _check_230(self, engine, data):"},{"line_number":2462,"context_line":"        self.assertColumnExists(engine, \u0027instances\u0027, \u0027ephemeral_key_uuid\u0027)"},{"line_number":2463,"context_line":""},{"line_number":2464,"context_line":"        instances \u003d db_utils.get_table(engine, \u0027instances\u0027)"},{"line_number":2465,"context_line":"        self.assertTrue(isinstance(instances.c.ephemeral_key_uuid.type,"},{"line_number":2466,"context_line":"            sqlalchemy.types.String))"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAUH%2F%2BnGU%3D","line":2463,"in_reply_to":"AAAAUH%2F%2BpCg%3D","updated":"2014-01-23 22:05:03.000000000","message":"Done","commit_id":"b8da1ad9d3e19bf4fdf25576075ec7fde088c81e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d98ec8491f12acd42c0cb9153be612ae79d441fe","unresolved":false,"context_lines":[{"line_number":2466,"context_line":"            sqlalchemy.types.String))"},{"line_number":2467,"context_line":""},{"line_number":2468,"context_line":"    def _post_downgrade_230(self, engine):"},{"line_number":2469,"context_line":"        self.assertColumnNotExists(engine, \u0027instances\u0027, \u0027ephemeral_key_uuid\u0027)"},{"line_number":2470,"context_line":""},{"line_number":2471,"context_line":""},{"line_number":2472,"context_line":"class TestBaremetalMigrations(BaseWalkMigrationTestCase, CommonTestsMixIn):"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAUH%2F%2BpCc%3D","line":2469,"updated":"2014-01-23 16:33:00.000000000","message":"Same here.","commit_id":"b8da1ad9d3e19bf4fdf25576075ec7fde088c81e"},{"author":{"_account_id":7746,"name":"Dan Genin","email":"daniel.genin@jhuapl.edu","username":"DiG"},"change_message_id":"53793c05fd8148e71a7881e22ff4d99c64e38fca","unresolved":false,"context_lines":[{"line_number":2466,"context_line":"            sqlalchemy.types.String))"},{"line_number":2467,"context_line":""},{"line_number":2468,"context_line":"    def _post_downgrade_230(self, engine):"},{"line_number":2469,"context_line":"        self.assertColumnNotExists(engine, \u0027instances\u0027, \u0027ephemeral_key_uuid\u0027)"},{"line_number":2470,"context_line":""},{"line_number":2471,"context_line":""},{"line_number":2472,"context_line":"class TestBaremetalMigrations(BaseWalkMigrationTestCase, CommonTestsMixIn):"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAUH%2F%2BnGQ%3D","line":2469,"in_reply_to":"AAAAUH%2F%2BpCc%3D","updated":"2014-01-23 22:05:03.000000000","message":"Done","commit_id":"b8da1ad9d3e19bf4fdf25576075ec7fde088c81e"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"3b973ac1985e80d08150da167055c358fb20e7f4","unresolved":false,"context_lines":[{"line_number":2481,"context_line":""},{"line_number":2482,"context_line":"        instances \u003d db_utils.get_table(engine, \u0027instances\u0027)"},{"line_number":2483,"context_line":"        self.assertTrue(isinstance(instances.c.ephemeral_key_uuid.type,"},{"line_number":2484,"context_line":"            sqlalchemy.types.String))"},{"line_number":2485,"context_line":""},{"line_number":2486,"context_line":"    def _post_downgrade_231(self, engine):"},{"line_number":2487,"context_line":"        self.assertColumnNotExists(engine, \u0027instances\u0027, \u0027ephemeral_key_uuid\u0027)"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAUH%2F%2BQnY%3D","line":2484,"updated":"2014-01-28 16:03:00.000000000","message":"I think you should do the same checks on shadow_instances.","commit_id":"002a0e85749952436af042232e5322bc39f95cef"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"79211ee2658a01b73bc73402cf2a38aac40c5348","unresolved":false,"context_lines":[{"line_number":2480,"context_line":"        self.assertColumnExists(engine, \u0027instances\u0027, \u0027ephemeral_key_uuid\u0027)"},{"line_number":2481,"context_line":""},{"line_number":2482,"context_line":"        instances \u003d db_utils.get_table(engine, \u0027instances\u0027)"},{"line_number":2483,"context_line":"        self.assertTrue(isinstance(instances.c.ephemeral_key_uuid.type,"},{"line_number":2484,"context_line":"            sqlalchemy.types.String))"},{"line_number":2485,"context_line":"        self.assertTrue(db_utils.check_shadow_table(engine, \u0027instances\u0027))"},{"line_number":2486,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"AAAAUH%2F%2BOb0%3D","line":2483,"updated":"2014-01-28 22:16:18.000000000","message":"Seems that dripton\u0027s comment in patch set 20 was lost in a rebase, so re-stating:\n\n\"I think you should do the same checks on shadow_instances.\"","commit_id":"50c9055c8ef22b59379acadd1a1efdcbc6be12b3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f0f72f8cfdceaba6c4d274ec129e0fe687541e26","unresolved":false,"context_lines":[{"line_number":2480,"context_line":"        self.assertColumnExists(engine, \u0027instances\u0027, \u0027ephemeral_key_uuid\u0027)"},{"line_number":2481,"context_line":""},{"line_number":2482,"context_line":"        instances \u003d db_utils.get_table(engine, \u0027instances\u0027)"},{"line_number":2483,"context_line":"        self.assertTrue(isinstance(instances.c.ephemeral_key_uuid.type,"},{"line_number":2484,"context_line":"            sqlalchemy.types.String))"},{"line_number":2485,"context_line":"        self.assertTrue(db_utils.check_shadow_table(engine, \u0027instances\u0027))"},{"line_number":2486,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"AAAAUH%2F%2BOaE%3D","line":2483,"in_reply_to":"AAAAUH%2F%2BOb0%3D","updated":"2014-01-28 22:17:59.000000000","message":"Nevermind, just got caught up.","commit_id":"50c9055c8ef22b59379acadd1a1efdcbc6be12b3"}]}
