)]}'
{"tempest/api/compute/admin/test_live_migration.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ce699c7ccbb78aace1a9f4151d056b2fb7eefbd2","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                          \u0027Live migration not available\u0027)"},{"line_number":122,"context_line":"    @testtools.skipUnless(CONF.compute_feature_enabled.pause,"},{"line_number":123,"context_line":"                          \u0027Pause is not available.\u0027)"},{"line_number":124,"context_line":"    @testtools.skipUnless(CONF.compute_feature_enabled \\"},{"line_number":125,"context_line":"                              .live_migrate_paused_instances,"},{"line_number":126,"context_line":"                          \u0027Live migration of paused instances is not \u0027"},{"line_number":127,"context_line":"                          \u0027available.\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9aa53dc9_4e329ff3","line":124,"updated":"2015-04-09 17:41:55.000000000","message":"E502 the backslash is redundant between brackets","commit_id":"cb8b926f161820ccfd3989728025636dfe33eb91"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"00a203e1920097d74738d9fff3c8d6fc5e367656","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                          \u0027Live migration not available\u0027)"},{"line_number":122,"context_line":"    @testtools.skipUnless(CONF.compute_feature_enabled.pause,"},{"line_number":123,"context_line":"                          \u0027Pause is not available.\u0027)"},{"line_number":124,"context_line":"    @testtools.skipUnless(CONF.compute_feature_enabled \\"},{"line_number":125,"context_line":"                              .live_migrate_paused_instances,"},{"line_number":126,"context_line":"                          \u0027Live migration of paused instances is not \u0027"},{"line_number":127,"context_line":"                          \u0027available.\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9aa53dc9_d1df5e67","line":124,"in_reply_to":"9aa53dc9_4e329ff3","updated":"2015-04-10 07:10:14.000000000","message":"Done","commit_id":"cb8b926f161820ccfd3989728025636dfe33eb91"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"79cde6e279f2560ec5ccbd169bc13d693515b6bb","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        :param state: The vm_state the migrated server should be in before and"},{"line_number":93,"context_line":"                      after the live migration. Supported values are \u0027ACTIVE\u0027"},{"line_number":94,"context_line":"                      and \u0027PAUSED\u0027."},{"line_number":95,"context_line":"        \"\"\""},{"line_number":96,"context_line":"        # Live block migrate an instance to another host"},{"line_number":97,"context_line":"        if len(self._get_compute_hostnames()) \u003c 2:"}],"source_content_type":"text/x-python","patch_set":10,"id":"dac4157f_c20c7d3d","line":94,"updated":"2015-04-21 18:40:20.000000000","message":"Maybe we should enforce this by raising an exception if it\u0027s not one of those 2 states, but not that it matters since there are only the 2 callers.","commit_id":"01cddfb7f108a431814fc5f1ec40b289c01dbaa0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"60b7fb2266ec10e31ae57b0d02cddd237b101f15","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        :param state: The vm_state the migrated server should be in before and"},{"line_number":93,"context_line":"                      after the live migration. Supported values are \u0027ACTIVE\u0027"},{"line_number":94,"context_line":"                      and \u0027PAUSED\u0027."},{"line_number":95,"context_line":"        \"\"\""},{"line_number":96,"context_line":"        # Live block migrate an instance to another host"},{"line_number":97,"context_line":"        if len(self._get_compute_hostnames()) \u003c 2:"}],"source_content_type":"text/x-python","patch_set":10,"id":"dac4157f_3d791b30","line":94,"in_reply_to":"dac4157f_c20c7d3d","updated":"2015-04-21 19:55:11.000000000","message":"I could add that if you want.","commit_id":"01cddfb7f108a431814fc5f1ec40b289c01dbaa0"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"79cde6e279f2560ec5ccbd169bc13d693515b6bb","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        if state \u003d\u003d \u0027PAUSED\u0027:"},{"line_number":105,"context_line":"            self.admin_servers_client.pause_server(server_id)"},{"line_number":106,"context_line":"            self.admin_servers_client.wait_for_server_status(server_id, state)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        self._migrate_server_to(server_id, target_host)"},{"line_number":109,"context_line":"        self.servers_client.wait_for_server_status(server_id, state)"}],"source_content_type":"text/x-python","patch_set":10,"id":"dac4157f_8708d72e","line":106,"updated":"2015-04-21 18:40:20.000000000","message":"Well, you could use \u0027PAUSED\u0027 here, because state will always be paused, but doesn\u0027t really matter","commit_id":"01cddfb7f108a431814fc5f1ec40b289c01dbaa0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"60b7fb2266ec10e31ae57b0d02cddd237b101f15","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        if state \u003d\u003d \u0027PAUSED\u0027:"},{"line_number":105,"context_line":"            self.admin_servers_client.pause_server(server_id)"},{"line_number":106,"context_line":"            self.admin_servers_client.wait_for_server_status(server_id, state)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        self._migrate_server_to(server_id, target_host)"},{"line_number":109,"context_line":"        self.servers_client.wait_for_server_status(server_id, state)"}],"source_content_type":"text/x-python","patch_set":10,"id":"dac4157f_dd90df45","line":106,"in_reply_to":"dac4157f_8708d72e","updated":"2015-04-21 19:55:11.000000000","message":"yeah, but meh","commit_id":"01cddfb7f108a431814fc5f1ec40b289c01dbaa0"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"79cde6e279f2560ec5ccbd169bc13d693515b6bb","unresolved":false,"context_lines":[{"line_number":106,"context_line":"            self.admin_servers_client.wait_for_server_status(server_id, state)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        self._migrate_server_to(server_id, target_host)"},{"line_number":109,"context_line":"        self.servers_client.wait_for_server_status(server_id, state)"},{"line_number":110,"context_line":"        self.assertEqual(target_host, self._get_host_for_server(server_id))"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @test.idempotent_id(\u00271dce86b8-eb04-4c03-a9d8-9c1dc3ee0c7b\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"dac4157f_2238d99f","line":109,"updated":"2015-04-21 18:40:20.000000000","message":"So a live migrated instance which was paused is expected to still be paused post-migration. I guess this makes sense.","commit_id":"01cddfb7f108a431814fc5f1ec40b289c01dbaa0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"60b7fb2266ec10e31ae57b0d02cddd237b101f15","unresolved":false,"context_lines":[{"line_number":106,"context_line":"            self.admin_servers_client.wait_for_server_status(server_id, state)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        self._migrate_server_to(server_id, target_host)"},{"line_number":109,"context_line":"        self.servers_client.wait_for_server_status(server_id, state)"},{"line_number":110,"context_line":"        self.assertEqual(target_host, self._get_host_for_server(server_id))"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @test.idempotent_id(\u00271dce86b8-eb04-4c03-a9d8-9c1dc3ee0c7b\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"dac4157f_bd93eb4e","line":109,"in_reply_to":"dac4157f_2238d99f","updated":"2015-04-21 19:55:11.000000000","message":"yeah","commit_id":"01cddfb7f108a431814fc5f1ec40b289c01dbaa0"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"79cde6e279f2560ec5ccbd169bc13d693515b6bb","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    @testtools.skipUnless(CONF.compute_feature_enabled"},{"line_number":125,"context_line":"                              .live_migrate_paused_instances,"},{"line_number":126,"context_line":"                          \u0027Live migration of paused instances is not \u0027"},{"line_number":127,"context_line":"                          \u0027available.\u0027)"},{"line_number":128,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":129,"context_line":"    def test_live_block_migration_paused(self):"},{"line_number":130,"context_line":"        self._test_live_block_migration(state\u003d\u0027PAUSED\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"dac4157f_e2578100","line":127,"updated":"2015-04-21 18:40:20.000000000","message":"Heh, I think you could use some more skipUnless decorators here :)","commit_id":"01cddfb7f108a431814fc5f1ec40b289c01dbaa0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"60b7fb2266ec10e31ae57b0d02cddd237b101f15","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    @testtools.skipUnless(CONF.compute_feature_enabled"},{"line_number":125,"context_line":"                              .live_migrate_paused_instances,"},{"line_number":126,"context_line":"                          \u0027Live migration of paused instances is not \u0027"},{"line_number":127,"context_line":"                          \u0027available.\u0027)"},{"line_number":128,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":129,"context_line":"    def test_live_block_migration_paused(self):"},{"line_number":130,"context_line":"        self._test_live_block_migration(state\u003d\u0027PAUSED\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"dac4157f_ddb7bfd6","line":127,"in_reply_to":"dac4157f_e2578100","updated":"2015-04-21 19:55:11.000000000","message":"I blame branchless Tempest...","commit_id":"01cddfb7f108a431814fc5f1ec40b289c01dbaa0"}],"tempest/api/compute/test_live_block_migration.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"342759d1c15669a8aa5cc860bfe8f98bd59e0a64","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    def resource_setup(cls):"},{"line_number":31,"context_line":"        super(LiveBlockMigrationTestJSON, cls).resource_setup()"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        cls.admin_hosts_client \u003d cls.os_adm.hosts_client"},{"line_number":34,"context_line":"        cls.admin_servers_client \u003d cls.os_adm.servers_client"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        cls.created_server_ids \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_4c303de9","line":33,"updated":"2015-02-18 18:28:20.000000000","message":"@Matthew, because of the admin_servers_client used here.","commit_id":"5bdb02a89a682336c475ce79279ebf0ed9b8a893"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0539df73b014582d97986f7ca1599003da6265ff","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                          \u0027Pause is not available.\u0027)"},{"line_number":103,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":104,"context_line":"    def test_live_block_migration_paused(self):"},{"line_number":105,"context_line":"        # Live block migrate an instance to another host"},{"line_number":106,"context_line":"        if len(self._get_compute_hostnames()) \u003c 2:"},{"line_number":107,"context_line":"            raise self.skipTest("},{"line_number":108,"context_line":"                \"Less than 2 compute nodes, skipping migration test.\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_5209c193","line":105,"updated":"2015-02-18 16:21:35.000000000","message":"TODO: consolidate the common code between this test and test_live_block_migration above.","commit_id":"5bdb02a89a682336c475ce79279ebf0ed9b8a893"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"2f4f0b3c27c025072e253dea02bca9957a0060ff","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        actual_host \u003d self._get_host_for_server(server_id)"},{"line_number":111,"context_line":"        target_host \u003d self._get_host_other_than(actual_host)"},{"line_number":112,"context_line":"        # Now pause the server."},{"line_number":113,"context_line":"        resp, server \u003d self.admin_servers_client.pause_server(server_id)"},{"line_number":114,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":115,"context_line":"        self.admin_servers_client.wait_for_server_status(server_id, \u0027PAUSED\u0027)"},{"line_number":116,"context_line":"        # Now migrate the paused server."}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_f5b2bf04","line":113,"updated":"2015-02-24 15:40:05.000000000","message":"server is not used anywhere and the resp.status is already validated in pause_server(). So I think we don\u0027t need (resp, server) tuple here.","commit_id":"5bdb02a89a682336c475ce79279ebf0ed9b8a893"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"997c513ce5c92ca37b13423515ccf8dff67c39ec","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        actual_host \u003d self._get_host_for_server(server_id)"},{"line_number":111,"context_line":"        target_host \u003d self._get_host_other_than(actual_host)"},{"line_number":112,"context_line":"        # Now pause the server."},{"line_number":113,"context_line":"        resp, server \u003d self.admin_servers_client.pause_server(server_id)"},{"line_number":114,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":115,"context_line":"        self.admin_servers_client.wait_for_server_status(server_id, \u0027PAUSED\u0027)"},{"line_number":116,"context_line":"        # Now migrate the paused server."}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_62322ca8","line":113,"in_reply_to":"ba7be1f8_f5b2bf04","updated":"2015-02-26 15:11:18.000000000","message":"I just copied this from test_server_actions.test_pause_unpause_server which was recently updated with commit ae99b9a96830ac25f00a994aa249abaac693f936 to not return the values.  I see that way down in tempest-lib when we get to validate_response it\u0027s checking if the resp.status is in a list of expected status codes and 202 is in there so I\u0027m fine with dropping the return tuple.","commit_id":"5bdb02a89a682336c475ce79279ebf0ed9b8a893"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"848910854e4c78a33293db488fc5918189dbe81d","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        # Now pause the server."},{"line_number":113,"context_line":"        resp, server \u003d self.admin_servers_client.pause_server(server_id)"},{"line_number":114,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":115,"context_line":"        self.admin_servers_client.wait_for_server_status(server_id, \u0027PAUSED\u0027)"},{"line_number":116,"context_line":"        # Now migrate the paused server."},{"line_number":117,"context_line":"        self._migrate_server_to(server_id, target_host)"},{"line_number":118,"context_line":"        # The server status should remain as PAUSED."}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_4d092094","line":115,"updated":"2015-02-18 16:40:45.000000000","message":"why admin_servers_client here...","commit_id":"5bdb02a89a682336c475ce79279ebf0ed9b8a893"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"342759d1c15669a8aa5cc860bfe8f98bd59e0a64","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        # Now pause the server."},{"line_number":113,"context_line":"        resp, server \u003d self.admin_servers_client.pause_server(server_id)"},{"line_number":114,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":115,"context_line":"        self.admin_servers_client.wait_for_server_status(server_id, \u0027PAUSED\u0027)"},{"line_number":116,"context_line":"        # Now migrate the paused server."},{"line_number":117,"context_line":"        self._migrate_server_to(server_id, target_host)"},{"line_number":118,"context_line":"        # The server status should remain as PAUSED."}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_ac529910","line":115,"in_reply_to":"da86d52c_4d092094","updated":"2015-02-18 18:28:20.000000000","message":"Because of the client set in resource_setup above.","commit_id":"5bdb02a89a682336c475ce79279ebf0ed9b8a893"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"848910854e4c78a33293db488fc5918189dbe81d","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        # Now migrate the paused server."},{"line_number":117,"context_line":"        self._migrate_server_to(server_id, target_host)"},{"line_number":118,"context_line":"        # The server status should remain as PAUSED."},{"line_number":119,"context_line":"        self.servers_client.wait_for_server_status(server_id, \u0027PAUSED\u0027)"},{"line_number":120,"context_line":"        self.assertEqual(target_host, self._get_host_for_server(server_id))"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    @testtools.skipIf(not CONF.compute_feature_enabled.live_migration or not"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_2d2b0cec","line":119,"updated":"2015-02-18 16:40:45.000000000","message":"...and servers_client here?","commit_id":"5bdb02a89a682336c475ce79279ebf0ed9b8a893"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"7e9332a46a8c29aa728b6d8bb13cbdf5b2c716be","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        self.assertEqual(target_host, self._get_host_for_server(server_id))"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @test.idempotent_id(\u00271dce86b8-eb04-4c03-a9d8-9c1dc3ee0c7b\u0027)"},{"line_number":113,"context_line":"    @testtools.skipIf(not CONF.compute_feature_enabled.live_migration,"},{"line_number":114,"context_line":"                      \u0027Live migration not available\u0027)"},{"line_number":115,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":116,"context_line":"    def test_live_block_migration(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_f8b92fed","line":113,"updated":"2015-03-11 11:54:30.000000000","message":"Can we change skipIf(not) to skipUnless() please?","commit_id":"8f944be2eac9585e227ed415b4b34360d50c7884"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"871889da39c88df346b721a1e3aa67119afaaf9e","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        self.assertEqual(target_host, self._get_host_for_server(server_id))"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @test.idempotent_id(\u00271dce86b8-eb04-4c03-a9d8-9c1dc3ee0c7b\u0027)"},{"line_number":113,"context_line":"    @testtools.skipIf(not CONF.compute_feature_enabled.live_migration,"},{"line_number":114,"context_line":"                      \u0027Live migration not available\u0027)"},{"line_number":115,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":116,"context_line":"    def test_live_block_migration(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_3eed5db8","line":113,"in_reply_to":"9a80dd14_f8b92fed","updated":"2015-03-11 17:47:07.000000000","message":"I suppose since it\u0027s already being changed, but it wasn\u0027t really part of the original patch, this is just doing the refactor.","commit_id":"8f944be2eac9585e227ed415b4b34360d50c7884"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"7e9332a46a8c29aa728b6d8bb13cbdf5b2c716be","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        self._test_live_block_migration()"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    @test.idempotent_id(\u00271e107f21-61b2-4988-8f22-b196e938ab88\u0027)"},{"line_number":120,"context_line":"    @testtools.skipIf(not CONF.compute_feature_enabled.live_migration,"},{"line_number":121,"context_line":"                      \u0027Live migration not available\u0027)"},{"line_number":122,"context_line":"    @testtools.skipUnless(CONF.compute_feature_enabled.pause,"},{"line_number":123,"context_line":"                          \u0027Pause is not available.\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_f8368fb3","line":120,"updated":"2015-03-11 11:54:30.000000000","message":"We can use SkipUnless instead of SkipIf(not)? This logic makes my head spin a little.","commit_id":"8f944be2eac9585e227ed415b4b34360d50c7884"}],"tempest/config.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"584af8702a09233729849810d89b1a8ab23fd090","unresolved":false,"context_lines":[{"line_number":369,"context_line":"                     \u0027images of running instances?\u0027),"},{"line_number":370,"context_line":"    cfg.BoolOpt(\u0027ec2_api\u0027,"},{"line_number":371,"context_line":"                default\u003dTrue,"},{"line_number":372,"context_line":"                help\u003d\u0027Does the test environment have the ec2 api running?\u0027),"},{"line_number":373,"context_line":"    # TODO(mriedem): Remove preserve_ports once juno-eol happens."},{"line_number":374,"context_line":"    cfg.BoolOpt(\u0027preserve_ports\u0027,"},{"line_number":375,"context_line":"                default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":8,"id":"9aa53dc9_6e40c334","line":372,"updated":"2015-04-09 17:43:09.000000000","message":"You should add a TODO like this for when we can remove the option.","commit_id":"cb8b926f161820ccfd3989728025636dfe33eb91"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"00a203e1920097d74738d9fff3c8d6fc5e367656","unresolved":false,"context_lines":[{"line_number":369,"context_line":"                     \u0027images of running instances?\u0027),"},{"line_number":370,"context_line":"    cfg.BoolOpt(\u0027ec2_api\u0027,"},{"line_number":371,"context_line":"                default\u003dTrue,"},{"line_number":372,"context_line":"                help\u003d\u0027Does the test environment have the ec2 api running?\u0027),"},{"line_number":373,"context_line":"    # TODO(mriedem): Remove preserve_ports once juno-eol happens."},{"line_number":374,"context_line":"    cfg.BoolOpt(\u0027preserve_ports\u0027,"},{"line_number":375,"context_line":"                default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":8,"id":"9aa53dc9_51d22e5d","line":372,"in_reply_to":"9aa53dc9_6e40c334","updated":"2015-04-10 07:10:14.000000000","message":"Done","commit_id":"cb8b926f161820ccfd3989728025636dfe33eb91"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"1f5607b3ba01255feeafbed0312fbc7650e5ed21","unresolved":false,"context_lines":[{"line_number":335,"context_line":"    # TODO(gilliard): Remove live_migrate_paused_instances at juno-eol."},{"line_number":336,"context_line":"    cfg.BoolOpt(\u0027live_migrate_paused_instances\u0027,"},{"line_number":337,"context_line":"                default\u003dFalse,"},{"line_number":338,"context_line":"                help\u003d\"Does the test system allow live-migration of paused \""},{"line_number":339,"context_line":"                \"instances? Note, this is more than just the ANDing of \""},{"line_number":340,"context_line":"                \"paused and live_migrate, but all 3 should be set to True \""},{"line_number":341,"context_line":"                \"to run those tests\"),"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aaa499b_8ed7d2be","line":338,"updated":"2015-04-14 14:12:55.000000000","message":"It\u0027s nothing but we use \u0027test environment support\u0027 (not test system allow) everywhere else in this file.","commit_id":"01cddfb7f108a431814fc5f1ec40b289c01dbaa0"}]}
