)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"d772261809462309848a59e845b01c6d716e23fa","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Routes for Keystone-IdP metadata endpoint."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Keystone acting as a Identity Providr should expose an endpoint where"},{"line_number":10,"context_line":"federated peers can access its SAML2 Metadata file."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I94d26ce88d2468af71bc1c9d1cba1b422da4480e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1abeadc6_c3f07993","line":9,"updated":"2014-08-31 04:35:27.000000000","message":"an* Identity Provider*","commit_id":"9bd2e6c9551d92bfe54d93b9288c526f324be1b0"}],"keystone/common/config.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"d772261809462309848a59e845b01c6d716e23fa","unresolved":false,"context_lines":[{"line_number":846,"context_line":"                        \u0027technical, support, administrative \u0027"},{"line_number":847,"context_line":"                        \u0027billing, other]\u0027),"},{"line_number":848,"context_line":"        cfg.StrOpt(\u0027idp_metadata_path\u0027,"},{"line_number":849,"context_line":"                   default\u003d\u0027/etc/keystone/saml2_idp_metadata.xml\u0027,"},{"line_number":850,"context_line":"                   help\u003d\u0027Path to the Identity Provider Metadata file. \u0027"},{"line_number":851,"context_line":"                        \u0027Such file should be generated with keystone-manage \u0027"},{"line_number":852,"context_line":"                        \u0027command.\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"1abeadc6_c3e319a2","line":849,"updated":"2014-08-31 04:35:27.000000000","message":"If we\u0027re going to default to this directory and file name, we should make sure the keystone manage command does that","commit_id":"9bd2e6c9551d92bfe54d93b9288c526f324be1b0"},{"author":{"_account_id":6282,"name":"Wu Wenxiang","email":"wu.wenxiang@algoblu.com","username":"wu-wenxiang"},"change_message_id":"38979bec0247f9baafc880e954cd7a9f8509f98c","unresolved":false,"context_lines":[{"line_number":846,"context_line":"                        \u0027technical, support, administrative \u0027"},{"line_number":847,"context_line":"                        \u0027billing, other]\u0027),"},{"line_number":848,"context_line":"        cfg.StrOpt(\u0027idp_metadata_path\u0027,"},{"line_number":849,"context_line":"                   default\u003d\u0027/etc/keystone/saml2_idp_metadata.xml\u0027,"},{"line_number":850,"context_line":"                   help\u003d\u0027Path to the Identity Provider Metadata file. \u0027"},{"line_number":851,"context_line":"                        \u0027Such file should be generated with keystone-manage \u0027"},{"line_number":852,"context_line":"                        \u0027command.\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_e0944046","line":849,"in_reply_to":"1abeadc6_c3e319a2","updated":"2014-08-31 23:58:46.000000000","message":"Agree +1","commit_id":"9bd2e6c9551d92bfe54d93b9288c526f324be1b0"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"d6eeb37f7937d5230147ce691db65339ed8ae28f","unresolved":false,"context_lines":[{"line_number":846,"context_line":"                        \u0027technical, support, administrative \u0027"},{"line_number":847,"context_line":"                        \u0027billing, other]\u0027),"},{"line_number":848,"context_line":"        cfg.StrOpt(\u0027idp_metadata_path\u0027,"},{"line_number":849,"context_line":"                   default\u003d\u0027/etc/keystone/saml2_idp_metadata.xml\u0027,"},{"line_number":850,"context_line":"                   help\u003d\u0027Path to the Identity Provider Metadata file. \u0027"},{"line_number":851,"context_line":"                        \u0027Such file should be generated with keystone-manage \u0027"},{"line_number":852,"context_line":"                        \u0027command.\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_54186e84","line":849,"in_reply_to":"1abeadc6_c3e319a2","updated":"2014-09-01 04:37:41.000000000","message":"upon further investigation, the CLI tool might not have access to this directory, so i think this is fine.","commit_id":"9bd2e6c9551d92bfe54d93b9288c526f324be1b0"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"95898e167bfe19c72e19fee8505f47757eb178fa","unresolved":false,"context_lines":[{"line_number":858,"context_line":"                   default\u003d\u0027/etc/keystone/saml2_idp_metadata.xml\u0027,"},{"line_number":859,"context_line":"                   help\u003d\u0027Path to the Identity Provider Metadata file. \u0027"},{"line_number":860,"context_line":"                        \u0027This file should be generated with the \u0027"},{"line_number":861,"context_line":"                        \u0027keystone-manage command.\u0027),"},{"line_number":862,"context_line":"    ]"},{"line_number":863,"context_line":"}"},{"line_number":864,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"fa98f980_fe1bc3c7","line":861,"updated":"2014-09-02 04:19:51.000000000","message":"which keystone-manage command?","commit_id":"53735c1260dda973ea4ff5e3f32335cac43e049d"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2be372fc212eb4fbb1ad3bdc131a3102d646d9a2","unresolved":false,"context_lines":[{"line_number":858,"context_line":"                   default\u003d\u0027/etc/keystone/saml2_idp_metadata.xml\u0027,"},{"line_number":859,"context_line":"                   help\u003d\u0027Path to the Identity Provider Metadata file. \u0027"},{"line_number":860,"context_line":"                        \u0027This file should be generated with the \u0027"},{"line_number":861,"context_line":"                        \u0027keystone-manage command.\u0027),"},{"line_number":862,"context_line":"    ]"},{"line_number":863,"context_line":"}"},{"line_number":864,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"fa98f980_1fe15e9a","line":861,"in_reply_to":"fa98f980_fe1bc3c7","updated":"2014-09-02 06:36:06.000000000","message":"suggest: keystone-manage --saml_idp_metadata command","commit_id":"53735c1260dda973ea4ff5e3f32335cac43e049d"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"3f48948ea8bc4a5109e7edfe3b35cbacbb5fe4cc","unresolved":false,"context_lines":[{"line_number":864,"context_line":"                   default\u003d\u0027/etc/keystone/saml2_idp_metadata.xml\u0027,"},{"line_number":865,"context_line":"                   help\u003d\u0027Path to the Identity Provider Metadata file. \u0027"},{"line_number":866,"context_line":"                        \u0027This file should be generated with the \u0027"},{"line_number":867,"context_line":"                        \u0027keystone-manage command.\u0027),"},{"line_number":868,"context_line":"    ]"},{"line_number":869,"context_line":"}"},{"line_number":870,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_17112cac","line":867,"updated":"2014-09-02 16:22:13.000000000","message":"Where we going to specify which command like Dolph asked?","commit_id":"dafddad0af864f227823c76d676f4490fdcc0643"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"11356f03401701c4847aee1f1d0ba7eb37dc68b0","unresolved":false,"context_lines":[{"line_number":864,"context_line":"                   default\u003d\u0027/etc/keystone/saml2_idp_metadata.xml\u0027,"},{"line_number":865,"context_line":"                   help\u003d\u0027Path to the Identity Provider Metadata file. \u0027"},{"line_number":866,"context_line":"                        \u0027This file should be generated with the \u0027"},{"line_number":867,"context_line":"                        \u0027keystone-manage command.\u0027),"},{"line_number":868,"context_line":"    ]"},{"line_number":869,"context_line":"}"},{"line_number":870,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_8e726147","line":867,"in_reply_to":"fa98f980_17112cac","updated":"2014-09-02 18:30:57.000000000","message":"Done","commit_id":"dafddad0af864f227823c76d676f4490fdcc0643"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"6b74cc5f2c63985abc17e602cb6d14017e3d62c3","unresolved":false,"context_lines":[{"line_number":865,"context_line":"        cfg.StrOpt(\u0027idp_metadata_path\u0027,"},{"line_number":866,"context_line":"                   default\u003d\u0027/etc/keystone/saml2_idp_metadata.xml\u0027,"},{"line_number":867,"context_line":"                   help\u003d\u0027Path to the Identity Provider Metadata file. \u0027"},{"line_number":868,"context_line":"                        \u0027This file should be generated with the \u0027"},{"line_number":869,"context_line":"                        \u0027keystone-manage --saml_idp_metadata command.\u0027),"},{"line_number":870,"context_line":"    ],"},{"line_number":871,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_af8c7c36","line":868,"updated":"2014-09-02 21:24:50.000000000","message":"s/should/may/ IF there are other ways to create the data?","commit_id":"3be80c1d8fa9417ec75797eba80e9ee8e8b20fc4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"bf0d3d5b007aaa2cfb2fd7225b1ee3ad5d78f4f1","unresolved":false,"context_lines":[{"line_number":865,"context_line":"        cfg.StrOpt(\u0027idp_metadata_path\u0027,"},{"line_number":866,"context_line":"                   default\u003d\u0027/etc/keystone/saml2_idp_metadata.xml\u0027,"},{"line_number":867,"context_line":"                   help\u003d\u0027Path to the Identity Provider Metadata file. \u0027"},{"line_number":868,"context_line":"                        \u0027This file should be generated with the \u0027"},{"line_number":869,"context_line":"                        \u0027keystone-manage --saml_idp_metadata command.\u0027),"},{"line_number":870,"context_line":"    ],"},{"line_number":871,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_a5be5bd2","line":868,"in_reply_to":"fa98f980_af8c7c36","updated":"2014-09-02 21:57:41.000000000","message":"Done","commit_id":"3be80c1d8fa9417ec75797eba80e9ee8e8b20fc4"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"6b74cc5f2c63985abc17e602cb6d14017e3d62c3","unresolved":false,"context_lines":[{"line_number":866,"context_line":"                   default\u003d\u0027/etc/keystone/saml2_idp_metadata.xml\u0027,"},{"line_number":867,"context_line":"                   help\u003d\u0027Path to the Identity Provider Metadata file. \u0027"},{"line_number":868,"context_line":"                        \u0027This file should be generated with the \u0027"},{"line_number":869,"context_line":"                        \u0027keystone-manage --saml_idp_metadata command.\u0027),"},{"line_number":870,"context_line":"    ],"},{"line_number":871,"context_line":"}"},{"line_number":872,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_afed5c27","line":869,"updated":"2014-09-02 21:24:50.000000000","message":"there\u0027s no --\n\nit\u0027s just \"keystone-manage saml_idp_metadata\"","commit_id":"3be80c1d8fa9417ec75797eba80e9ee8e8b20fc4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"bf0d3d5b007aaa2cfb2fd7225b1ee3ad5d78f4f1","unresolved":false,"context_lines":[{"line_number":866,"context_line":"                   default\u003d\u0027/etc/keystone/saml2_idp_metadata.xml\u0027,"},{"line_number":867,"context_line":"                   help\u003d\u0027Path to the Identity Provider Metadata file. \u0027"},{"line_number":868,"context_line":"                        \u0027This file should be generated with the \u0027"},{"line_number":869,"context_line":"                        \u0027keystone-manage --saml_idp_metadata command.\u0027),"},{"line_number":870,"context_line":"    ],"},{"line_number":871,"context_line":"}"},{"line_number":872,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_85bb17e4","line":869,"in_reply_to":"fa98f980_afed5c27","updated":"2014-09-02 21:57:41.000000000","message":"Done","commit_id":"3be80c1d8fa9417ec75797eba80e9ee8e8b20fc4"}],"keystone/contrib/federation/controllers.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"58a34137141e51eeee10fcb687493426edc6823f","unresolved":false,"context_lines":[{"line_number":307,"context_line":"                metadata \u003d metadata_handler.read()"},{"line_number":308,"context_line":"        except IOError as e:"},{"line_number":309,"context_line":"            # Raise HTTP 500 in case Metadata file cannot be read."},{"line_number":310,"context_line":"            raise exception.MetadataFileError(reason\u003de)"},{"line_number":311,"context_line":"        return wsgi.render_response(body\u003dmetadata, status\u003d(\u0027200\u0027, \u0027OK\u0027),"},{"line_number":312,"context_line":"                                    headers\u003d[(\u0027Content-Type\u0027, \u0027text/xml\u0027)])"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa98f980_f074ee9d","line":310,"updated":"2014-09-02 02:56:54.000000000","message":"Is it OK that it\u0027s a 500 even is the file just doesn\u0027t exist?","commit_id":"53735c1260dda973ea4ff5e3f32335cac43e049d"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"32097440e10ecb437381fe904becac346a71e1ab","unresolved":false,"context_lines":[{"line_number":307,"context_line":"                metadata \u003d metadata_handler.read()"},{"line_number":308,"context_line":"        except IOError as e:"},{"line_number":309,"context_line":"            # Raise HTTP 500 in case Metadata file cannot be read."},{"line_number":310,"context_line":"            raise exception.MetadataFileError(reason\u003de)"},{"line_number":311,"context_line":"        return wsgi.render_response(body\u003dmetadata, status\u003d(\u0027200\u0027, \u0027OK\u0027),"},{"line_number":312,"context_line":"                                    headers\u003d[(\u0027Content-Type\u0027, \u0027text/xml\u0027)])"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa98f980_be63fbdb","line":310,"in_reply_to":"fa98f980_f074ee9d","updated":"2014-09-02 03:59:05.000000000","message":"I think so, the message is going to have enough information in there. \n\nif anything we should log the error as well.","commit_id":"53735c1260dda973ea4ff5e3f32335cac43e049d"}],"keystone/contrib/federation/routers.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0169b4e16d8a9098edfb4c920db6ae69cf9dc167","unresolved":false,"context_lines":[{"line_number":125,"context_line":"                                     \u0027protocols/{protocol}/auth\u0027),"},{"line_number":126,"context_line":"            get_post_action\u003d\u0027federated_authentication\u0027)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        # Keystone-Identity-Provider metadata endpoint"},{"line_number":129,"context_line":"        self._add_resource("},{"line_number":130,"context_line":"            mapper, saml_metadata_controller,"},{"line_number":131,"context_line":"            path\u003dself._construct_url(\u0027saml2/metadata\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_b43a7a34","line":128,"updated":"2014-09-01 04:03:29.000000000","message":"missing json home support","commit_id":"9bd2e6c9551d92bfe54d93b9288c526f324be1b0"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"d6eeb37f7937d5230147ce691db65339ed8ae28f","unresolved":false,"context_lines":[{"line_number":125,"context_line":"                                     \u0027protocols/{protocol}/auth\u0027),"},{"line_number":126,"context_line":"            get_post_action\u003d\u0027federated_authentication\u0027)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        # Keystone-Identity-Provider metadata endpoint"},{"line_number":129,"context_line":"        self._add_resource("},{"line_number":130,"context_line":"            mapper, saml_metadata_controller,"},{"line_number":131,"context_line":"            path\u003dself._construct_url(\u0027saml2/metadata\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_d4245ec8","line":128,"in_reply_to":"fa98f980_b43a7a34","updated":"2014-09-01 04:37:41.000000000","message":"Done","commit_id":"9bd2e6c9551d92bfe54d93b9288c526f324be1b0"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"95898e167bfe19c72e19fee8505f47757eb178fa","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        POST /OS-FEDERATION/identity_providers/$identity_provider/"},{"line_number":68,"context_line":"            protocols/$protocol/auth"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        GET /OS-FEDERATION/saml2/metadata"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    \"\"\""},{"line_number":73,"context_line":"    def _construct_url(self, suffix):"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa98f980_7ed513b8","line":70,"updated":"2014-09-02 04:19:51.000000000","message":"this is an oddly one-off route","commit_id":"53735c1260dda973ea4ff5e3f32335cac43e049d"}],"keystone/exception.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4ffa97dbcdd5d91df56a466d1f527162ca28905d","unresolved":false,"context_lines":[{"line_number":354,"context_line":""},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"class MetadataFileError(UnexpectedError):"},{"line_number":357,"context_line":"    message_format \u003d _(\"Error while rading Metadata file, %(reason)s\")"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"class NotImplemented(Error):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1abeadc6_52d12ccc","line":357,"updated":"2014-08-26 05:45:30.000000000","message":"s/rading/reading","commit_id":"558900f69a9ccfcaefb80e2004a1ee058cc54ce2"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"2e6dce1c03ebfe140328d3f470bc5c79aab1a874","unresolved":false,"context_lines":[{"line_number":354,"context_line":""},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"class MetadataFileError(UnexpectedError):"},{"line_number":357,"context_line":"    message_format \u003d _(\"Error while rading Metadata file, %(reason)s\")"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"class NotImplemented(Error):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1abeadc6_cb9a3e13","line":357,"updated":"2014-08-29 15:01:09.000000000","message":"Same comment from Steve on previous patch set. Also, would we be able to inject the metadata file location? Might be useful for the user.","commit_id":"9bd2e6c9551d92bfe54d93b9288c526f324be1b0"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"d6eeb37f7937d5230147ce691db65339ed8ae28f","unresolved":false,"context_lines":[{"line_number":354,"context_line":""},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"class MetadataFileError(UnexpectedError):"},{"line_number":357,"context_line":"    message_format \u003d _(\"Error while rading Metadata file, %(reason)s\")"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"class NotImplemented(Error):"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_3455aa1d","line":357,"in_reply_to":"1abeadc6_cb9a3e13","updated":"2014-09-01 04:37:41.000000000","message":"changed to reading*","commit_id":"9bd2e6c9551d92bfe54d93b9288c526f324be1b0"}],"keystone/tests/test_v3_federation.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4ffa97dbcdd5d91df56a466d1f527162ca28905d","unresolved":false,"context_lines":[{"line_number":1738,"context_line":"    def test_get_metadata_fail(self):"},{"line_number":1739,"context_line":"        self.get(self.METADATA_URL, expected_status\u003d500)"},{"line_number":1740,"context_line":""},{"line_number":1741,"context_line":"    def test_get_metadata(self):"},{"line_number":1742,"context_line":"        CONF.federation.idp_metadata_path \u003d XMLDIR + \u0027/idp_saml2_metadata.xml\u0027"},{"line_number":1743,"context_line":"        r \u003d self.get(self.METADATA_URL, response_content_type\u003d\u0027text/xml\u0027,"},{"line_number":1744,"context_line":"                     expected_status\u003d200)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1abeadc6_1295f4e3","line":1741,"updated":"2014-08-26 05:45:30.000000000","message":"nice test","commit_id":"558900f69a9ccfcaefb80e2004a1ee058cc54ce2"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"6b74cc5f2c63985abc17e602cb6d14017e3d62c3","unresolved":false,"context_lines":[{"line_number":1881,"context_line":"        self.assertRaises(exception.ValidationError,"},{"line_number":1882,"context_line":"                          self.generator.generate_metadata)"},{"line_number":1883,"context_line":""},{"line_number":1884,"context_line":"    def test_get_metadata_fail(self):"},{"line_number":1885,"context_line":"        self.get(self.METADATA_URL, expected_status\u003d500)"},{"line_number":1886,"context_line":""},{"line_number":1887,"context_line":"    def test_get_metadata(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_6f68d487","line":1884,"updated":"2014-09-02 21:24:50.000000000","message":"get_metadata_with_wrong_path_configured_by_default? _fail is too generic","commit_id":"3be80c1d8fa9417ec75797eba80e9ee8e8b20fc4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"bf0d3d5b007aaa2cfb2fd7225b1ee3ad5d78f4f1","unresolved":false,"context_lines":[{"line_number":1881,"context_line":"        self.assertRaises(exception.ValidationError,"},{"line_number":1882,"context_line":"                          self.generator.generate_metadata)"},{"line_number":1883,"context_line":""},{"line_number":1884,"context_line":"    def test_get_metadata_fail(self):"},{"line_number":1885,"context_line":"        self.get(self.METADATA_URL, expected_status\u003d500)"},{"line_number":1886,"context_line":""},{"line_number":1887,"context_line":"    def test_get_metadata(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_05cf2780","line":1884,"in_reply_to":"fa98f980_6f68d487","updated":"2014-09-02 21:57:41.000000000","message":"Done","commit_id":"3be80c1d8fa9417ec75797eba80e9ee8e8b20fc4"}],"keystone/tests/xml/idp_saml2_metadata.xml":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4ffa97dbcdd5d91df56a466d1f527162ca28905d","unresolved":false,"context_lines":[{"line_number":10,"context_line":"      \u003c/ns1:KeyInfo\u003e"},{"line_number":11,"context_line":"    \u003c/ns0:KeyDescriptor\u003e"},{"line_number":12,"context_line":"  \u003c/ns0:IDPSSODescriptor\u003e"},{"line_number":13,"context_line":"\u003c/ns0:EntityDescriptor\u003e"}],"source_content_type":"application/xml","patch_set":3,"id":"1abeadc6_f2f8784b","line":13,"updated":"2014-08-26 05:45:30.000000000","message":"shouldn\u0027t this have contact / company info?","commit_id":"558900f69a9ccfcaefb80e2004a1ee058cc54ce2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"d6eeb37f7937d5230147ce691db65339ed8ae28f","unresolved":false,"context_lines":[{"line_number":10,"context_line":"      \u003c/ns1:KeyInfo\u003e"},{"line_number":11,"context_line":"    \u003c/ns0:KeyDescriptor\u003e"},{"line_number":12,"context_line":"  \u003c/ns0:IDPSSODescriptor\u003e"},{"line_number":13,"context_line":"\u003c/ns0:EntityDescriptor\u003e"}],"source_content_type":"application/xml","patch_set":4,"id":"fa98f980_ef0fcb2c","line":13,"updated":"2014-09-01 04:37:41.000000000","message":"adding contact information here","commit_id":"9bd2e6c9551d92bfe54d93b9288c526f324be1b0"}]}
