)]}'
{"nova/cmd/manage.py":[{"author":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"change_message_id":"81885cbd46a06e7ae76a4a1ecf5cb7d9acf8b077","unresolved":false,"context_lines":[{"line_number":1789,"context_line":"        # TODO(mriedem): Store a marker in system_metadata so we can"},{"line_number":1790,"context_line":"        # automatically pick up where we left off without the user having"},{"line_number":1791,"context_line":"        # to pass it in (if unlimited is False)."},{"line_number":1792,"context_line":"        filters \u003d {\u0027deleted\u0027: False}"},{"line_number":1793,"context_line":"        instances \u003d objects.InstanceList.get_by_filters("},{"line_number":1794,"context_line":"            ctxt, filters\u003dfilters, sort_key\u003d\u0027created_at\u0027, sort_dir\u003d\u0027asc\u0027,"},{"line_number":1795,"context_line":"            limit\u003dmax_count, expected_attrs\u003d[\u0027flavor\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_d0f9c14d","line":1792,"updated":"2018-06-13 20:25:02.000000000","message":"+1","commit_id":"386686b0eed26107037679418ba81ef5ecebaee6"}],"nova/tests/functional/test_nova_manage.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"4a394e44aef3ef0140512f2830ab40dcaeacfe28","unresolved":false,"context_lines":[{"line_number":571,"context_line":"        # Assert something was logged for this instance when it was skipped."},{"line_number":572,"context_line":"        self.assertIn(\u0027Instance %s is undergoing a task state transition: \u0027"},{"line_number":573,"context_line":"                      \u0027pausing\u0027 % server[\u0027id\u0027], self.output.getvalue())"},{"line_number":574,"context_line":""},{"line_number":575,"context_line":"    def test_heal_allocations_ignore_deleted_server(self):"},{"line_number":576,"context_line":"        \"\"\"Creates a server, deletes it, and then runs heal_allocations"},{"line_number":577,"context_line":"        to make sure deleted servers are filtered out."}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_870076ad","line":574,"updated":"2018-06-19 19:51:44.000000000","message":"This only hits the first get_by_filters call.  When I revert the filters on the second one, it still passes.\n\nThis covers both:\n\n diff --git a/nova/tests/functional/test_nova_manage.py b/nova/tests/functional/test_nova_manage.py\n index a28e7ea..c92f15e 100644\n --- a/nova/tests/functional/test_nova_manage.py\n +++ b/nova/tests/functional/test_nova_manage.py\n @@ -573,12 +573,15 @@ class TestNovaManagePlacementHealAllocations(\n                        \u0027pausing\u0027 % server[\u0027id\u0027], self.output.getvalue())\n  \n      def test_heal_allocations_ignore_deleted_server(self):\n -        \"\"\"Creates a server, deletes it, and then runs heal_allocations\n +        \"\"\"Creates two servers, deletes one, and then runs heal_allocations\n          to make sure deleted servers are filtered out.\n          \"\"\"\n +        # Create a server that we\u0027ll leave alive\n +        self._boot_and_assert_no_allocations(self.flavor, \u0027cell1\u0027)\n +        # and another that we\u0027ll delete\n          server, _ \u003d self._boot_and_assert_no_allocations(self.flavor, \u0027cell1\u0027)\n          self.api.delete_server(server[\u0027id\u0027])\n          self._wait_until_deleted(server)\n          result \u003d self.cli.heal_allocations(verbose\u003dTrue)\n -        self.assertEqual(4, result, self.output.getvalue())\n -        self.assertIn(\u0027Processed 0 instances.\u0027, self.output.getvalue())\n +        self.assertEqual(0, result, self.output.getvalue())\n +        self.assertIn(\u0027Processed 1 instances.\u0027, self.output.getvalue())","commit_id":"386686b0eed26107037679418ba81ef5ecebaee6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d3f6cbe6343b8ba4695178afc8f1f10a857746e2","unresolved":false,"context_lines":[{"line_number":571,"context_line":"        # Assert something was logged for this instance when it was skipped."},{"line_number":572,"context_line":"        self.assertIn(\u0027Instance %s is undergoing a task state transition: \u0027"},{"line_number":573,"context_line":"                      \u0027pausing\u0027 % server[\u0027id\u0027], self.output.getvalue())"},{"line_number":574,"context_line":""},{"line_number":575,"context_line":"    def test_heal_allocations_ignore_deleted_server(self):"},{"line_number":576,"context_line":"        \"\"\"Creates a server, deletes it, and then runs heal_allocations"},{"line_number":577,"context_line":"        to make sure deleted servers are filtered out."}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_aab1b746","line":574,"in_reply_to":"5f7c97a3_870076ad","updated":"2018-06-19 20:40:05.000000000","message":"Ack, thanks, will add this.","commit_id":"386686b0eed26107037679418ba81ef5ecebaee6"}]}
