)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"0feab9ad894ce5b5a2ebca9ad84a3b4425a5086c","unresolved":false,"context_lines":[{"line_number":31,"context_line":"gerrit review:"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"enable_plugin keystone $KEYSTONE_REPO"},{"line_number":34,"context_line":"enable_service federation"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Change-Id: I6f7491ff063359d7065c77b00fe5bfc76f8587d6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a77a97e_f378c3c6","line":34,"range":{"start_line":34,"start_character":15,"end_line":34,"end_character":25},"updated":"2016-11-16 17:24:07.000000000","message":"currently is \"keystone-federation\"","commit_id":"48cc466bd23a0fef48c7c1a67a21d8afc0bf2eae"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"06ef73a0653dbd01e6f0f5cbf7e1a78489738785","unresolved":false,"context_lines":[{"line_number":31,"context_line":"gerrit review:"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"enable_plugin keystone $KEYSTONE_REPO"},{"line_number":34,"context_line":"enable_service federation"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Change-Id: I6f7491ff063359d7065c77b00fe5bfc76f8587d6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a77a97e_659109f1","line":34,"range":{"start_line":34,"start_character":15,"end_line":34,"end_character":25},"in_reply_to":"7a77a97e_f378c3c6","updated":"2016-11-17 18:48:13.000000000","message":"Done","commit_id":"48cc466bd23a0fef48c7c1a67a21d8afc0bf2eae"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"0feab9ad894ce5b5a2ebca9ad84a3b4425a5086c","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"enable_plugin keystone $KEYSTONE_REPO"},{"line_number":34,"context_line":"enable_service federation"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Change-Id: I6f7491ff063359d7065c77b00fe5bfc76f8587d6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a77a97e_13229fb9","line":35,"updated":"2016-11-16 17:24:07.000000000","message":"what do you think about calling \"keystone-saml2-federation\", since we might have other protocols supported for different protocols.","commit_id":"48cc466bd23a0fef48c7c1a67a21d8afc0bf2eae"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"06ef73a0653dbd01e6f0f5cbf7e1a78489738785","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"enable_plugin keystone $KEYSTONE_REPO"},{"line_number":34,"context_line":"enable_service federation"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Change-Id: I6f7491ff063359d7065c77b00fe5bfc76f8587d6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a77a97e_a5bde169","line":35,"in_reply_to":"7a77a97e_13229fb9","updated":"2016-11-17 18:48:13.000000000","message":"Done","commit_id":"48cc466bd23a0fef48c7c1a67a21d8afc0bf2eae"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"e01111e8c06265f18e0672beedf1457e69543471","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Devstack plugin to federate with testshib.org"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In a previous patch, I implemented a Devstack plugin to enable"},{"line_number":10,"context_line":"federation and idp features in keystone. The plugin was to be"},{"line_number":11,"context_line":"configured from environment variables for the idp entityID, metadata,"},{"line_number":12,"context_line":"sp_auth_url, sp_url, etc. Providing an endless and untestable matrix"},{"line_number":13,"context_line":"of combinations. Therefore the review was gathering dust waiting for"},{"line_number":14,"context_line":"brave reviewers."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This review extracts the meat of the previous patch and removes all"},{"line_number":17,"context_line":"the configuration options. This plugin now does one thing only: It"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7a77a97e_ea975a37","line":14,"range":{"start_line":9,"start_character":0,"end_line":14,"end_character":16},"updated":"2016-11-20 15:56:31.000000000","message":"this is unnecessary :)","commit_id":"fbafc06ac6c5ae5d4453ea3addc69772bc0c8634"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"e01111e8c06265f18e0672beedf1457e69543471","unresolved":false,"context_lines":[{"line_number":13,"context_line":"of combinations. Therefore the review was gathering dust waiting for"},{"line_number":14,"context_line":"brave reviewers."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This review extracts the meat of the previous patch and removes all"},{"line_number":17,"context_line":"the configuration options. This plugin now does one thing only: It"},{"line_number":18,"context_line":"installs mod_shibboleth and sets up testshib.org as the IdP for keystone."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"While testshib.org will not be used in our functional testing, this"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7a77a97e_0a9bb666","line":17,"range":{"start_line":16,"start_character":12,"end_line":17,"end_character":66},"updated":"2016-11-20 15:56:31.000000000","message":"so is this","commit_id":"fbafc06ac6c5ae5d4453ea3addc69772bc0c8634"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"e01111e8c06265f18e0672beedf1457e69543471","unresolved":false,"context_lines":[{"line_number":25,"context_line":"or a later one, will switch from testshib.org to the local shibboleth."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"This plugin will not yet be run as part of the gate, as \"enable_service"},{"line_number":28,"context_line":"federation\" needs to be added to the Devstack options."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"To run add the following after the lines that set up keystone from a"},{"line_number":31,"context_line":"gerrit review:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7a77a97e_4aa12e93","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":10},"updated":"2016-11-20 15:56:31.000000000","message":"keystone-saml2-federation*","commit_id":"fbafc06ac6c5ae5d4453ea3addc69772bc0c8634"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"e01111e8c06265f18e0672beedf1457e69543471","unresolved":false,"context_lines":[{"line_number":30,"context_line":"To run add the following after the lines that set up keystone from a"},{"line_number":31,"context_line":"gerrit review:"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"enable_plugin keystone $KEYSTONE_REPO"},{"line_number":34,"context_line":"enable_service keystone-saml2-federation"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Change-Id: I6f7491ff063359d7065c77b00fe5bfc76f8587d6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7a77a97e_2a05d244","line":34,"range":{"start_line":33,"start_character":0,"end_line":34,"end_character":40},"updated":"2016-11-20 15:56:31.000000000","message":"it took me a while to figure out how to get this up and running, i realize it\u0027s supposed to go:\n\n  enable_plugin \u003cNAME\u003e \u003cGITURL\u003e [GITREF]\n\nbut it\u0027s maybe not as obvious for how to test something another dev is developing, and not already in tree? I did this\n\n  enable_plugin keystone /opt/stack/keystone fbafc06ac6c5ae5d4453ea3addc69772bc0c8634\n\nmaybe add dev docs? [1] a new section called \"Testing with DevStack plugins\" that explains how to develop a plugin and test it at the same time.\n\n[1] http://docs.openstack.org/developer/keystone/developing.html#testing\n\nnot major, but can be done as a follow-on patch","commit_id":"fbafc06ac6c5ae5d4453ea3addc69772bc0c8634"}],"devstack/files/federation/shib_apache_handler.txt":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"d62629a88008bd6d98fbf489bc6639d3b287a54f","unresolved":false,"context_lines":[{"line_number":3,"context_line":"    SetHandler shib"},{"line_number":4,"context_line":"\u003c/Location\u003e"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"\u003cLocation /v3/OS-FEDERATION/identity_providers/testshib/protocols/mapped/auth\u003e"},{"line_number":7,"context_line":"    ShibRequestSetting requireSession 1"},{"line_number":8,"context_line":"    AuthType shibboleth"},{"line_number":9,"context_line":"    ShibExportAssertion Off"}],"source_content_type":"text/plain","patch_set":2,"id":"7a77a97e_b0a39e4e","line":6,"range":{"start_line":6,"start_character":47,"end_line":6,"end_character":55},"updated":"2016-11-16 18:02:35.000000000","message":"this needs to come from an env variable","commit_id":"48cc466bd23a0fef48c7c1a67a21d8afc0bf2eae"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"06ef73a0653dbd01e6f0f5cbf7e1a78489738785","unresolved":false,"context_lines":[{"line_number":3,"context_line":"    SetHandler shib"},{"line_number":4,"context_line":"\u003c/Location\u003e"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"\u003cLocation /v3/OS-FEDERATION/identity_providers/testshib/protocols/mapped/auth\u003e"},{"line_number":7,"context_line":"    ShibRequestSetting requireSession 1"},{"line_number":8,"context_line":"    AuthType shibboleth"},{"line_number":9,"context_line":"    ShibExportAssertion Off"}],"source_content_type":"text/plain","patch_set":2,"id":"7a77a97e_25cc7169","line":6,"range":{"start_line":6,"start_character":47,"end_line":6,"end_character":55},"in_reply_to":"7a77a97e_aab21e04","updated":"2016-11-17 18:48:13.000000000","message":"Done","commit_id":"48cc466bd23a0fef48c7c1a67a21d8afc0bf2eae"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"06ef73a0653dbd01e6f0f5cbf7e1a78489738785","unresolved":false,"context_lines":[{"line_number":3,"context_line":"    SetHandler shib"},{"line_number":4,"context_line":"\u003c/Location\u003e"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"\u003cLocation /v3/OS-FEDERATION/identity_providers/testshib/protocols/mapped/auth\u003e"},{"line_number":7,"context_line":"    ShibRequestSetting requireSession 1"},{"line_number":8,"context_line":"    AuthType shibboleth"},{"line_number":9,"context_line":"    ShibExportAssertion Off"}],"source_content_type":"text/plain","patch_set":2,"id":"7a77a97e_05b3f5e9","line":6,"range":{"start_line":6,"start_character":47,"end_line":6,"end_character":55},"in_reply_to":"7a77a97e_b0a39e4e","updated":"2016-11-17 18:48:13.000000000","message":"Done","commit_id":"48cc466bd23a0fef48c7c1a67a21d8afc0bf2eae"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"84a29f5c12c8c2ba1b369d3cedf2d5e9e96cb1bb","unresolved":false,"context_lines":[{"line_number":3,"context_line":"    SetHandler shib"},{"line_number":4,"context_line":"\u003c/Location\u003e"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"\u003cLocation /v3/OS-FEDERATION/identity_providers/testshib/protocols/mapped/auth\u003e"},{"line_number":7,"context_line":"    ShibRequestSetting requireSession 1"},{"line_number":8,"context_line":"    AuthType shibboleth"},{"line_number":9,"context_line":"    ShibExportAssertion Off"}],"source_content_type":"text/plain","patch_set":2,"id":"7a77a97e_aab21e04","line":6,"range":{"start_line":6,"start_character":47,"end_line":6,"end_character":55},"in_reply_to":"7a77a97e_b0a39e4e","updated":"2016-11-17 14:07:47.000000000","message":"need to include /identity:\n\n  /identity/v3/OS-FEDERATION/identity_providers/testshib/protocols/mapped/auth\n\nsee https://github.com/dstanek/ansible-role-keystone-sp/blob/master/tasks/_configure_apache.yml","commit_id":"48cc466bd23a0fef48c7c1a67a21d8afc0bf2eae"}],"devstack/files/federation/shibboleth2.xml":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"76c6059663fc13a7525a77fac6ab3a16e92aaa34","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    clockSkew\u003d\"1800\"\u003e"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    \u003c!-- The entityID is the name TestShib made for your SP. --\u003e"},{"line_number":16,"context_line":"    \u003cApplicationDefaults entityID\u003d\"http://128.31.25.69:5000/shibboleth\"\u003e"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"        \u003c!-- You should use secure cookies if at all possible.  See cookieProps in this Wiki article. --\u003e"},{"line_number":19,"context_line":"        \u003c!-- https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPSessions --\u003e"}],"source_content_type":"application/xml","patch_set":2,"id":"7a77a97e_33bb1810","line":16,"range":{"start_line":16,"start_character":35,"end_line":16,"end_character":54},"updated":"2016-11-16 18:12:45.000000000","message":"this should not be hardcoded","commit_id":"48cc466bd23a0fef48c7c1a67a21d8afc0bf2eae"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"06ef73a0653dbd01e6f0f5cbf7e1a78489738785","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    clockSkew\u003d\"1800\"\u003e"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    \u003c!-- The entityID is the name TestShib made for your SP. --\u003e"},{"line_number":16,"context_line":"    \u003cApplicationDefaults entityID\u003d\"http://128.31.25.69:5000/shibboleth\"\u003e"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"        \u003c!-- You should use secure cookies if at all possible.  See cookieProps in this Wiki article. --\u003e"},{"line_number":19,"context_line":"        \u003c!-- https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPSessions --\u003e"}],"source_content_type":"application/xml","patch_set":2,"id":"7a77a97e_0a0ea43a","line":16,"range":{"start_line":16,"start_character":35,"end_line":16,"end_character":54},"in_reply_to":"7a77a97e_33bb1810","updated":"2016-11-17 18:48:13.000000000","message":"Done","commit_id":"48cc466bd23a0fef48c7c1a67a21d8afc0bf2eae"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"e9901857c22f25212e9803f70a7a83608c13de22","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"            \u003c!-- Triggers a login request directly to the TestShib IdP. --\u003e"},{"line_number":23,"context_line":"            \u003c!-- https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPServiceSSO --\u003e"},{"line_number":24,"context_line":"            \u003cSSO entityID\u003d\"https://idp.testshib.org/idp/shibboleth\"\u003e"},{"line_number":25,"context_line":"                SAML2 SAML1"},{"line_number":26,"context_line":"            \u003c/SSO\u003e"},{"line_number":27,"context_line":""}],"source_content_type":"application/xml","patch_set":2,"id":"7a77a97e_a1550351","line":24,"updated":"2016-11-16 23:56:15.000000000","message":"missing ECP\u003d\"true\" here, so it properly handles ECP [1]\n\n[1] https://tuakiri.ac.nz/confluence/display/Tuakiri/Installing+Shibboleth+2.x+SP+on+RedHat+based+Linux#InstallingShibboleth2.xSPonRedHatbasedLinux-ECP","commit_id":"48cc466bd23a0fef48c7c1a67a21d8afc0bf2eae"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"06ef73a0653dbd01e6f0f5cbf7e1a78489738785","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"            \u003c!-- Triggers a login request directly to the TestShib IdP. --\u003e"},{"line_number":23,"context_line":"            \u003c!-- https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPServiceSSO --\u003e"},{"line_number":24,"context_line":"            \u003cSSO entityID\u003d\"https://idp.testshib.org/idp/shibboleth\"\u003e"},{"line_number":25,"context_line":"                SAML2 SAML1"},{"line_number":26,"context_line":"            \u003c/SSO\u003e"},{"line_number":27,"context_line":""}],"source_content_type":"application/xml","patch_set":2,"id":"7a77a97e_4a2dfca6","line":24,"in_reply_to":"7a77a97e_a1550351","updated":"2016-11-17 18:48:13.000000000","message":"Done","commit_id":"48cc466bd23a0fef48c7c1a67a21d8afc0bf2eae"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"3ff30726f6bb72fe4371d74d2202de404f4bef67","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    clockSkew\u003d\"1800\"\u003e"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    \u003c!-- The entityID is the name TestShib made for your SP. --\u003e"},{"line_number":16,"context_line":"    \u003cApplicationDefaults entityID\u003d\"http://%HOST_IP%:5000/shibboleth\"\u003e"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"        \u003c!-- You should use secure cookies if at all possible.  See cookieProps in this Wiki article. --\u003e"},{"line_number":19,"context_line":"        \u003c!-- https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPSessions --\u003e"}],"source_content_type":"application/xml","patch_set":3,"id":"7a77a97e_c5373dfd","line":16,"range":{"start_line":16,"start_character":51,"end_line":16,"end_character":56},"updated":"2016-11-17 18:51:55.000000000","message":"think the port here is not needed","commit_id":"5ecd52c822518b0bd9c9342f7a4ac5fba2584e28"}],"devstack/lib/federation.sh":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"e9e37aa6ee6edcfe01fb2611c00c6196cc573b9d","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"function install_federation {"},{"line_number":16,"context_line":"    if is_ubuntu; then"},{"line_number":17,"context_line":"        install_package libapache2-mod-shib2"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-sh","patch_set":2,"id":"7a77a97e_247e6cae","line":15,"range":{"start_line":15,"start_character":9,"end_line":15,"end_character":27},"updated":"2016-11-16 19:35:32.000000000","message":"uninstall federation?","commit_id":"48cc466bd23a0fef48c7c1a67a21d8afc0bf2eae"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"06ef73a0653dbd01e6f0f5cbf7e1a78489738785","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"function install_federation {"},{"line_number":16,"context_line":"    if is_ubuntu; then"},{"line_number":17,"context_line":"        install_package libapache2-mod-shib2"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-sh","patch_set":2,"id":"7a77a97e_e5ad1985","line":15,"range":{"start_line":15,"start_character":9,"end_line":15,"end_character":27},"in_reply_to":"7a77a97e_247e6cae","updated":"2016-11-17 18:48:13.000000000","message":"Done","commit_id":"48cc466bd23a0fef48c7c1a67a21d8afc0bf2eae"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"0feab9ad894ce5b5a2ebca9ad84a3b4425a5086c","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    openstack role add --group $federated_users --domain $federated_domain $member_role"},{"line_number":61,"context_line":"    openstack role add --group $federated_users --project $federated_project $member_role"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    openstack --os-identity-api-version 3 identity provider create testshib \\"},{"line_number":64,"context_line":"        --remote-id https://idp.testshib.org/idp/shibboleth"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    openstack --os-identity-api-version 3 mapping create testshib_mapping \\"},{"line_number":67,"context_line":"            --rules $KEYSTONE_PLUGIN/files/federation/mapping.json"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    openstack --os-identity-api-version 3 federation protocol create mapped \\"},{"line_number":70,"context_line":"        --mapping testshib_mapping \\"},{"line_number":71,"context_line":"        --identity-provider testshib"},{"line_number":72,"context_line":"}"}],"source_content_type":"text/x-sh","patch_set":2,"id":"7a77a97e_33acfb33","line":71,"range":{"start_line":63,"start_character":0,"end_line":71,"end_character":36},"updated":"2016-11-16 17:24:07.000000000","message":"this is not necessary, see [1] for an example of how this is handled.\n\ncreating the mapping/idp/protocol on the setup might limit the scenarios we can test. For example, we might want to test removing the mapping or updating it - what we need to provide is what you are already doing above: domain, user, project ...","commit_id":"48cc466bd23a0fef48c7c1a67a21d8afc0bf2eae"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"06ef73a0653dbd01e6f0f5cbf7e1a78489738785","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    openstack role add --group $federated_users --domain $federated_domain $member_role"},{"line_number":61,"context_line":"    openstack role add --group $federated_users --project $federated_project $member_role"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    openstack --os-identity-api-version 3 identity provider create testshib \\"},{"line_number":64,"context_line":"        --remote-id https://idp.testshib.org/idp/shibboleth"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    openstack --os-identity-api-version 3 mapping create testshib_mapping \\"},{"line_number":67,"context_line":"            --rules $KEYSTONE_PLUGIN/files/federation/mapping.json"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    openstack --os-identity-api-version 3 federation protocol create mapped \\"},{"line_number":70,"context_line":"        --mapping testshib_mapping \\"},{"line_number":71,"context_line":"        --identity-provider testshib"},{"line_number":72,"context_line":"}"}],"source_content_type":"text/x-sh","patch_set":2,"id":"7a77a97e_45f88dc3","line":71,"range":{"start_line":63,"start_character":0,"end_line":71,"end_character":36},"in_reply_to":"7a77a97e_33acfb33","updated":"2016-11-17 18:48:13.000000000","message":"Done","commit_id":"48cc466bd23a0fef48c7c1a67a21d8afc0bf2eae"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"e01111e8c06265f18e0672beedf1457e69543471","unresolved":false,"context_lines":[{"line_number":22,"context_line":"        # Enable the Shibboleth module for Apache"},{"line_number":23,"context_line":"        sudo a2enmod shib2"},{"line_number":24,"context_line":"    else"},{"line_number":25,"context_line":"        # Note(knikolla): For CentOS/RHEL, installing shibboleth is tricky"},{"line_number":26,"context_line":"        # It requires adding a separate repo not officially supported"},{"line_number":27,"context_line":"        echo \"Skipping installation of shibboleth for non ubuntu host\""},{"line_number":28,"context_line":"    fi"}],"source_content_type":"text/x-sh","patch_set":4,"id":"7a77a97e_8a70a641","line":25,"range":{"start_line":25,"start_character":10,"end_line":25,"end_character":14},"updated":"2016-11-20 15:56:31.000000000","message":"NOTE*","commit_id":"fbafc06ac6c5ae5d4453ea3addc69772bc0c8634"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"e01111e8c06265f18e0672beedf1457e69543471","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    restart_service shibd"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    # Enable the mapped auth method in /etc/keystone.conf"},{"line_number":52,"context_line":"    iniset $KEYSTONE_CONF auth methods \"external,password,token,mapped\""},{"line_number":53,"context_line":"    # Specify the header that contains information about the identity provider"},{"line_number":54,"context_line":"    iniset $KEYSTONE_CONF mapped remote_id_attribute \"Shib-Identity-Provider\""},{"line_number":55,"context_line":"}"}],"source_content_type":"text/x-sh","patch_set":4,"id":"7a77a97e_aa8ac218","line":52,"range":{"start_line":51,"start_character":4,"end_line":52,"end_character":71},"updated":"2016-11-20 15:56:31.000000000","message":"we should do this by default at this point","commit_id":"fbafc06ac6c5ae5d4453ea3addc69772bc0c8634"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"e01111e8c06265f18e0672beedf1457e69543471","unresolved":false,"context_lines":[{"line_number":57,"context_line":"function register_federation {"},{"line_number":58,"context_line":"    local federated_domain\u003d$(get_or_create_domain federated_domain)"},{"line_number":59,"context_line":"    local federated_project\u003d$(get_or_create_project federated_project federated_domain)"},{"line_number":60,"context_line":"    local federated_users\u003d$(get_or_create_group federated_users federated_domain)"},{"line_number":61,"context_line":"    local member_role\u003d$(get_or_create_role Member)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    openstack role add --group $federated_users --domain $federated_domain $member_role"}],"source_content_type":"text/x-sh","patch_set":4,"id":"7a77a97e_ea803af9","line":60,"range":{"start_line":60,"start_character":20,"end_line":60,"end_character":25},"updated":"2016-11-20 15:56:31.000000000","message":"nit: group* maybe","commit_id":"fbafc06ac6c5ae5d4453ea3addc69772bc0c8634"}],"devstack/plugin.sh":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"e9e37aa6ee6edcfe01fb2611c00c6196cc573b9d","unresolved":false,"context_lines":[{"line_number":52,"context_line":"if [[ \"$1\" \u003d\u003d \"clean\" ]]; then"},{"line_number":53,"context_line":"    # Called by clean.sh after the \"unstack\" phase"},{"line_number":54,"context_line":"    # Undo what was performed during the \"install\" phase"},{"line_number":55,"context_line":"    :"},{"line_number":56,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":2,"id":"7a77a97e_e45ab44f","line":55,"updated":"2016-11-16 19:35:32.000000000","message":"uninstall shibboleth?","commit_id":"48cc466bd23a0fef48c7c1a67a21d8afc0bf2eae"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"06ef73a0653dbd01e6f0f5cbf7e1a78489738785","unresolved":false,"context_lines":[{"line_number":52,"context_line":"if [[ \"$1\" \u003d\u003d \"clean\" ]]; then"},{"line_number":53,"context_line":"    # Called by clean.sh after the \"unstack\" phase"},{"line_number":54,"context_line":"    # Undo what was performed during the \"install\" phase"},{"line_number":55,"context_line":"    :"},{"line_number":56,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":2,"id":"7a77a97e_65abc975","line":55,"in_reply_to":"7a77a97e_e45ab44f","updated":"2016-11-17 18:48:13.000000000","message":"Done","commit_id":"48cc466bd23a0fef48c7c1a67a21d8afc0bf2eae"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"e01111e8c06265f18e0672beedf1457e69543471","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"KEYSTONE_PLUGIN\u003d$DEST/keystone/devstack"},{"line_number":17,"context_line":"source $KEYSTONE_PLUGIN/lib/federation.sh"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# For more information on Devstack plugins, including a more detailed"},{"line_number":20,"context_line":"# explanation on when the different steps are executed please see:"}],"source_content_type":"text/x-sh","patch_set":4,"id":"7a77a97e_d4a08af6","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":41},"updated":"2016-11-20 15:56:31.000000000","message":"love how you broke this up","commit_id":"fbafc06ac6c5ae5d4453ea3addc69772bc0c8634"}]}
