)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"883cc7095d7b2b8b1d7f0f1eda4cb53c5c56402d","unresolved":false,"context_lines":[{"line_number":630,"context_line":"        task state or RESIZED vm state."},{"line_number":631,"context_line":"        \"\"\""},{"line_number":632,"context_line":"        filters \u003d {"},{"line_number":633,"context_line":"            \u0027include_deleted\u0027: True,"},{"line_number":634,"context_line":"            \u0027source_compute\u0027: self.host,"},{"line_number":635,"context_line":"            \u0027status\u0027: [\u0027accepted\u0027, \u0027done\u0027],"},{"line_number":636,"context_line":"            \u0027migration_type\u0027: \u0027evacuation\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f1d235d_2250725e","line":633,"updated":"2017-07-10 21:47:12.000000000","message":"Rather than change the filters in the DB API, there is an easier way to handle this, you just temporarily mutate the context when reading the migrations using nova.utils.temporary_mutation:\n\nhttps://github.com/openstack/nova/blob/48268c73e3f43fa763d071422816942942987f4a/nova/utils.py#L669\n\nexample usage:\n\nhttps://github.com/openstack/nova/blob/48268c73e3f43fa763d071422816942942987f4a/nova/api/openstack/compute/instance_actions.py#L56","commit_id":"49ef6422428420613c77f8a5c19966b43d1db884"},{"author":{"_account_id":13557,"name":"Matt Rabe","email":"mdrabe@us.ibm.com","username":"mdrabe"},"change_message_id":"973653af0cc63c470d270a4d56826888f0e26e60","unresolved":false,"context_lines":[{"line_number":630,"context_line":"        task state or RESIZED vm state."},{"line_number":631,"context_line":"        \"\"\""},{"line_number":632,"context_line":"        filters \u003d {"},{"line_number":633,"context_line":"            \u0027include_deleted\u0027: True,"},{"line_number":634,"context_line":"            \u0027source_compute\u0027: self.host,"},{"line_number":635,"context_line":"            \u0027status\u0027: [\u0027accepted\u0027, \u0027done\u0027],"},{"line_number":636,"context_line":"            \u0027migration_type\u0027: \u0027evacuation\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f1d235d_c5bd4869","line":633,"in_reply_to":"3f1d235d_2250725e","updated":"2017-07-10 22:52:27.000000000","message":"Cool didn\u0027t know that. Done","commit_id":"49ef6422428420613c77f8a5c19966b43d1db884"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3211c3e8f12d76b17beab586d5bb317a47c59e3c","unresolved":false,"context_lines":[{"line_number":636,"context_line":"            return"},{"line_number":637,"context_line":"        evacuations \u003d {mig.instance_uuid: mig for mig in evacuations}"},{"line_number":638,"context_line":""},{"line_number":639,"context_line":"        filters \u003d {}"},{"line_number":640,"context_line":"        local_instances \u003d self._get_instances_on_driver(context, filters)"},{"line_number":641,"context_line":"        evacuated \u003d [inst for inst in local_instances"},{"line_number":642,"context_line":"                     if inst.uuid in evacuations]"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f1d235d_df629ad8","line":639,"updated":"2017-07-11 14:45:09.000000000","message":"Just remove this and don\u0027t pass anything to _get_instances_on_driver(). It already handles the no filter case.","commit_id":"689bb3c5f4f5868ac81a4727a9d1006a86bfb093"},{"author":{"_account_id":13557,"name":"Matt Rabe","email":"mdrabe@us.ibm.com","username":"mdrabe"},"change_message_id":"6743bf108a528361ed8b35b01b2904403a08b406","unresolved":false,"context_lines":[{"line_number":636,"context_line":"            return"},{"line_number":637,"context_line":"        evacuations \u003d {mig.instance_uuid: mig for mig in evacuations}"},{"line_number":638,"context_line":""},{"line_number":639,"context_line":"        filters \u003d {}"},{"line_number":640,"context_line":"        local_instances \u003d self._get_instances_on_driver(context, filters)"},{"line_number":641,"context_line":"        evacuated \u003d [inst for inst in local_instances"},{"line_number":642,"context_line":"                     if inst.uuid in evacuations]"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f1d235d_035f9c72","line":639,"in_reply_to":"3f1d235d_df629ad8","updated":"2017-07-11 16:12:50.000000000","message":"Done","commit_id":"689bb3c5f4f5868ac81a4727a9d1006a86bfb093"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3211c3e8f12d76b17beab586d5bb317a47c59e3c","unresolved":false,"context_lines":[{"line_number":637,"context_line":"        evacuations \u003d {mig.instance_uuid: mig for mig in evacuations}"},{"line_number":638,"context_line":""},{"line_number":639,"context_line":"        filters \u003d {}"},{"line_number":640,"context_line":"        local_instances \u003d self._get_instances_on_driver(context, filters)"},{"line_number":641,"context_line":"        evacuated \u003d [inst for inst in local_instances"},{"line_number":642,"context_line":"                     if inst.uuid in evacuations]"},{"line_number":643,"context_line":"        for instance in evacuated:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f1d235d_bfe0fe27","line":640,"updated":"2017-07-11 14:45:09.000000000","message":"Note to other reviewers:\n\nSo I think the thing that keeps us from examining deleted instances over and over forever is that this method adds a filter of  only the uuids that the driver reports as running. If we do this cleanup, those instances won\u0027t be running on the driver the next time, and thus we won\u0027t pull those instances.","commit_id":"689bb3c5f4f5868ac81a4727a9d1006a86bfb093"}],"nova/tests/unit/db/test_db_api.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"6b3e9f57930867e9a356fb9ef26e18fda69923f3","unresolved":false,"context_lines":[{"line_number":1596,"context_line":"        filters \u003d {\u0027include_deleted\u0027: True}"},{"line_number":1597,"context_line":"        migrations \u003d db.migration_get_all_by_filters(self.ctxt, filters)"},{"line_number":1598,"context_line":"        self.assertEqual(13, len(migrations))"},{"line_number":1599,"context_line":"        self.assertTrue(any(migration[\u0027deleted\u0027] for migration in migrations))"},{"line_number":1600,"context_line":""},{"line_number":1601,"context_line":"    def test_migration_get_unconfirmed_by_dest_compute(self):"},{"line_number":1602,"context_line":"        # Ensure no migrations are returned."}],"source_content_type":"text/x-python","patch_set":2,"id":"ff0f0b1f_439dec08","line":1599,"updated":"2017-05-25 16:49:45.000000000","message":"Is there supposed to be exactly one?  Then perhaps:\n\n self.assertEqual(1, len((mig for mig in migrations if mig[\u0027deleted\u0027])))","commit_id":"fedd3605df776d3c88075c5fe738e6318de35bd8"},{"author":{"_account_id":13557,"name":"Matt Rabe","email":"mdrabe@us.ibm.com","username":"mdrabe"},"change_message_id":"487f5bec4e568785e39100c7c92f82a2007e637e","unresolved":false,"context_lines":[{"line_number":1596,"context_line":"        filters \u003d {\u0027include_deleted\u0027: True}"},{"line_number":1597,"context_line":"        migrations \u003d db.migration_get_all_by_filters(self.ctxt, filters)"},{"line_number":1598,"context_line":"        self.assertEqual(13, len(migrations))"},{"line_number":1599,"context_line":"        self.assertTrue(any(migration[\u0027deleted\u0027] for migration in migrations))"},{"line_number":1600,"context_line":""},{"line_number":1601,"context_line":"    def test_migration_get_unconfirmed_by_dest_compute(self):"},{"line_number":1602,"context_line":"        # Ensure no migrations are returned."}],"source_content_type":"text/x-python","patch_set":2,"id":"ff0f0b1f_b702bf0a","line":1599,"in_reply_to":"ff0f0b1f_439dec08","updated":"2017-05-25 21:02:18.000000000","message":"Done","commit_id":"fedd3605df776d3c88075c5fe738e6318de35bd8"}]}
