)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f69d765f1ea12f1b55c40a01633cddcae8b69c11","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Func test for migrate reschedule with pinned compute rpc"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds a functional test that reproduce bug 1844788."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Note that the change in to_legacy_request_spec_dict is needed to make it"},{"line_number":12,"context_line":"possible to create a functional test for migrate with re-schedule with"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_7363b8b2","line":9,"range":{"start_line":9,"start_character":53,"end_line":9,"end_character":60},"updated":"2019-09-20 13:52:32.000000000","message":"1843090","commit_id":"1e4e2b02d51ee3ffd7aa3392c2d16b33c454b1f5"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e520a119d6106367c089e6deaac5fd6da287b133","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Func test for migrate reschedule with pinned compute rpc"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds a functional test that reproduce bug 1844788."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Note that the change in to_legacy_request_spec_dict is needed to make it"},{"line_number":12,"context_line":"possible to create a functional test for migrate with re-schedule with"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_050ebb3a","line":9,"range":{"start_line":9,"start_character":53,"end_line":9,"end_character":60},"in_reply_to":"3fa7e38b_7363b8b2","updated":"2019-09-20 15:05:47.000000000","message":"Done","commit_id":"1e4e2b02d51ee3ffd7aa3392c2d16b33c454b1f5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d7a7e945743bee6d2db64789dfd6943a71b3913c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Func test for migrate reschedule with pinned compute rpc"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds a functional test that reproduce bug 1843090."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Related-Bug: #1843090"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3fa7e38b_3970bea5","line":9,"range":{"start_line":9,"start_character":39,"end_line":9,"end_character":48},"updated":"2019-09-20 16:19:08.000000000","message":"reproduces","commit_id":"40a0f7742c8aa309772e074d67a9ea6c8a7514de"}],"nova/objects/request_spec.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f69d765f1ea12f1b55c40a01633cddcae8b69c11","unresolved":false,"context_lines":[{"line_number":393,"context_line":"            req_spec[\u0027num_instances\u0027] \u003d self.fields[\u0027num_instances\u0027].default"},{"line_number":394,"context_line":"        else:"},{"line_number":395,"context_line":"            req_spec[\u0027num_instances\u0027] \u003d self.num_instances"},{"line_number":396,"context_line":"        image_p \u003d self._to_legacy_image()"},{"line_number":397,"context_line":"        # FIXME(gibi): Serialize/Unserialize the legacy dict because of"},{"line_number":398,"context_line":"        # oslo.messaging #1529084 to transform datetime values into strings."},{"line_number":399,"context_line":"        # tl;dr: datetimes in dicts are not accepted as correct values by the"},{"line_number":400,"context_line":"        # rpc fake driver. This is the same issue as noted in"},{"line_number":401,"context_line":"        # nova.compute.rpcapi.ComputeAPI.prep_resize()"},{"line_number":402,"context_line":"        image_p \u003d jsonutils.loads(jsonutils.dumps(image_p))"},{"line_number":403,"context_line":"        req_spec[\u0027image\u0027] \u003d image_p"},{"line_number":404,"context_line":"        req_spec[\u0027instance_properties\u0027] \u003d self._to_legacy_instance()"},{"line_number":405,"context_line":"        if self.obj_attr_is_set(\u0027flavor\u0027):"},{"line_number":406,"context_line":"            req_spec[\u0027instance_type\u0027] \u003d self.flavor"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_3312200b","line":403,"range":{"start_line":396,"start_character":8,"end_line":403,"end_character":35},"updated":"2019-09-20 13:52:32.000000000","message":"Hmm, rather than do this in runtime code, could we instead use a mock wrap to wrap this method and then do the serialize/deserialize dance on the req_spec[\u0027image\u0027] field so it\u0027s restricted to just that test? The mock wrap stuff is nice in that it still calls the method with the same args/kwargs and returns a result, and the wrap function can do something on the result.","commit_id":"1e4e2b02d51ee3ffd7aa3392c2d16b33c454b1f5"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e520a119d6106367c089e6deaac5fd6da287b133","unresolved":false,"context_lines":[{"line_number":393,"context_line":"            req_spec[\u0027num_instances\u0027] \u003d self.fields[\u0027num_instances\u0027].default"},{"line_number":394,"context_line":"        else:"},{"line_number":395,"context_line":"            req_spec[\u0027num_instances\u0027] \u003d self.num_instances"},{"line_number":396,"context_line":"        image_p \u003d self._to_legacy_image()"},{"line_number":397,"context_line":"        # FIXME(gibi): Serialize/Unserialize the legacy dict because of"},{"line_number":398,"context_line":"        # oslo.messaging #1529084 to transform datetime values into strings."},{"line_number":399,"context_line":"        # tl;dr: datetimes in dicts are not accepted as correct values by the"},{"line_number":400,"context_line":"        # rpc fake driver. This is the same issue as noted in"},{"line_number":401,"context_line":"        # nova.compute.rpcapi.ComputeAPI.prep_resize()"},{"line_number":402,"context_line":"        image_p \u003d jsonutils.loads(jsonutils.dumps(image_p))"},{"line_number":403,"context_line":"        req_spec[\u0027image\u0027] \u003d image_p"},{"line_number":404,"context_line":"        req_spec[\u0027instance_properties\u0027] \u003d self._to_legacy_instance()"},{"line_number":405,"context_line":"        if self.obj_attr_is_set(\u0027flavor\u0027):"},{"line_number":406,"context_line":"            req_spec[\u0027instance_type\u0027] \u003d self.flavor"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_e8eed6b2","line":403,"range":{"start_line":396,"start_character":8,"end_line":403,"end_character":35},"in_reply_to":"3fa7e38b_3312200b","updated":"2019-09-20 15:05:47.000000000","message":"Done","commit_id":"1e4e2b02d51ee3ffd7aa3392c2d16b33c454b1f5"}],"nova/tests/functional/regressions/test_bug_1843090.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d7a7e945743bee6d2db64789dfd6943a71b3913c","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class RequestSpecImageSerializationFixture(fixtures.Fixture):"},{"line_number":35,"context_line":"    \"\"\"A fixture to temporary fix oslo.messaging bug #1529084 by serializing"},{"line_number":36,"context_line":"    datetime objects into strings in legacy dicts."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    It seems that the fake rpc driver does not accept datetimes as"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_79287685","line":35,"range":{"start_line":35,"start_character":20,"end_line":35,"end_character":29},"updated":"2019-09-20 16:19:08.000000000","message":"temporarily","commit_id":"40a0f7742c8aa309772e074d67a9ea6c8a7514de"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"232dd05a507366d569c3662174dcfe27314e41cb","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            wrap_legacy_image)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"class PinnedComputeRpcTests(integrated_helpers.ProviderUsageBaseTestCase):"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    compute_driver \u003d \u0027fake.MediumFakeDriver\u0027"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_c5114d5f","line":59,"range":{"start_line":59,"start_character":19,"end_line":59,"end_character":22},"updated":"2019-09-24 14:36:37.000000000","message":"RPC","commit_id":"40a0f7742c8aa309772e074d67a9ea6c8a7514de"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"232dd05a507366d569c3662174dcfe27314e41cb","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        # behavior"},{"line_number":140,"context_line":"        self.flags(compute\u003d\u00275.0\u0027, group\u003d\u0027upgrade_levels\u0027)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        server_req \u003d self._build_minimal_create_server_request("},{"line_number":143,"context_line":"            self.api, \u0027server1\u0027,"},{"line_number":144,"context_line":"            networks\u003d[],"},{"line_number":145,"context_line":"            image_uuid\u003dfake_image.get_valid_image_id(),"},{"line_number":146,"context_line":"            flavor_id\u003dself.flavor1[\u0027id\u0027])"},{"line_number":147,"context_line":"        server \u003d self.api.post_server({\u0027server\u0027: server_req})"},{"line_number":148,"context_line":"        server \u003d self._wait_for_state_change(self.admin_api, server, \u0027ACTIVE\u0027)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        orig_claim \u003d nova.compute.resource_tracker.ResourceTracker.resize_claim"},{"line_number":151,"context_line":"        claim_calls \u003d []"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        def fake_orig_claim("},{"line_number":154,"context_line":"                _self, context, instance, instance_type, nodename,"},{"line_number":155,"context_line":"                *args, **kwargs):"},{"line_number":156,"context_line":"            if not claim_calls:"},{"line_number":157,"context_line":"                claim_calls.append(nodename)"},{"line_number":158,"context_line":"                raise exception.ComputeResourcesUnavailable("},{"line_number":159,"context_line":"                    reason\u003d\u0027Simulated claim failure\u0027)"},{"line_number":160,"context_line":"            else:"},{"line_number":161,"context_line":"                claim_calls.append(nodename)"},{"line_number":162,"context_line":"                return orig_claim("},{"line_number":163,"context_line":"                    _self, context, instance, instance_type, nodename, *args,"},{"line_number":164,"context_line":"                    **kwargs)"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        with mock.patch("},{"line_number":167,"context_line":"                \u0027nova.compute.resource_tracker.ResourceTracker.resize_claim\u0027,"},{"line_number":168,"context_line":"                new\u003dfake_orig_claim):"},{"line_number":169,"context_line":"            # Now migrate the server which is going to fail on the first"},{"line_number":170,"context_line":"            # destination but then will be rescheduled."},{"line_number":171,"context_line":"            self.api.post_server_action(server[\u0027id\u0027], {\u0027migrate\u0027: None})"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"            # bug 1843090: The migration failed and the instance remained on"},{"line_number":174,"context_line":"            # the source host"},{"line_number":175,"context_line":"            server \u003d self._wait_for_server_parameter("},{"line_number":176,"context_line":"                self.api, server,"},{"line_number":177,"context_line":"                {"},{"line_number":178,"context_line":"                    \u0027OS-EXT-SRV-ATTR:host\u0027: \u0027host1\u0027,"},{"line_number":179,"context_line":"                    \u0027OS-EXT-STS:task_state\u0027: None,"},{"line_number":180,"context_line":"                    \u0027status\u0027: \u0027ERROR\u0027})"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        # there was only one resize_claim call as no reschedule happened"},{"line_number":183,"context_line":"        self.assertEqual([\u0027host2\u0027], claim_calls)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_060c4c39","line":180,"range":{"start_line":142,"start_character":0,"end_line":180,"end_character":39},"updated":"2019-09-24 14:36:37.000000000","message":"All of this is identical to the above minus the final \u0027status\u0027, right? Could we just pass that as an argument into \u0027_test_reschedule_migration_with_compute_rpc_pin\u0027 and move the check on L127 into \u0027test_reschedule_migration_5_1\u0027?","commit_id":"40a0f7742c8aa309772e074d67a9ea6c8a7514de"}],"nova/tests/functional/test_servers.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f69d765f1ea12f1b55c40a01633cddcae8b69c11","unresolved":false,"context_lines":[{"line_number":6975,"context_line":"        self.assertNotIn(\u0027allocation\u0027, binding_profile)"},{"line_number":6976,"context_line":""},{"line_number":6977,"context_line":""},{"line_number":6978,"context_line":"class PinnedComputeRpcTests(integrated_helpers.ProviderUsageBaseTestCase):"},{"line_number":6979,"context_line":""},{"line_number":6980,"context_line":"    compute_driver \u003d \u0027fake.MediumFakeDriver\u0027"},{"line_number":6981,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_532ebc43","line":6978,"updated":"2019-09-20 13:52:32.000000000","message":"If this is a regression recreate test for a bug, let\u0027s do this in nova/tests/functional/regressions/.","commit_id":"1e4e2b02d51ee3ffd7aa3392c2d16b33c454b1f5"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e520a119d6106367c089e6deaac5fd6da287b133","unresolved":false,"context_lines":[{"line_number":6975,"context_line":"        self.assertNotIn(\u0027allocation\u0027, binding_profile)"},{"line_number":6976,"context_line":""},{"line_number":6977,"context_line":""},{"line_number":6978,"context_line":"class PinnedComputeRpcTests(integrated_helpers.ProviderUsageBaseTestCase):"},{"line_number":6979,"context_line":""},{"line_number":6980,"context_line":"    compute_driver \u003d \u0027fake.MediumFakeDriver\u0027"},{"line_number":6981,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_65bbef71","line":6978,"in_reply_to":"3fa7e38b_532ebc43","updated":"2019-09-20 15:05:47.000000000","message":"Done","commit_id":"1e4e2b02d51ee3ffd7aa3392c2d16b33c454b1f5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f69d765f1ea12f1b55c40a01633cddcae8b69c11","unresolved":false,"context_lines":[{"line_number":7002,"context_line":"        server_req \u003d self._build_minimal_create_server_request("},{"line_number":7003,"context_line":"            self.api, \u0027server1\u0027,"},{"line_number":7004,"context_line":"            networks\u003d[],"},{"line_number":7005,"context_line":"            image_uuid\u003d\u002776fa36fc-c930-4bf3-8c8a-ea2a2420deb6\u0027,"},{"line_number":7006,"context_line":"            flavor_id\u003dself.flavor1[\u0027id\u0027], host\u003d\u0027host1\u0027)"},{"line_number":7007,"context_line":"        server \u003d self.api.post_server({\u0027server\u0027: server_req})"},{"line_number":7008,"context_line":"        server \u003d self._wait_for_state_change(self.admin_api, server, \u0027ACTIVE\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_33b9c0e8","line":7005,"range":{"start_line":7005,"start_character":23,"end_line":7005,"end_character":61},"updated":"2019-09-20 13:52:32.000000000","message":"I\u0027d prefer to use https://github.com/openstack/nova/blob/9b2e00e015f22b2d876cd3c239af8e139040c8c8/nova/tests/unit/image/fake.py#L309 here.","commit_id":"1e4e2b02d51ee3ffd7aa3392c2d16b33c454b1f5"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e520a119d6106367c089e6deaac5fd6da287b133","unresolved":false,"context_lines":[{"line_number":7002,"context_line":"        server_req \u003d self._build_minimal_create_server_request("},{"line_number":7003,"context_line":"            self.api, \u0027server1\u0027,"},{"line_number":7004,"context_line":"            networks\u003d[],"},{"line_number":7005,"context_line":"            image_uuid\u003d\u002776fa36fc-c930-4bf3-8c8a-ea2a2420deb6\u0027,"},{"line_number":7006,"context_line":"            flavor_id\u003dself.flavor1[\u0027id\u0027], host\u003d\u0027host1\u0027)"},{"line_number":7007,"context_line":"        server \u003d self.api.post_server({\u0027server\u0027: server_req})"},{"line_number":7008,"context_line":"        server \u003d self._wait_for_state_change(self.admin_api, server, \u0027ACTIVE\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_c580a38e","line":7005,"range":{"start_line":7005,"start_character":23,"end_line":7005,"end_character":61},"in_reply_to":"3fa7e38b_33b9c0e8","updated":"2019-09-20 15:05:47.000000000","message":"Done","commit_id":"1e4e2b02d51ee3ffd7aa3392c2d16b33c454b1f5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f69d765f1ea12f1b55c40a01633cddcae8b69c11","unresolved":false,"context_lines":[{"line_number":7003,"context_line":"            self.api, \u0027server1\u0027,"},{"line_number":7004,"context_line":"            networks\u003d[],"},{"line_number":7005,"context_line":"            image_uuid\u003d\u002776fa36fc-c930-4bf3-8c8a-ea2a2420deb6\u0027,"},{"line_number":7006,"context_line":"            flavor_id\u003dself.flavor1[\u0027id\u0027], host\u003d\u0027host1\u0027)"},{"line_number":7007,"context_line":"        server \u003d self.api.post_server({\u0027server\u0027: server_req})"},{"line_number":7008,"context_line":"        server \u003d self._wait_for_state_change(self.admin_api, server, \u0027ACTIVE\u0027)"},{"line_number":7009,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_73097893","line":7006,"range":{"start_line":7006,"start_character":42,"end_line":7006,"end_character":54},"updated":"2019-09-20 13:52:32.000000000","message":"Two things with this:\n\n1. You can\u0027t use this because it requires API version \u003e\u003d 2.74 which we don\u0027t have in stein and this bug fix and test has to go back to stein.\n\n2. You don\u0027t need this anyway b/c of the custom weigher that will pick host1 first.","commit_id":"1e4e2b02d51ee3ffd7aa3392c2d16b33c454b1f5"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e520a119d6106367c089e6deaac5fd6da287b133","unresolved":false,"context_lines":[{"line_number":7003,"context_line":"            self.api, \u0027server1\u0027,"},{"line_number":7004,"context_line":"            networks\u003d[],"},{"line_number":7005,"context_line":"            image_uuid\u003d\u002776fa36fc-c930-4bf3-8c8a-ea2a2420deb6\u0027,"},{"line_number":7006,"context_line":"            flavor_id\u003dself.flavor1[\u0027id\u0027], host\u003d\u0027host1\u0027)"},{"line_number":7007,"context_line":"        server \u003d self.api.post_server({\u0027server\u0027: server_req})"},{"line_number":7008,"context_line":"        server \u003d self._wait_for_state_change(self.admin_api, server, \u0027ACTIVE\u0027)"},{"line_number":7009,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_6549af89","line":7006,"range":{"start_line":7006,"start_character":42,"end_line":7006,"end_character":54},"in_reply_to":"3fa7e38b_73097893","updated":"2019-09-20 15:05:47.000000000","message":"Done","commit_id":"1e4e2b02d51ee3ffd7aa3392c2d16b33c454b1f5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f69d765f1ea12f1b55c40a01633cddcae8b69c11","unresolved":false,"context_lines":[{"line_number":7031,"context_line":"            self.api.post_server_action(server[\u0027id\u0027], {\u0027migrate\u0027: None})"},{"line_number":7032,"context_line":""},{"line_number":7033,"context_line":"            # We expect that the instance is on host3 as the scheduler"},{"line_number":7034,"context_line":"            # selected host2 due to our weigher and the resize failed there"},{"line_number":7035,"context_line":"            # and re-scheduled to host3 were it succeeded."},{"line_number":7036,"context_line":"            self._wait_for_server_parameter("},{"line_number":7037,"context_line":"                self.api, server,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_b3729048","line":7034,"range":{"start_line":7034,"start_character":56,"end_line":7034,"end_character":62},"updated":"2019-09-20 13:52:32.000000000","message":"cold migrate","commit_id":"1e4e2b02d51ee3ffd7aa3392c2d16b33c454b1f5"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e520a119d6106367c089e6deaac5fd6da287b133","unresolved":false,"context_lines":[{"line_number":7031,"context_line":"            self.api.post_server_action(server[\u0027id\u0027], {\u0027migrate\u0027: None})"},{"line_number":7032,"context_line":""},{"line_number":7033,"context_line":"            # We expect that the instance is on host3 as the scheduler"},{"line_number":7034,"context_line":"            # selected host2 due to our weigher and the resize failed there"},{"line_number":7035,"context_line":"            # and re-scheduled to host3 were it succeeded."},{"line_number":7036,"context_line":"            self._wait_for_server_parameter("},{"line_number":7037,"context_line":"                self.api, server,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_c559835a","line":7034,"range":{"start_line":7034,"start_character":56,"end_line":7034,"end_character":62},"in_reply_to":"3fa7e38b_b3729048","updated":"2019-09-20 15:05:47.000000000","message":"Done","commit_id":"1e4e2b02d51ee3ffd7aa3392c2d16b33c454b1f5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f69d765f1ea12f1b55c40a01633cddcae8b69c11","unresolved":false,"context_lines":[{"line_number":7059,"context_line":"        server_req \u003d self._build_minimal_create_server_request("},{"line_number":7060,"context_line":"            self.api, \u0027server1\u0027,"},{"line_number":7061,"context_line":"            networks\u003d[],"},{"line_number":7062,"context_line":"            image_uuid\u003d\u002776fa36fc-c930-4bf3-8c8a-ea2a2420deb6\u0027,"},{"line_number":7063,"context_line":"            flavor_id\u003dself.flavor1[\u0027id\u0027], host\u003d\u0027host1\u0027)"},{"line_number":7064,"context_line":"        server \u003d self.api.post_server({\u0027server\u0027: server_req})"},{"line_number":7065,"context_line":"        server \u003d self._wait_for_state_change(self.admin_api, server, \u0027ACTIVE\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_d3a2ac9a","line":7062,"updated":"2019-09-20 13:52:32.000000000","message":"same as above","commit_id":"1e4e2b02d51ee3ffd7aa3392c2d16b33c454b1f5"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e520a119d6106367c089e6deaac5fd6da287b133","unresolved":false,"context_lines":[{"line_number":7059,"context_line":"        server_req \u003d self._build_minimal_create_server_request("},{"line_number":7060,"context_line":"            self.api, \u0027server1\u0027,"},{"line_number":7061,"context_line":"            networks\u003d[],"},{"line_number":7062,"context_line":"            image_uuid\u003d\u002776fa36fc-c930-4bf3-8c8a-ea2a2420deb6\u0027,"},{"line_number":7063,"context_line":"            flavor_id\u003dself.flavor1[\u0027id\u0027], host\u003d\u0027host1\u0027)"},{"line_number":7064,"context_line":"        server \u003d self.api.post_server({\u0027server\u0027: server_req})"},{"line_number":7065,"context_line":"        server \u003d self._wait_for_state_change(self.admin_api, server, \u0027ACTIVE\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_e554bf23","line":7062,"in_reply_to":"3fa7e38b_d3a2ac9a","updated":"2019-09-20 15:05:47.000000000","message":"Done","commit_id":"1e4e2b02d51ee3ffd7aa3392c2d16b33c454b1f5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f69d765f1ea12f1b55c40a01633cddcae8b69c11","unresolved":false,"context_lines":[{"line_number":7060,"context_line":"            self.api, \u0027server1\u0027,"},{"line_number":7061,"context_line":"            networks\u003d[],"},{"line_number":7062,"context_line":"            image_uuid\u003d\u002776fa36fc-c930-4bf3-8c8a-ea2a2420deb6\u0027,"},{"line_number":7063,"context_line":"            flavor_id\u003dself.flavor1[\u0027id\u0027], host\u003d\u0027host1\u0027)"},{"line_number":7064,"context_line":"        server \u003d self.api.post_server({\u0027server\u0027: server_req})"},{"line_number":7065,"context_line":"        server \u003d self._wait_for_state_change(self.admin_api, server, \u0027ACTIVE\u0027)"},{"line_number":7066,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_13004467","line":7063,"range":{"start_line":7063,"start_character":42,"end_line":7063,"end_character":54},"updated":"2019-09-20 13:52:32.000000000","message":"same","commit_id":"1e4e2b02d51ee3ffd7aa3392c2d16b33c454b1f5"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e520a119d6106367c089e6deaac5fd6da287b133","unresolved":false,"context_lines":[{"line_number":7060,"context_line":"            self.api, \u0027server1\u0027,"},{"line_number":7061,"context_line":"            networks\u003d[],"},{"line_number":7062,"context_line":"            image_uuid\u003d\u002776fa36fc-c930-4bf3-8c8a-ea2a2420deb6\u0027,"},{"line_number":7063,"context_line":"            flavor_id\u003dself.flavor1[\u0027id\u0027], host\u003d\u0027host1\u0027)"},{"line_number":7064,"context_line":"        server \u003d self.api.post_server({\u0027server\u0027: server_req})"},{"line_number":7065,"context_line":"        server \u003d self._wait_for_state_change(self.admin_api, server, \u0027ACTIVE\u0027)"},{"line_number":7066,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_a53487fc","line":7063,"range":{"start_line":7063,"start_character":42,"end_line":7063,"end_character":54},"in_reply_to":"3fa7e38b_13004467","updated":"2019-09-20 15:05:47.000000000","message":"Done","commit_id":"1e4e2b02d51ee3ffd7aa3392c2d16b33c454b1f5"}]}
