)]}'
{"nova/scheduler/client/report.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"c86d6de410274f39d1e6610a39b0453be1b13bd1","unresolved":false,"context_lines":[{"line_number":429,"context_line":"            return None"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    @safe_connect"},{"line_number":432,"context_line":"    def _get_providers_in_aggregates(self, *agg_uuids):"},{"line_number":433,"context_line":"        \"\"\"Queries the placement API for a list of the resource providers"},{"line_number":434,"context_line":"        associated with any of the specified aggregates."},{"line_number":435,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1f485f77_33404b07","line":432,"range":{"start_line":432,"start_character":43,"end_line":432,"end_character":44},"updated":"2017-11-17 17:54:55.000000000","message":"why not just pass a list as the argument?","commit_id":"11ce36bdb5f63246326e43a4f919ce8246a4d9cf"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"77d50261c211f125ac81ccb62b59ac9efe7a1f27","unresolved":false,"context_lines":[{"line_number":429,"context_line":"            return None"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    @safe_connect"},{"line_number":432,"context_line":"    def _get_providers_in_aggregates(self, *agg_uuids):"},{"line_number":433,"context_line":"        \"\"\"Queries the placement API for a list of the resource providers"},{"line_number":434,"context_line":"        associated with any of the specified aggregates."},{"line_number":435,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1f485f77_ed940f39","line":432,"range":{"start_line":432,"start_character":43,"end_line":432,"end_character":44},"in_reply_to":"1f485f77_33404b07","updated":"2017-11-17 20:27:51.000000000","message":"I did it to avoid extra characters in the tests; but it makes more sense in the real-life usage for it to be a list, so\n\nDone.","commit_id":"11ce36bdb5f63246326e43a4f919ce8246a4d9cf"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a95afb2b0c2f9702631b87a9ada8f0d5e9cb4c0c","unresolved":false,"context_lines":[{"line_number":441,"context_line":"        if not agg_uuids:"},{"line_number":442,"context_line":"            return []"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"        # This is silly.  See https://bugs.launchpad.net/nova/+bug/1733030"},{"line_number":445,"context_line":"        if len(agg_uuids) \u003e 1:"},{"line_number":446,"context_line":"            qpval \u003d \u0027in:\u0027 + \u0027,\u0027.join(agg_uuids)"},{"line_number":447,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f485f77_19efa41e","line":444,"range":{"start_line":444,"start_character":18,"end_line":444,"end_character":23},"updated":"2017-11-18 14:10:47.000000000","message":"Slight duh - I think it works if I just *always* use the in: prefix.","commit_id":"8dc2f97db0c971c15af75fb2570ef91a276709da"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3ef5c8d02c3d6a2844db3dbc01ee4bd393552f2d","unresolved":false,"context_lines":[{"line_number":424,"context_line":"            raise exception.ResourceProviderRetrievalFailed(uuid\u003duuid)"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"    @safe_connect"},{"line_number":427,"context_line":"    def _get_providers_in_aggregates(self, agg_uuids):"},{"line_number":428,"context_line":"        \"\"\"Queries the placement API for a list of the resource providers"},{"line_number":429,"context_line":"        associated with any of the specified aggregates."},{"line_number":430,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"df87a7cf_45b8d1e3","line":427,"range":{"start_line":427,"start_character":8,"end_line":427,"end_character":36},"updated":"2017-12-08 14:02:04.000000000","message":"Same comment here - I\u0027d love if this were \"_get_resource_providers_in_aggregates\"","commit_id":"72dfe5d588cc686c2b5a83e111846230750ea453"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3ef5c8d02c3d6a2844db3dbc01ee4bd393552f2d","unresolved":false,"context_lines":[{"line_number":424,"context_line":"            raise exception.ResourceProviderRetrievalFailed(uuid\u003duuid)"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"    @safe_connect"},{"line_number":427,"context_line":"    def _get_providers_in_aggregates(self, agg_uuids):"},{"line_number":428,"context_line":"        \"\"\"Queries the placement API for a list of the resource providers"},{"line_number":429,"context_line":"        associated with any of the specified aggregates."},{"line_number":430,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"df87a7cf_45ad3199","line":427,"range":{"start_line":427,"start_character":43,"end_line":427,"end_character":52},"updated":"2017-12-08 14:02:04.000000000","message":"nit:\n\n  *agg_uuids\n\nGives you a ever-so-slightly nicer API","commit_id":"72dfe5d588cc686c2b5a83e111846230750ea453"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3ef5c8d02c3d6a2844db3dbc01ee4bd393552f2d","unresolved":false,"context_lines":[{"line_number":442,"context_line":"        if resp.status_code \u003d\u003d 200:"},{"line_number":443,"context_line":"            return resp.json()[\u0027resource_providers\u0027]"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"        # Some unexpected error"},{"line_number":446,"context_line":"        placement_req_id \u003d get_placement_request_id(resp)"},{"line_number":447,"context_line":"        msg \u003d _(\"[%(placement_req_id)s] Failed to retrieve resource providers \""},{"line_number":448,"context_line":"                \"associated with the following aggregates from placement API: \""},{"line_number":449,"context_line":"                \"%(aggs)s. Got %(status_code)d: %(err_text)s.\")"},{"line_number":450,"context_line":"        args \u003d {"},{"line_number":451,"context_line":"            \u0027aggs\u0027: qpval,"},{"line_number":452,"context_line":"            \u0027status_code\u0027: resp.status_code,"},{"line_number":453,"context_line":"            \u0027err_text\u0027: resp.text,"},{"line_number":454,"context_line":"            \u0027placement_req_id\u0027: placement_req_id,"},{"line_number":455,"context_line":"        }"},{"line_number":456,"context_line":"        LOG.error(msg, args)"},{"line_number":457,"context_line":"        raise exception.ResourceProviderRetrievalFailed(message\u003dmsg % args)"},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"    @safe_connect"},{"line_number":460,"context_line":"    def _get_providers_in_tree(self, uuid):"}],"source_content_type":"text/x-python","patch_set":8,"id":"df87a7cf_a5d75dee","line":457,"range":{"start_line":445,"start_character":0,"end_line":457,"end_character":75},"updated":"2017-12-08 14:02:04.000000000","message":"More duplication to address in a follow-up?","commit_id":"72dfe5d588cc686c2b5a83e111846230750ea453"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"74106ce9c91689bff06822cfc4e12ec8fa9d0086","unresolved":false,"context_lines":[{"line_number":443,"context_line":""},{"line_number":444,"context_line":"        qpval \u003d \u0027,\u0027.join(agg_uuids)"},{"line_number":445,"context_line":"        resp \u003d self.get(\"/resource_providers?member_of\u003din:\" + qpval,"},{"line_number":446,"context_line":"                        version\u003d\u00271.3\u0027)"},{"line_number":447,"context_line":"        if resp.status_code \u003d\u003d 200:"},{"line_number":448,"context_line":"            return resp.json()[\u0027resource_providers\u0027]"},{"line_number":449,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"df87a7cf_8a7c18b6","line":446,"range":{"start_line":446,"start_character":32,"end_line":446,"end_character":37},"updated":"2017-12-14 16:41:30.000000000","message":"we should consider making this a constant in a future patch.","commit_id":"cc5d6629922fcca5e966a2f5f420fb7189aac7e7"}],"nova/tests/unit/scheduler/client/test_report.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"8e2131d0157e7235a211a4fda93921be7ac6fcdd","unresolved":false,"context_lines":[{"line_number":1403,"context_line":"        result \u003d self.client._get_providers_in_aggregates([uuids.agg1,"},{"line_number":1404,"context_line":"                                                           uuids.agg2])"},{"line_number":1405,"context_line":""},{"line_number":1406,"context_line":"        expected_provider_list \u003d ["},{"line_number":1407,"context_line":"            {"},{"line_number":1408,"context_line":"                \u0027uuid\u0027: compute,"},{"line_number":1409,"context_line":"                \u0027name\u0027: \u0027compute_host\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"df87a7cf_0cbc68b9","line":1406,"updated":"2017-12-06 18:41:45.000000000","message":"same comment as the previous patch about duplicated data and lack of \"real\" response","commit_id":"e93909cf9a150d6e2e4db0c4b2320083747e3e71"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d9f0df0f7ce963a26f53cb67136308a830f105d4","unresolved":false,"context_lines":[{"line_number":1403,"context_line":"        result \u003d self.client._get_providers_in_aggregates([uuids.agg1,"},{"line_number":1404,"context_line":"                                                           uuids.agg2])"},{"line_number":1405,"context_line":""},{"line_number":1406,"context_line":"        expected_provider_list \u003d ["},{"line_number":1407,"context_line":"            {"},{"line_number":1408,"context_line":"                \u0027uuid\u0027: compute,"},{"line_number":1409,"context_line":"                \u0027name\u0027: \u0027compute_host\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"df87a7cf_82990a7a","line":1406,"in_reply_to":"df87a7cf_0cbc68b9","updated":"2017-12-07 16:23:51.000000000","message":"Done","commit_id":"e93909cf9a150d6e2e4db0c4b2320083747e3e71"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"893071873701c3708ed081506afe62c179d7cd6c","unresolved":false,"context_lines":[{"line_number":1378,"context_line":"        # Ensure _get_providers_in_aggregates() returns a list of resource"},{"line_number":1379,"context_line":"        # provider dicts if it finds resource provider records from the"},{"line_number":1380,"context_line":"        # placement API"},{"line_number":1381,"context_line":"        compute \u003d uuids.compute_node"},{"line_number":1382,"context_line":"        sharing \u003d uuids.sharing"},{"line_number":1383,"context_line":"        resp_mock \u003d mock.Mock(status_code\u003d200)"},{"line_number":1384,"context_line":"        rpjson \u003d ["},{"line_number":1385,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":8,"id":"df87a7cf_53ad0899","line":1382,"range":{"start_line":1381,"start_character":0,"end_line":1382,"end_character":31},"updated":"2017-12-08 03:00:17.000000000","message":"Remove them.","commit_id":"72dfe5d588cc686c2b5a83e111846230750ea453"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a58d30528cf94007861286599be795ad2f80b417","unresolved":false,"context_lines":[{"line_number":1378,"context_line":"        # Ensure _get_providers_in_aggregates() returns a list of resource"},{"line_number":1379,"context_line":"        # provider dicts if it finds resource provider records from the"},{"line_number":1380,"context_line":"        # placement API"},{"line_number":1381,"context_line":"        compute \u003d uuids.compute_node"},{"line_number":1382,"context_line":"        sharing \u003d uuids.sharing"},{"line_number":1383,"context_line":"        resp_mock \u003d mock.Mock(status_code\u003d200)"},{"line_number":1384,"context_line":"        rpjson \u003d ["},{"line_number":1385,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":8,"id":"df87a7cf_5120294a","line":1382,"range":{"start_line":1381,"start_character":0,"end_line":1382,"end_character":31},"in_reply_to":"df87a7cf_53ad0899","updated":"2017-12-14 15:19:20.000000000","message":"Done","commit_id":"72dfe5d588cc686c2b5a83e111846230750ea453"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"893071873701c3708ed081506afe62c179d7cd6c","unresolved":false,"context_lines":[{"line_number":1381,"context_line":"        compute \u003d uuids.compute_node"},{"line_number":1382,"context_line":"        sharing \u003d uuids.sharing"},{"line_number":1383,"context_line":"        resp_mock \u003d mock.Mock(status_code\u003d200)"},{"line_number":1384,"context_line":"        rpjson \u003d ["},{"line_number":1385,"context_line":"            {"},{"line_number":1386,"context_line":"                \u0027uuid\u0027: compute,"},{"line_number":1387,"context_line":"                \u0027name\u0027: \u0027compute_host\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"df87a7cf_33fde46d","line":1384,"range":{"start_line":1384,"start_character":8,"end_line":1384,"end_character":14},"updated":"2017-12-08 03:00:17.000000000","message":"It is not \u0027real\u0027 response yet.\n\u0027links\u0027 is missing.\nIf it is microversion 1.14 or later, \u0027root_provider_uuid\u0027 is missing as well.","commit_id":"72dfe5d588cc686c2b5a83e111846230750ea453"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a58d30528cf94007861286599be795ad2f80b417","unresolved":false,"context_lines":[{"line_number":1381,"context_line":"        compute \u003d uuids.compute_node"},{"line_number":1382,"context_line":"        sharing \u003d uuids.sharing"},{"line_number":1383,"context_line":"        resp_mock \u003d mock.Mock(status_code\u003d200)"},{"line_number":1384,"context_line":"        rpjson \u003d ["},{"line_number":1385,"context_line":"            {"},{"line_number":1386,"context_line":"                \u0027uuid\u0027: compute,"},{"line_number":1387,"context_line":"                \u0027name\u0027: \u0027compute_host\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"df87a7cf_91331163","line":1384,"range":{"start_line":1384,"start_character":8,"end_line":1384,"end_character":14},"in_reply_to":"df87a7cf_33fde46d","updated":"2017-12-14 15:19:20.000000000","message":"These are inconsequential to the test, but I\u0027ve added them for completeness","commit_id":"72dfe5d588cc686c2b5a83e111846230750ea453"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"893071873701c3708ed081506afe62c179d7cd6c","unresolved":false,"context_lines":[{"line_number":1383,"context_line":"        resp_mock \u003d mock.Mock(status_code\u003d200)"},{"line_number":1384,"context_line":"        rpjson \u003d ["},{"line_number":1385,"context_line":"            {"},{"line_number":1386,"context_line":"                \u0027uuid\u0027: compute,"},{"line_number":1387,"context_line":"                \u0027name\u0027: \u0027compute_host\u0027,"},{"line_number":1388,"context_line":"                \u0027generation\u0027: 42,"},{"line_number":1389,"context_line":"                \u0027parent_provider_uuid\u0027: None,"}],"source_content_type":"text/x-python","patch_set":8,"id":"df87a7cf_13cea081","line":1386,"range":{"start_line":1386,"start_character":24,"end_line":1386,"end_character":31},"updated":"2017-12-08 03:00:17.000000000","message":"nit: Use \u0027uuids.compute_node\u0027 directly.","commit_id":"72dfe5d588cc686c2b5a83e111846230750ea453"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a58d30528cf94007861286599be795ad2f80b417","unresolved":false,"context_lines":[{"line_number":1383,"context_line":"        resp_mock \u003d mock.Mock(status_code\u003d200)"},{"line_number":1384,"context_line":"        rpjson \u003d ["},{"line_number":1385,"context_line":"            {"},{"line_number":1386,"context_line":"                \u0027uuid\u0027: compute,"},{"line_number":1387,"context_line":"                \u0027name\u0027: \u0027compute_host\u0027,"},{"line_number":1388,"context_line":"                \u0027generation\u0027: 42,"},{"line_number":1389,"context_line":"                \u0027parent_provider_uuid\u0027: None,"}],"source_content_type":"text/x-python","patch_set":8,"id":"df87a7cf_3117a5f0","line":1386,"range":{"start_line":1386,"start_character":24,"end_line":1386,"end_character":31},"in_reply_to":"df87a7cf_13cea081","updated":"2017-12-14 15:19:20.000000000","message":"Done","commit_id":"72dfe5d588cc686c2b5a83e111846230750ea453"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"893071873701c3708ed081506afe62c179d7cd6c","unresolved":false,"context_lines":[{"line_number":1389,"context_line":"                \u0027parent_provider_uuid\u0027: None,"},{"line_number":1390,"context_line":"            },"},{"line_number":1391,"context_line":"            {"},{"line_number":1392,"context_line":"                \u0027uuid\u0027: sharing,"},{"line_number":1393,"context_line":"                \u0027name\u0027: \u0027storage_provider\u0027,"},{"line_number":1394,"context_line":"                \u0027generation\u0027: 42,"},{"line_number":1395,"context_line":"                \u0027parent_provider_uuid\u0027: None,"}],"source_content_type":"text/x-python","patch_set":8,"id":"df87a7cf_73a28cb0","line":1392,"range":{"start_line":1392,"start_character":24,"end_line":1392,"end_character":31},"updated":"2017-12-08 03:00:17.000000000","message":"ditto","commit_id":"72dfe5d588cc686c2b5a83e111846230750ea453"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a58d30528cf94007861286599be795ad2f80b417","unresolved":false,"context_lines":[{"line_number":1389,"context_line":"                \u0027parent_provider_uuid\u0027: None,"},{"line_number":1390,"context_line":"            },"},{"line_number":1391,"context_line":"            {"},{"line_number":1392,"context_line":"                \u0027uuid\u0027: sharing,"},{"line_number":1393,"context_line":"                \u0027name\u0027: \u0027storage_provider\u0027,"},{"line_number":1394,"context_line":"                \u0027generation\u0027: 42,"},{"line_number":1395,"context_line":"                \u0027parent_provider_uuid\u0027: None,"}],"source_content_type":"text/x-python","patch_set":8,"id":"df87a7cf_d1d19931","line":1392,"range":{"start_line":1392,"start_character":24,"end_line":1392,"end_character":31},"in_reply_to":"df87a7cf_73a28cb0","updated":"2017-12-14 15:19:20.000000000","message":"Done","commit_id":"72dfe5d588cc686c2b5a83e111846230750ea453"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"893071873701c3708ed081506afe62c179d7cd6c","unresolved":false,"context_lines":[{"line_number":1418,"context_line":"        resp_mock \u003d mock.Mock(status_code\u003d503)"},{"line_number":1419,"context_line":"        self.ks_adap_mock.get.return_value \u003d resp_mock"},{"line_number":1420,"context_line":"        self.ks_adap_mock.get.return_value.headers \u003d {"},{"line_number":1421,"context_line":"            \u0027openstack-request-id\u0027: uuids.request_id}"},{"line_number":1422,"context_line":""},{"line_number":1423,"context_line":"        uuid \u003d uuids.agg"},{"line_number":1424,"context_line":"        self.assertRaises(exception.ResourceProviderRetrievalFailed,"}],"source_content_type":"text/x-python","patch_set":8,"id":"df87a7cf_93c2b058","line":1421,"range":{"start_line":1421,"start_character":13,"end_line":1421,"end_character":33},"updated":"2017-12-08 03:00:17.000000000","message":"nit: x-openstack-request-id","commit_id":"72dfe5d588cc686c2b5a83e111846230750ea453"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a58d30528cf94007861286599be795ad2f80b417","unresolved":false,"context_lines":[{"line_number":1418,"context_line":"        resp_mock \u003d mock.Mock(status_code\u003d503)"},{"line_number":1419,"context_line":"        self.ks_adap_mock.get.return_value \u003d resp_mock"},{"line_number":1420,"context_line":"        self.ks_adap_mock.get.return_value.headers \u003d {"},{"line_number":1421,"context_line":"            \u0027openstack-request-id\u0027: uuids.request_id}"},{"line_number":1422,"context_line":""},{"line_number":1423,"context_line":"        uuid \u003d uuids.agg"},{"line_number":1424,"context_line":"        self.assertRaises(exception.ResourceProviderRetrievalFailed,"}],"source_content_type":"text/x-python","patch_set":8,"id":"df87a7cf_31ec85f2","line":1421,"range":{"start_line":1421,"start_character":13,"end_line":1421,"end_character":33},"in_reply_to":"df87a7cf_93c2b058","updated":"2017-12-14 15:19:20.000000000","message":"Done","commit_id":"72dfe5d588cc686c2b5a83e111846230750ea453"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3ef5c8d02c3d6a2844db3dbc01ee4bd393552f2d","unresolved":false,"context_lines":[{"line_number":1418,"context_line":"        resp_mock \u003d mock.Mock(status_code\u003d503)"},{"line_number":1419,"context_line":"        self.ks_adap_mock.get.return_value \u003d resp_mock"},{"line_number":1420,"context_line":"        self.ks_adap_mock.get.return_value.headers \u003d {"},{"line_number":1421,"context_line":"            \u0027openstack-request-id\u0027: uuids.request_id}"},{"line_number":1422,"context_line":""},{"line_number":1423,"context_line":"        uuid \u003d uuids.agg"},{"line_number":1424,"context_line":"        self.assertRaises(exception.ResourceProviderRetrievalFailed,"}],"source_content_type":"text/x-python","patch_set":8,"id":"df87a7cf_05f88978","line":1421,"range":{"start_line":1421,"start_character":13,"end_line":1421,"end_character":33},"in_reply_to":"df87a7cf_93c2b058","updated":"2017-12-08 14:02:04.000000000","message":"Yeah, this should be fixed here if https://review.openstack.org/#/c/523606/ is being merged","commit_id":"72dfe5d588cc686c2b5a83e111846230750ea453"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"4f23e68dd40edf33325392d39972b631259c7ca2","unresolved":false,"context_lines":[{"line_number":1387,"context_line":"                \u0027generation\u0027: 42,"},{"line_number":1388,"context_line":"                \u0027parent_provider_uuid\u0027: None,"},{"line_number":1389,"context_line":"                \u0027root_provider_uuid\u0027: None,"},{"line_number":1390,"context_line":"                \u0027link\u0027: [],"},{"line_number":1391,"context_line":"            },"},{"line_number":1392,"context_line":"            {"},{"line_number":1393,"context_line":"                \u0027uuid\u0027: uuids.sharing,"}],"source_content_type":"text/x-python","patch_set":9,"id":"df87a7cf_9fef81af","line":1390,"range":{"start_line":1390,"start_character":17,"end_line":1390,"end_character":21},"updated":"2017-12-14 12:56:34.000000000","message":"This is called \u0027links\u0027.\n\nBut it really doesn\u0027t matter.  We\u0027re just ensuring that what we get back is whatever was under the \u0027resource_providers\u0027 key of the response data.","commit_id":"4ac40a078b2d269f83f4325e776f9e7804574b88"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a58d30528cf94007861286599be795ad2f80b417","unresolved":false,"context_lines":[{"line_number":1387,"context_line":"                \u0027generation\u0027: 42,"},{"line_number":1388,"context_line":"                \u0027parent_provider_uuid\u0027: None,"},{"line_number":1389,"context_line":"                \u0027root_provider_uuid\u0027: None,"},{"line_number":1390,"context_line":"                \u0027link\u0027: [],"},{"line_number":1391,"context_line":"            },"},{"line_number":1392,"context_line":"            {"},{"line_number":1393,"context_line":"                \u0027uuid\u0027: uuids.sharing,"}],"source_content_type":"text/x-python","patch_set":9,"id":"df87a7cf_3489b725","line":1390,"range":{"start_line":1390,"start_character":17,"end_line":1390,"end_character":21},"in_reply_to":"df87a7cf_9fef81af","updated":"2017-12-14 15:19:20.000000000","message":"Done","commit_id":"4ac40a078b2d269f83f4325e776f9e7804574b88"}]}
