)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"d71c24a2f54092436451c3d2c9afde0a583b226a","unresolved":false,"context_lines":[{"line_number":14,"context_line":"between the keys being set/get in filter_properties. So during a"},{"line_number":15,"context_line":"reschedule with a server group, we hit an exception"},{"line_number":16,"context_line":"\"\u0027NoneType\u0027 object is not iterable\" in the RequestSpec.from_primitives"},{"line_number":17,"context_line":"method and the reschedule fails."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This adds \u0027group_members\u0027 to the _to_legacy_group_info method to set"},{"line_number":20,"context_line":"the key."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7f515b1d_39ec57f2","line":17,"updated":"2017-10-04 16:44:19.000000000","message":"FWIW I guess we introduced the regression when https://github.com/openstack/nova/commit/e3396e1e was merged.","commit_id":"9d6632a67d91fb3c5145c14ac38011e919d6d8c0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"369e84a6921078e3d4a61a3ffa28b3692f0a909a","unresolved":false,"context_lines":[{"line_number":14,"context_line":"between the keys being set/get in filter_properties. So during a"},{"line_number":15,"context_line":"reschedule with a server group, we hit an exception"},{"line_number":16,"context_line":"\"\u0027NoneType\u0027 object is not iterable\" in the RequestSpec.from_primitives"},{"line_number":17,"context_line":"method and the reschedule fails."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This adds \u0027group_members\u0027 to the _to_legacy_group_info method to set"},{"line_number":20,"context_line":"the key."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7f515b1d_441726ef","line":17,"in_reply_to":"7f515b1d_39ec57f2","updated":"2017-10-04 17:12:14.000000000","message":"No, it was your change in Pike:\n\nhttps://review.openstack.org/#/c/469037","commit_id":"9d6632a67d91fb3c5145c14ac38011e919d6d8c0"}],"nova/tests/functional/regressions/test_bug_1719730.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"493bfe6e46486e25e60cee381f190f554b631597","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        self.admin_api \u003d api_fixture.admin_api"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        # the image fake backend needed for image discovery"},{"line_number":60,"context_line":"        nova.tests.unit.image.fake.stub_out_image_service(self)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        self.start_service(\u0027conductor\u0027)"},{"line_number":63,"context_line":"        self.start_service(\u0027scheduler\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_757b79bd","line":60,"updated":"2017-09-27 20:08:55.000000000","message":"We usually have a reset for this too.\n\nself.addCleanup(nova.tests.unit.image.fake.FakeImageService_reset)","commit_id":"64b60a63d6030bd4c996d7222b53259f2cd1fe06"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"ee1b2dcc32019b2306b0d1f2180060b161b3a105","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        self.admin_api \u003d api_fixture.admin_api"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        # the image fake backend needed for image discovery"},{"line_number":60,"context_line":"        nova.tests.unit.image.fake.stub_out_image_service(self)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        self.start_service(\u0027conductor\u0027)"},{"line_number":63,"context_line":"        self.start_service(\u0027scheduler\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_f011b705","line":60,"in_reply_to":"7f515b1d_757b79bd","updated":"2017-09-27 20:26:07.000000000","message":"Okay, didn\u0027t know that. The test I was working from didn\u0027t use the cleanup (test_bug_1671648).","commit_id":"64b60a63d6030bd4c996d7222b53259f2cd1fe06"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"493bfe6e46486e25e60cee381f190f554b631597","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        self.addCleanup(fake.restore_nodes)"},{"line_number":72,"context_line":"        self.start_service(\u0027compute\u0027, host\u003d\u0027host2\u0027)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        self.useFixture(cast_as_call.CastAsCall(self))"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        self.image_id \u003d self.api.get_images()[0][\u0027id\u0027]"},{"line_number":77,"context_line":"        self.flavor_id \u003d self.api.get_flavors()[0][\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_b55e9141","line":74,"updated":"2017-09-27 20:08:55.000000000","message":"Not sure this is necessary for this test.","commit_id":"64b60a63d6030bd4c996d7222b53259f2cd1fe06"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"ee1b2dcc32019b2306b0d1f2180060b161b3a105","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        self.addCleanup(fake.restore_nodes)"},{"line_number":72,"context_line":"        self.start_service(\u0027compute\u0027, host\u003d\u0027host2\u0027)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        self.useFixture(cast_as_call.CastAsCall(self))"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        self.image_id \u003d self.api.get_images()[0][\u0027id\u0027]"},{"line_number":77,"context_line":"        self.flavor_id \u003d self.api.get_flavors()[0][\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_90ee03eb","line":74,"in_reply_to":"7f515b1d_b55e9141","updated":"2017-09-27 20:26:07.000000000","message":"Hm, yeah, probably not in this case. We\u0027re going to wait for a state change after requesting the new server, so having things be async seems like it should still work.","commit_id":"64b60a63d6030bd4c996d7222b53259f2cd1fe06"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"493bfe6e46486e25e60cee381f190f554b631597","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        hints \u003d {\u0027group\u0027: created_group[\u0027id\u0027]}"},{"line_number":111,"context_line":"        created_server \u003d self.api.post_server({\u0027server\u0027: server,"},{"line_number":112,"context_line":"                                               \u0027os:scheduler_hints\u0027: hints})"},{"line_number":113,"context_line":"        found_server \u003d self._wait_for_state_change(self.admin_api,"},{"line_number":114,"context_line":"                                                   created_server, \u0027ACTIVE\u0027)"},{"line_number":115,"context_line":"        # Assert that the host is not the failed host."},{"line_number":116,"context_line":"        self.assertNotEqual(self.failed_host,"},{"line_number":117,"context_line":"                            found_server[\u0027OS-EXT-SRV-ATTR:host\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_b5b0d18b","line":114,"range":{"start_line":113,"start_character":8,"end_line":114,"end_character":76},"updated":"2017-09-27 20:08:55.000000000","message":"Yup, if you remove the fix, you get this:\n\nCaptured traceback:\n~~~~~~~~~~~~~~~~~~~\n    Traceback (most recent call last):\n      File \"nova/tests/functional/regressions/test_bug_1719730.py\", line 114, in test_reschedule_with_server_group\n        created_server, \u0027ACTIVE\u0027)\n      File \"nova/tests/functional/integrated_helpers.py\", line 241, in _wait_for_state_change\n        admin_api, server, {\u0027status\u0027: expected_status}, max_retries)\n      File \"nova/tests/functional/integrated_helpers.py\", line 233, in _wait_for_server_parameter\n        % (expected_params, server))\n      File \"/home/user/git/nova/.tox/functional/local/lib/python2.7/site-packages/unittest2/case.py\", line 690, in fail\n        raise self.failureException(msg)\n    AssertionError: Wait for state change failed, expected_params\u003d{\u0027status\u0027: \u0027ACTIVE\u0027}, server\u003d{u\u0027accessIPv6\u0027: u\u0027\u0027, u\u0027id\u0027: u\u0027859f6275-fc71-4a3f-af40-7aee9b5e2a18\u0027, u\u0027OS-DCF:diskConfig\u0027: u\u0027AUTO\u0027, u\u0027config_drive\u0027: u\u0027\u0027, u\u0027name\u0027: u\u0027retry-with-server-group\u0027, u\u0027addresses\u0027: {}, u\u0027image\u0027: {u\u0027id\u0027: u\u002770a599e0-31e7-49b7-b260-868f441e862b\u0027, u\u0027links\u0027: [{u\u0027href\u0027: u\u0027http://43595c8e-b0de-46a1-b3ac-0d9090455f54/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b\u0027, u\u0027rel\u0027: u\u0027bookmark\u0027}]}, u\u0027accessIPv4\u0027: u\u0027\u0027, u\u0027user_id\u0027: u\u0027fake\u0027, u\u0027tenant_id\u0027: u\u00276f70656e737461636b20342065766572\u0027, u\u0027metadata\u0027: {}, u\u0027fault\u0027: {u\u0027code\u0027: 500, u\u0027message\u0027: u\"\u0027NoneType\u0027 object is not iterable\", u\u0027created\u0027: u\u00272017-09-27T19:59:38Z\u0027, u\u0027details\u0027: u\u0027  File \"nova/conductor/manager.py\", line 551, in build_instances\\n    context, request_spec, filter_properties)\\n  File \"nova/objects/request_spec.py\", line 264, in from_primitives\\n    spec._populate_group_info(filter_properties)\\n  File \"nova/objects/request_spec.py\", line 205, in _populate_group_info\\n    members \u003d list(filter_properties.get(\\\u0027group_members\\\u0027))\\n\u0027}, u\u0027hostId\u0027: u\u0027\u0027, u\u0027OS-EXT-SRV-ATTR:instance_name\u0027: u\u0027instance-00000001\u0027, u\u0027OS-EXT-SRV-ATTR:hypervisor_hostname\u0027: None, u\u0027OS-EXT-STS:task_state\u0027: None, u\u0027key_name\u0027: None, u\u0027OS-SRV-USG:launched_at\u0027: None, u\u0027flavor\u0027: {u\u0027id\u0027: u\u00271\u0027, u\u0027links\u0027: [{u\u0027href\u0027: u\u0027http://43595c8e-b0de-46a1-b3ac-0d9090455f54/6f70656e737461636b20342065766572/flavors/1\u0027, u\u0027rel\u0027: u\u0027bookmark\u0027}]}, u\u0027created\u0027: u\u00272017-09-27T19:59:37Z\u0027, u\u0027OS-EXT-AZ:availability_zone\u0027: u\u0027nova\u0027, u\u0027OS-EXT-STS:vm_state\u0027: u\u0027error\u0027, u\u0027status\u0027: u\u0027ERROR\u0027, u\u0027OS-EXT-SRV-ATTR:host\u0027: None, u\u0027OS-EXT-STS:power_state\u0027: 0, u\u0027updated\u0027: u\u00272017-09-27T19:59:38Z\u0027, u\u0027links\u0027: [{u\u0027href\u0027: u\u0027http://43595c8e-b0de-46a1-b3ac-0d9090455f54/v2.1/6f70656e737461636b20342065766572/servers/859f6275-fc71-4a3f-af40-7aee9b5e2a18\u0027, u\u0027rel\u0027: u\u0027self\u0027}, {u\u0027href\u0027: u\u0027http://43595c8e-b0de-46a1-b3ac-0d9090455f54/6f70656e737461636b20342065766572/servers/859f6275-fc71-4a3f-af40-7aee9b5e2a18\u0027, u\u0027rel\u0027: u\u0027bookmark\u0027}], u\u0027os-extended-volumes:volumes_attached\u0027: [], u\u0027OS-SRV-USG:terminated_at\u0027: None}\n\nAnd the fault is in there from the bug:\n\nu\u0027status\u0027: u\u0027ERROR\u0027\n\nu\u0027message\u0027: u\"\u0027NoneType\u0027 object is not iterable\"","commit_id":"64b60a63d6030bd4c996d7222b53259f2cd1fe06"}]}
