)]}'
{"keystone/common/controller.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"c2f9fa7e6481ef9374af3ea9222d6de02d170ca6","unresolved":false,"context_lines":[{"line_number":658,"context_line":"                if ignore_arbitrary_query:"},{"line_number":659,"context_line":"                    versionutils.report_deprecated_feature("},{"line_number":660,"context_line":"                        LOG,"},{"line_number":661,"context_line":"                        _LW(\u0027Ignore any arbitrary query is deprecated in \u0027"},{"line_number":662,"context_line":"                            \u0027Mitaka, and will not be supported in the O \u0027"},{"line_number":663,"context_line":"                            \u0027release, any query string should count in \u0027"},{"line_number":664,"context_line":"                            \u0027the future.\u0027))"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_88f067ca","line":661,"updated":"2015-11-29 17:20:59.000000000","message":"suggested rewording:\n\n\"As of the Mitaka release, querying with unsupported filters is deprecated. In the O release, querying with unsupported filters will result in an empty list being returned\"","commit_id":"a70cf9dcab3771894c44ae1bf2cc7c25f83a1022"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"8486e47252a31c9b48704eca790ed9ec3a8981bb","unresolved":false,"context_lines":[{"line_number":658,"context_line":"                if ignore_arbitrary_query:"},{"line_number":659,"context_line":"                    versionutils.report_deprecated_feature("},{"line_number":660,"context_line":"                        LOG,"},{"line_number":661,"context_line":"                        _LW(\u0027Ignore any arbitrary query is deprecated in \u0027"},{"line_number":662,"context_line":"                            \u0027Mitaka, and will not be supported in the O \u0027"},{"line_number":663,"context_line":"                            \u0027release, any query string should count in \u0027"},{"line_number":664,"context_line":"                            \u0027the future.\u0027))"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_2885bbcd","line":661,"in_reply_to":"9a8ffd7b_88f067ca","updated":"2015-11-29 19:52:52.000000000","message":"Done","commit_id":"a70cf9dcab3771894c44ae1bf2cc7c25f83a1022"}],"keystone/federation/core.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"c2f9fa7e6481ef9374af3ea9222d6de02d170ca6","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        raise exception.NotImplemented()  # pragma: no cover"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    @abc.abstractmethod"},{"line_number":117,"context_line":"    def list_idps(self, hint):"},{"line_number":118,"context_line":"        \"\"\"List all identity providers."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        :raises keystone.exception.IdentityProviderNotFound: If the IdP"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_2db86d74","line":117,"updated":"2015-11-29 17:20:59.000000000","message":"should be \"hints\" to match the implementation\n\nwe should also doc it, like this: https://github.com/openstack/keystone/blob/master/keystone/assignment/core.py#L1212-L1213","commit_id":"a70cf9dcab3771894c44ae1bf2cc7c25f83a1022"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"8486e47252a31c9b48704eca790ed9ec3a8981bb","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        raise exception.NotImplemented()  # pragma: no cover"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    @abc.abstractmethod"},{"line_number":117,"context_line":"    def list_idps(self, hint):"},{"line_number":118,"context_line":"        \"\"\"List all identity providers."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        :raises keystone.exception.IdentityProviderNotFound: If the IdP"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_e86b331c","line":117,"in_reply_to":"9a8ffd7b_2db86d74","updated":"2015-11-29 19:52:52.000000000","message":"Done","commit_id":"a70cf9dcab3771894c44ae1bf2cc7c25f83a1022"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0f2a294d6aa185a625d46fa1fca42f4282c48c4d","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        raise exception.NotImplemented()  # pragma: no cover"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    @abc.abstractmethod"},{"line_number":117,"context_line":"    def list_idps(self, hint):"},{"line_number":118,"context_line":"        \"\"\"List all identity providers."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        :param hints: filter hints which the driver should"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_9c0f4836","line":117,"updated":"2015-11-29 22:08:28.000000000","message":"add an S here, to hints :)","commit_id":"875ec46100320f257a9ee69f68cded3cfe383da8"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"7e7fb05b78dba5cbb8fe163f857a6c97b0ff77b4","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        raise exception.NotImplemented()  # pragma: no cover"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    @abc.abstractmethod"},{"line_number":117,"context_line":"    def list_idps(self, hint):"},{"line_number":118,"context_line":"        \"\"\"List all identity providers."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        :param hints: filter hints which the driver should"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_ff0a061f","line":117,"in_reply_to":"9a8ffd7b_9c0f4836","updated":"2015-11-29 22:09:01.000000000","message":"because it\u0027s the implementation:\n\n  def list_idps(self, hints\u003dNone):","commit_id":"875ec46100320f257a9ee69f68cded3cfe383da8"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"26c1c76c8d8af0d5a7b281b017e965b8d2a07ed7","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        raise exception.NotImplemented()  # pragma: no cover"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    @abc.abstractmethod"},{"line_number":117,"context_line":"    def list_idps(self, hint):"},{"line_number":118,"context_line":"        \"\"\"List all identity providers."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        :param hints: filter hints which the driver should"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_7fb85611","line":117,"in_reply_to":"9a8ffd7b_ff0a061f","updated":"2015-11-29 22:54:22.000000000","message":"confirmed, my eyes are shortsighted. :)","commit_id":"875ec46100320f257a9ee69f68cded3cfe383da8"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"a3d5e05673ae9254a51d25c0c843cb6051c6c277","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        raise exception.NotImplemented()  # pragma: no cover"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    @abc.abstractmethod"},{"line_number":118,"context_line":"    def list_idps(self, hints):"},{"line_number":119,"context_line":"        \"\"\"List all identity providers."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        :param hints: filter hints which the driver should"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a710552_774da471","line":118,"updated":"2015-12-15 07:59:08.000000000","message":"ugh.... i think we have to make a new V9 driver for this :(","commit_id":"5298e3b29fc7df5a5affb45fdbb9c8b5b237932a"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"7f144ebddfa67a236473e25589635d9778266878","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        raise exception.NotImplemented()  # pragma: no cover"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    @abc.abstractmethod"},{"line_number":118,"context_line":"    def list_idps(self, hints):"},{"line_number":119,"context_line":"        \"\"\"List all identity providers."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        :param hints: filter hints which the driver should"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a7b0d38_bc55a4c2","line":118,"in_reply_to":"5a710552_774da471","updated":"2015-12-29 08:46:21.000000000","message":"I will address this in a follow up review.","commit_id":"5298e3b29fc7df5a5affb45fdbb9c8b5b237932a"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"ee1b8d44b900f202edeb08d86d5068489a8dd76f","unresolved":false,"context_lines":[{"line_number":455,"context_line":"    def delete_idp(self, idp_id):"},{"line_number":456,"context_line":"        self.driver.delete_idp(idp_id)"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"    def list_idps(self, hints):"},{"line_number":459,"context_line":"        return self.driver.list_idps()"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"    def get_idp(self, idp_id):"}],"source_content_type":"text/x-python","patch_set":13,"id":"da6ed579_702101fb","line":458,"range":{"start_line":458,"start_character":8,"end_line":458,"end_character":30},"updated":"2016-01-13 03:00:33.000000000","message":"So there is some subtlety as to why ignoring hints here will still allow the new test you have added to pass (one might initially think they would fail) - and more generally cause problems with V8 drivers. The subtlety is, of course, that the hints remain unsatisfied and the controllerV3 wrapper will apply the filters any unsatisfied filters at the end. It may be worth adding a comment to this effect.","commit_id":"f95ecfce7402d282da9cb6090c0a7f57f4489f85"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"ddd048805636efd5e20fe67462d839292813f028","unresolved":false,"context_lines":[{"line_number":455,"context_line":"    def delete_idp(self, idp_id):"},{"line_number":456,"context_line":"        self.driver.delete_idp(idp_id)"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"    def list_idps(self, hints):"},{"line_number":459,"context_line":"        return self.driver.list_idps()"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"    def get_idp(self, idp_id):"}],"source_content_type":"text/x-python","patch_set":13,"id":"da6ed579_334b9389","line":458,"range":{"start_line":458,"start_character":8,"end_line":458,"end_character":30},"in_reply_to":"da6ed579_702101fb","updated":"2016-01-13 03:36:20.000000000","message":"Nice catch! thanks henry!","commit_id":"f95ecfce7402d282da9cb6090c0a7f57f4489f85"}],"keystone/tests/unit/test_v3_federation.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"c2f9fa7e6481ef9374af3ea9222d6de02d170ca6","unresolved":false,"context_lines":[{"line_number":1018,"context_line":""},{"line_number":1019,"context_line":"    def test_filter_list_idp_by_invalid_filter(self):"},{"line_number":1020,"context_line":"        \"\"\"Call ``GET /OS-FEDERATION/identity_providers/?foo\u003d\u003csome name\u003e``.\"\"\""},{"line_number":1021,"context_line":"        foo_value \u003d uuid.uuid4().hex"},{"line_number":1022,"context_line":"        context \u003d {\u0027query_string\u0027: {\"foo\": foo_value}}"},{"line_number":1023,"context_line":"        self._create_default_idp()"},{"line_number":1024,"context_line":"        supported_filters \u003d (\u0027id\u0027, \u0027enabled\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_c8998fc5","line":1021,"updated":"2015-11-29 17:20:59.000000000","message":"nit, add whitespace before here","commit_id":"a70cf9dcab3771894c44ae1bf2cc7c25f83a1022"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"8486e47252a31c9b48704eca790ed9ec3a8981bb","unresolved":false,"context_lines":[{"line_number":1018,"context_line":""},{"line_number":1019,"context_line":"    def test_filter_list_idp_by_invalid_filter(self):"},{"line_number":1020,"context_line":"        \"\"\"Call ``GET /OS-FEDERATION/identity_providers/?foo\u003d\u003csome name\u003e``.\"\"\""},{"line_number":1021,"context_line":"        foo_value \u003d uuid.uuid4().hex"},{"line_number":1022,"context_line":"        context \u003d {\u0027query_string\u0027: {\"foo\": foo_value}}"},{"line_number":1023,"context_line":"        self._create_default_idp()"},{"line_number":1024,"context_line":"        supported_filters \u003d (\u0027id\u0027, \u0027enabled\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_88762704","line":1021,"in_reply_to":"9a8ffd7b_c8998fc5","updated":"2015-11-29 19:52:52.000000000","message":"you meant between docstring and code? i saw there is no blank line there in other testcases, i like to keep it as is to consistent with other testcases. :)","commit_id":"a70cf9dcab3771894c44ae1bf2cc7c25f83a1022"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"c2f9fa7e6481ef9374af3ea9222d6de02d170ca6","unresolved":false,"context_lines":[{"line_number":1019,"context_line":"    def test_filter_list_idp_by_invalid_filter(self):"},{"line_number":1020,"context_line":"        \"\"\"Call ``GET /OS-FEDERATION/identity_providers/?foo\u003d\u003csome name\u003e``.\"\"\""},{"line_number":1021,"context_line":"        foo_value \u003d uuid.uuid4().hex"},{"line_number":1022,"context_line":"        context \u003d {\u0027query_string\u0027: {\"foo\": foo_value}}"},{"line_number":1023,"context_line":"        self._create_default_idp()"},{"line_number":1024,"context_line":"        supported_filters \u003d (\u0027id\u0027, \u0027enabled\u0027)"},{"line_number":1025,"context_line":"        # doesn\u0027t ignore arbitrary filter by default"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_287e1b6a","line":1022,"updated":"2015-11-29 17:20:59.000000000","message":"use uuid both times:\n\n  context \u003d {\u0027query_string\u0027: {uuid.uuid4().hex: uuid.uuid4().hex}}","commit_id":"a70cf9dcab3771894c44ae1bf2cc7c25f83a1022"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"8486e47252a31c9b48704eca790ed9ec3a8981bb","unresolved":false,"context_lines":[{"line_number":1019,"context_line":"    def test_filter_list_idp_by_invalid_filter(self):"},{"line_number":1020,"context_line":"        \"\"\"Call ``GET /OS-FEDERATION/identity_providers/?foo\u003d\u003csome name\u003e``.\"\"\""},{"line_number":1021,"context_line":"        foo_value \u003d uuid.uuid4().hex"},{"line_number":1022,"context_line":"        context \u003d {\u0027query_string\u0027: {\"foo\": foo_value}}"},{"line_number":1023,"context_line":"        self._create_default_idp()"},{"line_number":1024,"context_line":"        supported_filters \u003d (\u0027id\u0027, \u0027enabled\u0027)"},{"line_number":1025,"context_line":"        # doesn\u0027t ignore arbitrary filter by default"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_68c2e3ea","line":1022,"in_reply_to":"9a8ffd7b_287e1b6a","updated":"2015-11-29 19:52:52.000000000","message":"Done","commit_id":"a70cf9dcab3771894c44ae1bf2cc7c25f83a1022"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"c2f9fa7e6481ef9374af3ea9222d6de02d170ca6","unresolved":false,"context_lines":[{"line_number":1022,"context_line":"        context \u003d {\u0027query_string\u0027: {\"foo\": foo_value}}"},{"line_number":1023,"context_line":"        self._create_default_idp()"},{"line_number":1024,"context_line":"        supported_filters \u003d (\u0027id\u0027, \u0027enabled\u0027)"},{"line_number":1025,"context_line":"        # doesn\u0027t ignore arbitrary filter by default"},{"line_number":1026,"context_line":"        hints \u003d controller.V3Controller.build_driver_hints(context,"},{"line_number":1027,"context_line":"                                                           supported_filters)"},{"line_number":1028,"context_line":"        with mock.patch.object(controller.V3Controller, \u0027build_driver_hints\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_e894938b","line":1025,"updated":"2015-11-29 17:20:59.000000000","message":"nit, add whitespace before here","commit_id":"a70cf9dcab3771894c44ae1bf2cc7c25f83a1022"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"8486e47252a31c9b48704eca790ed9ec3a8981bb","unresolved":false,"context_lines":[{"line_number":1022,"context_line":"        context \u003d {\u0027query_string\u0027: {\"foo\": foo_value}}"},{"line_number":1023,"context_line":"        self._create_default_idp()"},{"line_number":1024,"context_line":"        supported_filters \u003d (\u0027id\u0027, \u0027enabled\u0027)"},{"line_number":1025,"context_line":"        # doesn\u0027t ignore arbitrary filter by default"},{"line_number":1026,"context_line":"        hints \u003d controller.V3Controller.build_driver_hints(context,"},{"line_number":1027,"context_line":"                                                           supported_filters)"},{"line_number":1028,"context_line":"        with mock.patch.object(controller.V3Controller, \u0027build_driver_hints\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_9c23c855","line":1025,"in_reply_to":"9a8ffd7b_e894938b","updated":"2015-11-29 19:52:52.000000000","message":"Done","commit_id":"a70cf9dcab3771894c44ae1bf2cc7c25f83a1022"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"c2f9fa7e6481ef9374af3ea9222d6de02d170ca6","unresolved":false,"context_lines":[{"line_number":1034,"context_line":"            self.assertEqual(0, len(filtered_service_list))"},{"line_number":1035,"context_line":""},{"line_number":1036,"context_line":"        # ignore arbitrary filter"},{"line_number":1037,"context_line":"        hints \u003d controller.V3Controller.build_driver_hints("},{"line_number":1038,"context_line":"            context,"},{"line_number":1039,"context_line":"            supported_filters,"},{"line_number":1040,"context_line":"            ignore_arbitrary_query\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_48ecbf29","line":1037,"updated":"2015-11-29 17:20:59.000000000","message":"a lot of duplicated code here with a few lines above, you could loop over it twice or create a small private function","commit_id":"a70cf9dcab3771894c44ae1bf2cc7c25f83a1022"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"8486e47252a31c9b48704eca790ed9ec3a8981bb","unresolved":false,"context_lines":[{"line_number":1034,"context_line":"            self.assertEqual(0, len(filtered_service_list))"},{"line_number":1035,"context_line":""},{"line_number":1036,"context_line":"        # ignore arbitrary filter"},{"line_number":1037,"context_line":"        hints \u003d controller.V3Controller.build_driver_hints("},{"line_number":1038,"context_line":"            context,"},{"line_number":1039,"context_line":"            supported_filters,"},{"line_number":1040,"context_line":"            ignore_arbitrary_query\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_08b5577c","line":1037,"in_reply_to":"9a8ffd7b_48ecbf29","updated":"2015-11-29 19:52:52.000000000","message":"Done","commit_id":"a70cf9dcab3771894c44ae1bf2cc7c25f83a1022"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"a3d5e05673ae9254a51d25c0c843cb6051c6c277","unresolved":false,"context_lines":[{"line_number":1060,"context_line":"        self.assertItemsEqual(entities_ids, [idp1_id, idp2_id])"},{"line_number":1061,"context_line":""},{"line_number":1062,"context_line":"        # filter the IdP by \u0027enabled\u0027."},{"line_number":1063,"context_line":"        url \u003d self.base_url() + \u0027?enabled\u003d\u0027 + \u00271\u0027"},{"line_number":1064,"context_line":"        resp \u003d self.get(url)"},{"line_number":1065,"context_line":"        filtered_service_list \u003d resp.json[\u0027identity_providers\u0027]"},{"line_number":1066,"context_line":"        self.assertThat(filtered_service_list, matchers.HasLength(1))"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a710552_74184285","line":1063,"updated":"2015-12-15 07:59:08.000000000","message":"should this be \"enabled\u003dtrue\"?","commit_id":"5298e3b29fc7df5a5affb45fdbb9c8b5b237932a"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"7f144ebddfa67a236473e25589635d9778266878","unresolved":false,"context_lines":[{"line_number":1060,"context_line":"        self.assertItemsEqual(entities_ids, [idp1_id, idp2_id])"},{"line_number":1061,"context_line":""},{"line_number":1062,"context_line":"        # filter the IdP by \u0027enabled\u0027."},{"line_number":1063,"context_line":"        url \u003d self.base_url() + \u0027?enabled\u003d\u0027 + \u00271\u0027"},{"line_number":1064,"context_line":"        resp \u003d self.get(url)"},{"line_number":1065,"context_line":"        filtered_service_list \u003d resp.json[\u0027identity_providers\u0027]"},{"line_number":1066,"context_line":"        self.assertThat(filtered_service_list, matchers.HasLength(1))"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a7b0d38_3c9d3466","line":1063,"in_reply_to":"5a710552_74184285","updated":"2015-12-29 08:46:21.000000000","message":"both of them is okay i think, change this to `?enabled\u003dTrue`","commit_id":"5298e3b29fc7df5a5affb45fdbb9c8b5b237932a"}],"releasenotes/notes/enable-filter-idp-d0135f4615178cfc.yaml":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"a3d5e05673ae9254a51d25c0c843cb6051c6c277","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1525317 \u003chttps://bugs.launchpad.net/keystone/+bug/1525317\u003e`_]"},{"line_number":5,"context_line":"    Enable to list Identity Provider based on ``id``, ``enabled`` attributes."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"5a710552_972b7082","line":5,"updated":"2015-12-15 07:59:08.000000000","message":"small rewording suggestion:\n\n\"Enable filtering of identity providers based on ``id``, and ``enabled`` attributes.\"","commit_id":"5298e3b29fc7df5a5affb45fdbb9c8b5b237932a"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"7f144ebddfa67a236473e25589635d9778266878","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1525317 \u003chttps://bugs.launchpad.net/keystone/+bug/1525317\u003e`_]"},{"line_number":5,"context_line":"    Enable to list Identity Provider based on ``id``, ``enabled`` attributes."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"1a7b0d38_7cdf3c69","line":5,"in_reply_to":"5a710552_972b7082","updated":"2015-12-29 08:46:21.000000000","message":"Done","commit_id":"5298e3b29fc7df5a5affb45fdbb9c8b5b237932a"}]}
