)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d3dcd8c1a9f4ebdeb6d69f691fd01797d7e9af70","unresolved":false,"context_lines":[{"line_number":17,"context_line":"is shown in the existing functional test modified here."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"The more important reason for this change is that in"},{"line_number":20,"context_line":"order to fix bug 1756179, we need to make sure the"},{"line_number":21,"context_line":"resource provider allocations for a given compute node"},{"line_number":22,"context_line":"are gone by the time the compute service is deleted."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bf659307_9e94f938","line":20,"range":{"start_line":20,"start_character":13,"end_line":20,"end_character":24},"updated":"2018-04-12 01:47:28.000000000","message":"Should probably add a Related-Bug item for this below.","commit_id":"e078a088b73942c49640e610b4462be422399eaa"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d3dcd8c1a9f4ebdeb6d69f691fd01797d7e9af70","unresolved":false,"context_lines":[{"line_number":24,"context_line":"This adds a new functional test and a release note for"},{"line_number":25,"context_line":"the new behavior and need to configure nova-api for"},{"line_number":26,"context_line":"talking to placement, which should be idempotent if"},{"line_number":27,"context_line":"not configured thanks for the @safe_connect decorator"},{"line_number":28,"context_line":"used in SchedulerReportClient."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Change-Id: If507e23f0b7e5fa417041c3870d77786498f741d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bf659307_3e95ad32","line":27,"range":{"start_line":27,"start_character":22,"end_line":27,"end_character":25},"updated":"2018-04-12 01:47:28.000000000","message":"to","commit_id":"e078a088b73942c49640e610b4462be422399eaa"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d9c6eda6a7a76962ed9c3809c59e6880363c4440","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"It should be noted that without this change, restarting"},{"line_number":14,"context_line":"the nova-compute service will delete the allocations"},{"line_number":15,"context_line":"for it\u0027s compute node (assuming the compute node UUID"},{"line_number":16,"context_line":"is the same as before the instance was deleted). That"},{"line_number":17,"context_line":"is shown in the existing functional test modified here."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9f6a8fd7_9af3f773","line":15,"range":{"start_line":15,"start_character":4,"end_line":15,"end_character":8},"updated":"2018-04-18 15:53:55.000000000","message":"its","commit_id":"1afd5a797b7e38ccf1e5980fb658d642211e358a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3778989e7d02d6301100d20758532fcc87d71896","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"It should be noted that without this change, restarting"},{"line_number":14,"context_line":"the nova-compute service will delete the allocations"},{"line_number":15,"context_line":"for it\u0027s compute node (assuming the compute node UUID"},{"line_number":16,"context_line":"is the same as before the instance was deleted). That"},{"line_number":17,"context_line":"is shown in the existing functional test modified here."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9f6a8fd7_3f7090a5","line":15,"range":{"start_line":15,"start_character":4,"end_line":15,"end_character":8},"in_reply_to":"9f6a8fd7_9af3f773","updated":"2018-04-18 23:05:01.000000000","message":"Done","commit_id":"1afd5a797b7e38ccf1e5980fb658d642211e358a"}],"nova/compute/api.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6099e8657ffdb4b1b4a2ff7a27fe469c96fa15e3","unresolved":false,"context_lines":[{"line_number":252,"context_line":"        self.image_api \u003d image_api or image.API()"},{"line_number":253,"context_line":"        self.network_api \u003d network_api or network.API()"},{"line_number":254,"context_line":"        self.volume_api \u003d volume_api or cinder.API()"},{"line_number":255,"context_line":"        self.placementclient \u003d reportclient.SchedulerReportClient()"},{"line_number":256,"context_line":"        self.security_group_api \u003d (security_group_api or"},{"line_number":257,"context_line":"            openstack_driver.get_openstack_security_group_driver())"},{"line_number":258,"context_line":"        self.consoleauth_rpcapi \u003d consoleauth_rpcapi.ConsoleAuthAPI()"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_cf03650c","line":255,"range":{"start_line":255,"start_character":8,"end_line":255,"end_character":67},"updated":"2018-04-13 19:10:57.000000000","message":"Should probably use the lazy load version of this because as it is, every API controller extension has to load this up which results in a lot of DEBUG logging messages on startup:\n\nApr 13 19:01:16 rocky devstack@n-api.service[2352]: DEBUG oslo_concurrency.lockutils [None req-828b1d07-05be-4246-860a-198e88f10e73 None None] Lock \"placement_client\" released by \"nova.scheduler.client.report._create_client\" :: held 0.001s {{(pid\u003d2355) inner /usr/local/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py:285}}\nApr 13 19:01:16 rocky devstack@n-api.service[2352]: DEBUG oslo_concurrency.lockutils [None req-828b1d07-05be-4246-860a-198e88f10e73 None None] Lock \"placement_client\" acquired by \"nova.scheduler.client.report._create_client\" :: waited 0.000s {{(pid\u003d2355) inner /usr/local/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py:273}}\nApr 13 19:01:16 rocky devstack@n-api.service[2352]: DEBUG oslo_concurrency.lockutils [None req-828b1d07-05be-4246-860a-198e88f10e73 None None] Lock \"placement_client\" released by \"nova.scheduler.client.report._create_client\" :: held 0.001s {{(pid\u003d2355) inner /usr/local/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py:285}}\n\nWhen we really only care about using this (right now anyway) for the servers extension.","commit_id":"e078a088b73942c49640e610b4462be422399eaa"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ac67f3c3100e025be815fcec1fca2cdfdf597dbd","unresolved":false,"context_lines":[{"line_number":252,"context_line":"        self.image_api \u003d image_api or image.API()"},{"line_number":253,"context_line":"        self.network_api \u003d network_api or network.API()"},{"line_number":254,"context_line":"        self.volume_api \u003d volume_api or cinder.API()"},{"line_number":255,"context_line":"        self.placementclient \u003d reportclient.SchedulerReportClient()"},{"line_number":256,"context_line":"        self.security_group_api \u003d (security_group_api or"},{"line_number":257,"context_line":"            openstack_driver.get_openstack_security_group_driver())"},{"line_number":258,"context_line":"        self.consoleauth_rpcapi \u003d consoleauth_rpcapi.ConsoleAuthAPI()"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_72a8fc8a","line":255,"range":{"start_line":255,"start_character":8,"end_line":255,"end_character":67},"in_reply_to":"bf659307_cf03650c","updated":"2018-04-13 20:41:54.000000000","message":"Also seen in the CI logs here:\n\nhttp://logs.openstack.org/06/560706/1/check/tempest-full/129b2f6/controller/logs/screen-n-api.txt.gz#_Apr_12_21_14_51_638564","commit_id":"e078a088b73942c49640e610b4462be422399eaa"}],"nova/tests/functional/regressions/test_bug_1679750.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"92c3257e9634615cf321941bbff49da1ef5e7b95","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        compute host is down) and we want to make sure that its allocations"},{"line_number":88,"context_line":"        have been cleaned up once the nova-compute service restarts."},{"line_number":89,"context_line":"        \"\"\""},{"line_number":90,"context_line":"        self._stub_compute_api_to_not_configure_placement()"},{"line_number":91,"context_line":"        # Get allocations, make sure they are 0."},{"line_number":92,"context_line":"        resp \u003d self.placement_api.get(\u0027/resource_providers\u0027)"},{"line_number":93,"context_line":"        rp_uuid \u003d resp.body[\u0027resource_providers\u0027][0][\u0027uuid\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_6f9c990d","line":90,"updated":"2018-04-13 19:55:58.000000000","message":"Hmm, just thought of this, but I think fixtures can be used as context managers, so if we moved the PlacementFixture usage into each test case, then we could simply use it around the sections of code that need it, like creating the server and then restarting the compute.","commit_id":"e078a088b73942c49640e610b4462be422399eaa"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"415afb4319c87b00e6f2f9652552400a30d27fb3","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        compute host is down) and we want to make sure that its allocations"},{"line_number":88,"context_line":"        have been cleaned up once the nova-compute service restarts."},{"line_number":89,"context_line":"        \"\"\""},{"line_number":90,"context_line":"        self._stub_compute_api_to_not_configure_placement()"},{"line_number":91,"context_line":"        # Get allocations, make sure they are 0."},{"line_number":92,"context_line":"        resp \u003d self.placement_api.get(\u0027/resource_providers\u0027)"},{"line_number":93,"context_line":"        rp_uuid \u003d resp.body[\u0027resource_providers\u0027][0][\u0027uuid\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_354cae40","line":90,"in_reply_to":"bf659307_1200a001","updated":"2018-04-13 20:53:29.000000000","message":"Well, it would work but there seems to be some strange issue with the fixtures, maybe the fixture doesn\u0027t cleanup after itself properly?\n\nnova.tests.functional.regressions.test_bug_1679750.TestLocalDeleteAllocations.test_local_delete_removes_allocations_after_compute_restart\n-----------------------------------------------------------------------------------------------------------------------------------------\n\nCaptured stderr:\n~~~~~~~~~~~~~~~~\n    /home/osboxes/git/nova/.tox/functional/local/lib/python2.7/site-packages/paste/deploy/loadwsgi.py:22: DeprecationWarning: Parameters to load are deprecated.  Call .resolve and .require separately.\n      return pkg_resources.EntryPoint.parse(\"x\u003d\" + s).load(False)\n    \n\nCaptured traceback:\n~~~~~~~~~~~~~~~~~~~\n    Traceback (most recent call last):\n      File \"nova/tests/functional/regressions/test_bug_1679750.py\", line 115, in test_local_delete_removes_allocations_after_compute_restart\n        self.api.delete_server(server[\u0027id\u0027])\n      File \"nova/tests/functional/api/client.py\", line 286, in delete_server\n        return self.api_delete(\u0027/servers/%s\u0027 % server_id)\n      File \"nova/tests/functional/api/client.py\", line 239, in api_delete\n        return APIResponse(self.api_request(relative_uri, **kwargs))\n      File \"nova/tests/functional/api/client.py\", line 187, in api_request\n        response \u003d self.request(full_uri, **kwargs)\n      File \"nova/tests/functional/api/client.py\", line 134, in request\n        response \u003d requests.request(method, url, data\u003dbody, headers\u003d_headers)\n      File \"/home/osboxes/git/nova/.tox/functional/local/lib/python2.7/site-packages/requests/api.py\", line 58, in request\n        return session.request(method\u003dmethod, url\u003durl, **kwargs)\n      File \"/home/osboxes/git/nova/.tox/functional/local/lib/python2.7/site-packages/requests/sessions.py\", line 508, in request\n        resp \u003d self.send(prep, **send_kwargs)\n      File \"/home/osboxes/git/nova/.tox/functional/local/lib/python2.7/site-packages/requests/sessions.py\", line 618, in send\n        r \u003d adapter.send(request, **kwargs)\n      File \"/home/osboxes/git/nova/.tox/functional/local/lib/python2.7/site-packages/requests/adapters.py\", line 508, in send\n        raise ConnectionError(e, request\u003drequest)\n    requests.exceptions.ConnectionError: HTTPConnectionPool(host\u003d\u002776376365-afd1-4f6d-9697-a0face812d5c\u0027, port\u003d80): Max retries exceeded with url: /v2.1/6f70656e737461636b20342065766572//servers/ee29ce1f-ca1e-4466-84cd-23d57bb70206 (Caused by NewConnectionError(\u0027\u003curllib3.connection.HTTPConnection object at 0x7f684042b7d0\u003e: Failed to establish a new connection: [Errno -3] Lookup timed out\u0027,))","commit_id":"e078a088b73942c49640e610b4462be422399eaa"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e4cbef31f9c2684eed93f25f94b8754f472c4037","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        compute host is down) and we want to make sure that its allocations"},{"line_number":88,"context_line":"        have been cleaned up once the nova-compute service restarts."},{"line_number":89,"context_line":"        \"\"\""},{"line_number":90,"context_line":"        self._stub_compute_api_to_not_configure_placement()"},{"line_number":91,"context_line":"        # Get allocations, make sure they are 0."},{"line_number":92,"context_line":"        resp \u003d self.placement_api.get(\u0027/resource_providers\u0027)"},{"line_number":93,"context_line":"        rp_uuid \u003d resp.body[\u0027resource_providers\u0027][0][\u0027uuid\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_6047c61e","line":90,"in_reply_to":"bf659307_354cae40","updated":"2018-04-13 21:42:58.000000000","message":"I\u0027m guessing when we go to delete the server, the compute api is trying to hit ksa for placement which since the fixture isn\u0027t in place it hangs, so I\u0027ll likely have mock just around the delete_server call.","commit_id":"e078a088b73942c49640e610b4462be422399eaa"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ac67f3c3100e025be815fcec1fca2cdfdf597dbd","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        compute host is down) and we want to make sure that its allocations"},{"line_number":88,"context_line":"        have been cleaned up once the nova-compute service restarts."},{"line_number":89,"context_line":"        \"\"\""},{"line_number":90,"context_line":"        self._stub_compute_api_to_not_configure_placement()"},{"line_number":91,"context_line":"        # Get allocations, make sure they are 0."},{"line_number":92,"context_line":"        resp \u003d self.placement_api.get(\u0027/resource_providers\u0027)"},{"line_number":93,"context_line":"        rp_uuid \u003d resp.body[\u0027resource_providers\u0027][0][\u0027uuid\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_1200a001","line":90,"in_reply_to":"bf659307_6f9c990d","updated":"2018-04-13 20:41:54.000000000","message":"Yup that works and is much cleaner, will do that.","commit_id":"e078a088b73942c49640e610b4462be422399eaa"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d3dcd8c1a9f4ebdeb6d69f691fd01797d7e9af70","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        # Delete the server (will be a local delete because compute is down)."},{"line_number":116,"context_line":"        self.api.delete_server(server[\u0027id\u0027])"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        # Assert usages are still non-zero."},{"line_number":119,"context_line":"        usages_during \u003d self._get_usages(rp_uuid)"},{"line_number":120,"context_line":"        for usage in usages_during.values():"},{"line_number":121,"context_line":"            self.assertNotEqual(0, usage)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        # Start the compute service again. Before it comes up, it will call the"},{"line_number":124,"context_line":"        # update_available_resource code in the ResourceTracker which is what"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_debef1ac","line":121,"range":{"start_line":118,"start_character":8,"end_line":121,"end_character":41},"updated":"2018-04-12 01:47:28.000000000","message":"The diff doesn\u0027t make it obvious, but I added this because otherwise you can\u0027t tell if the allocations are deleted from the API or from the compute service restarting, and if you don\u0027t stub out the compute API above this will fail.","commit_id":"e078a088b73942c49640e610b4462be422399eaa"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dc2481c58b16ff401da6bbd798c4aaa6512fe065","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        resp \u003d self.placement_api.get(fmt % {\u0027uuid\u0027: rp_uuid})"},{"line_number":57,"context_line":"        return resp.body[\u0027usages\u0027]"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    # NOTE(mriedem): It would be preferable to use the PlacementFixture as"},{"line_number":60,"context_line":"    # a context manager but that causes some issues when trying to delete the"},{"line_number":61,"context_line":"    # server in test_local_delete_removes_allocations_after_compute_restart."},{"line_number":62,"context_line":"    def _stub_compute_api_to_not_configure_placement(self):"},{"line_number":63,"context_line":"        \"\"\"Prior to the compute API deleting allocations in the \"local delete\""},{"line_number":64,"context_line":"        case, nova.conf for nova-api might not be configured for talking to"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_e0bc36bc","line":61,"range":{"start_line":59,"start_character":4,"end_line":61,"end_character":76},"updated":"2018-04-13 21:55:04.000000000","message":"@cdent: This is the thing I was having trouble with per:\n\nhttp://paste.openstack.org/show/719198/\n\nhttp://paste.openstack.org/show/719199/","commit_id":"1afd5a797b7e38ccf1e5980fb658d642211e358a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6931d5b1490be0c8051a92f98220cf8f2e9002aa","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        resp \u003d self.placement_api.get(fmt % {\u0027uuid\u0027: rp_uuid})"},{"line_number":57,"context_line":"        return resp.body[\u0027usages\u0027]"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    # NOTE(mriedem): It would be preferable to use the PlacementFixture as"},{"line_number":60,"context_line":"    # a context manager but that causes some issues when trying to delete the"},{"line_number":61,"context_line":"    # server in test_local_delete_removes_allocations_after_compute_restart."},{"line_number":62,"context_line":"    def _stub_compute_api_to_not_configure_placement(self):"},{"line_number":63,"context_line":"        \"\"\"Prior to the compute API deleting allocations in the \"local delete\""},{"line_number":64,"context_line":"        case, nova.conf for nova-api might not be configured for talking to"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_fab7af85","line":61,"range":{"start_line":59,"start_character":4,"end_line":61,"end_character":76},"in_reply_to":"bf659307_e0bc36bc","updated":"2018-04-17 15:58:00.000000000","message":"Cleaned this up at the end of the series:\n\nhttps://review.openstack.org/#/c/561997/\n\nI\u0027m doing it at the end since it depends on a new version of wsgi-intercept which would prevent us from backporting that change.","commit_id":"1afd5a797b7e38ccf1e5980fb658d642211e358a"}],"nova/tests/functional/wsgi/test_services.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"5e1decef2b59ea32c20431cbb8f96233ba39f869","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        # in a 404 response."},{"line_number":121,"context_line":"        resp \u003d self.placement_api.get(\u0027/resource_providers/%s\u0027 % rp_uuid)"},{"line_number":122,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":123,"context_line":"        # Assert the allocations still exist for the server against the"},{"line_number":124,"context_line":"        # compute node resource provider. Once the bug is fixed, there should"},{"line_number":125,"context_line":"        # be no allocations for the server."},{"line_number":126,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(server[\u0027id\u0027])"},{"line_number":127,"context_line":"        self.assertEqual(1, len(allocations))"},{"line_number":128,"context_line":"        allocation \u003d allocations[rp_uuid][\u0027resources\u0027]"},{"line_number":129,"context_line":"        self.assertFlavorMatchesAllocation(flavor, allocation)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f6a8fd7_338bdf1f","side":"PARENT","line":129,"range":{"start_line":123,"start_character":0,"end_line":129,"end_character":62},"updated":"2018-04-19 12:44:42.000000000","message":"This got lost\n\nAfter I made you refactor and rebase the whole series :(","commit_id":"42f62f1ed2ad76829eb9d40a8b9646a523f6381f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d98d3b6f6ced5538f614cb1c523299dec58b365e","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        # in a 404 response."},{"line_number":121,"context_line":"        resp \u003d self.placement_api.get(\u0027/resource_providers/%s\u0027 % rp_uuid)"},{"line_number":122,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":123,"context_line":"        # Assert the allocations still exist for the server against the"},{"line_number":124,"context_line":"        # compute node resource provider. Once the bug is fixed, there should"},{"line_number":125,"context_line":"        # be no allocations for the server."},{"line_number":126,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(server[\u0027id\u0027])"},{"line_number":127,"context_line":"        self.assertEqual(1, len(allocations))"},{"line_number":128,"context_line":"        allocation \u003d allocations[rp_uuid][\u0027resources\u0027]"},{"line_number":129,"context_line":"        self.assertFlavorMatchesAllocation(flavor, allocation)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f6a8fd7_859373a3","side":"PARENT","line":129,"range":{"start_line":123,"start_character":0,"end_line":129,"end_character":62},"in_reply_to":"9f6a8fd7_338bdf1f","updated":"2018-04-19 22:24:13.000000000","message":"This is intentionally removed since _delete_and_check_allocations already does it.","commit_id":"42f62f1ed2ad76829eb9d40a8b9646a523f6381f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"5839b3ec96cbec472faf439f1359998dd3e2c33d","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        # in a 404 response."},{"line_number":121,"context_line":"        resp \u003d self.placement_api.get(\u0027/resource_providers/%s\u0027 % rp_uuid)"},{"line_number":122,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":123,"context_line":"        # Assert the allocations still exist for the server against the"},{"line_number":124,"context_line":"        # compute node resource provider. Once the bug is fixed, there should"},{"line_number":125,"context_line":"        # be no allocations for the server."},{"line_number":126,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(server[\u0027id\u0027])"},{"line_number":127,"context_line":"        self.assertEqual(1, len(allocations))"},{"line_number":128,"context_line":"        allocation \u003d allocations[rp_uuid][\u0027resources\u0027]"},{"line_number":129,"context_line":"        self.assertFlavorMatchesAllocation(flavor, allocation)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f6a8fd7_a599d76e","side":"PARENT","line":129,"range":{"start_line":123,"start_character":0,"end_line":129,"end_character":62},"in_reply_to":"9f6a8fd7_859373a3","updated":"2018-04-19 22:39:54.000000000","message":"Oh, my bad, I thought we needed to check again after deleting the service.  But that doesn\u0027t make sense if it\u0027s already gone after deleting the instance.","commit_id":"42f62f1ed2ad76829eb9d40a8b9646a523f6381f"}],"releasenotes/notes/bug-1679750-local-delete-allocations-cb7bfbcb6c36b6a2.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e75fc91e1951be530bb28ca585511de63c5ad5b5","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    that service. This is because the ``nova-api`` service now needs to talk"},{"line_number":7,"context_line":"    to the placement service in order to delete resource provider allocations"},{"line_number":8,"context_line":"    when deleting an instance and the ``nova-compute`` service on which that"},{"line_number":9,"context_line":"    instance is running is down. This change should be idempotent if"},{"line_number":10,"context_line":"    ``[placement]`` is not configured in ``nova-api`` but it will result in"},{"line_number":11,"context_line":"    new warnings in the logs until configured. See bug"},{"line_number":12,"context_line":"    https://bugs.launchpad.net/nova/+bug/1679750 for more details."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"bf659307_af4e316c","line":11,"range":{"start_line":9,"start_character":33,"end_line":11,"end_character":46},"updated":"2018-04-13 19:14:22.000000000","message":"I\u0027m testing this out in devstack right now, will post results when that\u0027s done. WIP until then.","commit_id":"e078a088b73942c49640e610b4462be422399eaa"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c98b190afdd3286488f6de535ff2e2126458d393","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    that service. This is because the ``nova-api`` service now needs to talk"},{"line_number":7,"context_line":"    to the placement service in order to delete resource provider allocations"},{"line_number":8,"context_line":"    when deleting an instance and the ``nova-compute`` service on which that"},{"line_number":9,"context_line":"    instance is running is down. This change should be idempotent if"},{"line_number":10,"context_line":"    ``[placement]`` is not configured in ``nova-api`` but it will result in"},{"line_number":11,"context_line":"    new warnings in the logs until configured. See bug"},{"line_number":12,"context_line":"    https://bugs.launchpad.net/nova/+bug/1679750 for more details."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"bf659307_4ff515ca","line":11,"range":{"start_line":9,"start_character":33,"end_line":11,"end_character":46},"in_reply_to":"bf659307_af4e316c","updated":"2018-04-13 19:28:54.000000000","message":"Works like a charm:\n\nhttp://paste.openstack.org/show/719188/","commit_id":"e078a088b73942c49640e610b4462be422399eaa"}]}
