)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"7aa344b9b8aaa39e427a5397839494928204c5f1","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This IdP is nowhere near production quality. Adding it here is solely"},{"line_number":10,"context_line":"for functional testing. The fuctional tests need Keystone to be"},{"line_number":11,"context_line":"interactiving with an IdP and this one is very easy to setup and"},{"line_number":12,"context_line":"configure."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"bp functional-testing"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"da86d52c_1b2306a8","line":11,"updated":"2015-02-11 02:46:40.000000000","message":"interactiving should be interracting","commit_id":"a940332268eab04406de554b03ab5263dbf20313"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"a8f6767a52ffd8745fd6fec86d87009b0bac04dc","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This IdP is nowhere near production quality. Adding it here is solely"},{"line_number":10,"context_line":"for functional testing. The fuctional tests need Keystone to be"},{"line_number":11,"context_line":"interactiving with an IdP and this one is very easy to setup and"},{"line_number":12,"context_line":"configure."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"bp functional-testing"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"da86d52c_dc72e87a","line":11,"in_reply_to":"da86d52c_1b2306a8","updated":"2015-02-19 21:51:39.000000000","message":"Done","commit_id":"a940332268eab04406de554b03ab5263dbf20313"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c613596612083ca6c1ea5c4e5cb38671f249dafe","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"adds a devstack plugin for running a pysaml2 IdP"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This IdP is nowhere near production quality. Adding it here is solely"},{"line_number":10,"context_line":"for functional testing. The functional tests need Keystone to be"},{"line_number":11,"context_line":"interacting with an IdP and this one is very easy to setup and"},{"line_number":12,"context_line":"configure."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"7a016987_41613c04","line":9,"updated":"2015-05-30 13:03:37.000000000","message":"change \"This\" to \"The pysaml2\"","commit_id":"4c2d04687422fd4361b98a0a72d2c5597fddbc76"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"573752468893b18b76a202004b7b44118377d217","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"adds a devstack plugin for running a pysaml2 IdP"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This IdP is nowhere near production quality. Adding it here is solely"},{"line_number":10,"context_line":"for functional testing. The functional tests need Keystone to be"},{"line_number":11,"context_line":"interacting with an IdP and this one is very easy to setup and"},{"line_number":12,"context_line":"configure."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"9a41bdd9_b476ccd6","line":9,"in_reply_to":"7a016987_41613c04","updated":"2015-07-16 19:54:01.000000000","message":"Done","commit_id":"4c2d04687422fd4361b98a0a72d2c5597fddbc76"}],"dsvm/federation/devstack/extras.d/20-k-pyidp.sh":[{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"7aa344b9b8aaa39e427a5397839494928204c5f1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Devstack extras script to install a pysaml2 IdP"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"if is_service_enabled k-pyidp; then"},{"line_number":4,"context_line":"    if [[ \"$1\" \u003d\u003d \"source\" ]]; then"},{"line_number":5,"context_line":"        source $TOP_DIR/lib/pysaml2_idp"},{"line_number":6,"context_line":"    elif [[ \"$1\" \u003d\u003d \"stack\" \u0026\u0026 \"$2\" \u003d\u003d \"install\" ]]; then"},{"line_number":7,"context_line":"        echo_summary \"Installing pysaml2 IdP\""}],"source_content_type":"text/x-sh","patch_set":2,"id":"da86d52c_9bb3764c","line":4,"updated":"2015-02-11 02:46:40.000000000","message":"Wow. Devstack\u0027s extension model is much improved from when I added OpenLDAP support way back when. Of course back then we had to carry the shell scripts uphill both ways in the snow :-)","commit_id":"a940332268eab04406de554b03ab5263dbf20313"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"7aa344b9b8aaa39e427a5397839494928204c5f1","unresolved":false,"context_lines":[{"line_number":3,"context_line":"if is_service_enabled k-pyidp; then"},{"line_number":4,"context_line":"    if [[ \"$1\" \u003d\u003d \"source\" ]]; then"},{"line_number":5,"context_line":"        source $TOP_DIR/lib/pysaml2_idp"},{"line_number":6,"context_line":"    elif [[ \"$1\" \u003d\u003d \"stack\" \u0026\u0026 \"$2\" \u003d\u003d \"install\" ]]; then"},{"line_number":7,"context_line":"        echo_summary \"Installing pysaml2 IdP\""},{"line_number":8,"context_line":"        install_pysaml2_idp"},{"line_number":9,"context_line":"    elif [[ \"$1\" \u003d\u003d \"stack\" \u0026\u0026 \"$2\" \u003d\u003d \"post-config\" ]]; then"}],"source_content_type":"text/x-sh","patch_set":2,"id":"da86d52c_db888e73","line":6,"updated":"2015-02-11 02:46:40.000000000","message":"No pre-install step necessary? LUCKY!!!","commit_id":"a940332268eab04406de554b03ab5263dbf20313"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"7aa344b9b8aaa39e427a5397839494928204c5f1","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"    if [[ \"$1\" \u003d\u003d \"unstack\" ]]; then"},{"line_number":18,"context_line":"        stop_pysaml2_idp"},{"line_number":19,"context_line":"    fi"},{"line_number":20,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":2,"id":"da86d52c_7b8de27b","line":19,"updated":"2015-02-11 02:46:40.000000000","message":"How come you don\u0027t need a clean extension?","commit_id":"a940332268eab04406de554b03ab5263dbf20313"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"086a172fd44a6bd0336043f5b5bedf343a380375","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"    if [[ \"$1\" \u003d\u003d \"unstack\" ]]; then"},{"line_number":18,"context_line":"        stop_pysaml2_idp"},{"line_number":19,"context_line":"    fi"},{"line_number":20,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":2,"id":"da86d52c_9600adac","line":19,"in_reply_to":"da86d52c_7b8de27b","updated":"2015-02-11 03:11:45.000000000","message":"Is it because its only run for tests and the whole thing is blown away anyway when its done?  If so a comment stating that would be helpful.","commit_id":"a940332268eab04406de554b03ab5263dbf20313"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"a8f6767a52ffd8745fd6fec86d87009b0bac04dc","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"    if [[ \"$1\" \u003d\u003d \"unstack\" ]]; then"},{"line_number":18,"context_line":"        stop_pysaml2_idp"},{"line_number":19,"context_line":"    fi"},{"line_number":20,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":2,"id":"da86d52c_7fa56eb3","line":19,"in_reply_to":"da86d52c_9600adac","updated":"2015-02-19 21:51:39.000000000","message":"This is a really good point. I chose not to clean anything because, as you stated, this is designed for testing. On the other hand, may I should make this more complete. This I could possibly clean: the cloned repo for pysaml2, the generated config file. Should either of these be cleaned up?","commit_id":"a940332268eab04406de554b03ab5263dbf20313"}],"dsvm/federation/devstack/files/idp_conf.py.template":[{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"7aa344b9b8aaa39e427a5397839494928204c5f1","unresolved":false,"context_lines":[{"line_number":141,"context_line":"CAS_VERIFY \u003d \"%s/verify_cas\" % BASE"},{"line_number":142,"context_line":"PWD_VERIFY \u003d \"%s/verify_pwd\" % BASE"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"AUTHORIZATION \u003d {"},{"line_number":145,"context_line":"    \"CAS\" : {\"ACR\": \"CAS\", \"WEIGHT\": 1, \"URL\": CAS_VERIFY},"},{"line_number":146,"context_line":"    \"UserPassword\" : {\"ACR\": \"PASSWORD\", \"WEIGHT\": 2, \"URL\": PWD_VERIFY}"},{"line_number":147,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"da86d52c_9bfd36b4","line":144,"updated":"2015-02-11 02:46:40.000000000","message":"Would be nice to have comment describing the authorization methods supported. I assume CAS is Central Authentication Service","commit_id":"a940332268eab04406de554b03ab5263dbf20313"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"a8f6767a52ffd8745fd6fec86d87009b0bac04dc","unresolved":false,"context_lines":[{"line_number":141,"context_line":"CAS_VERIFY \u003d \"%s/verify_cas\" % BASE"},{"line_number":142,"context_line":"PWD_VERIFY \u003d \"%s/verify_pwd\" % BASE"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"AUTHORIZATION \u003d {"},{"line_number":145,"context_line":"    \"CAS\" : {\"ACR\": \"CAS\", \"WEIGHT\": 1, \"URL\": CAS_VERIFY},"},{"line_number":146,"context_line":"    \"UserPassword\" : {\"ACR\": \"PASSWORD\", \"WEIGHT\": 2, \"URL\": PWD_VERIFY}"},{"line_number":147,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"da86d52c_bf8286fc","line":144,"in_reply_to":"da86d52c_9bfd36b4","updated":"2015-02-19 21:51:39.000000000","message":"I could probably do that, but I\u0027ll have to figure it out first. The config is actually just their sample that I stole and now use as a template. They provide it in their source tree (https://github.com/rohe/pysaml2/blob/master/example/idp2/idp_conf.py.example), but I didn\u0027t want to rely on it in case it changed. So I keep it local.","commit_id":"a940332268eab04406de554b03ab5263dbf20313"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"67f9497f74cc0366dd0f6aab0417ea05b97a0123","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":"# -*- coding: utf-8 -*-"},{"line_number":3,"context_line":"from saml2 import BINDING_HTTP_REDIRECT, BINDING_URI"},{"line_number":4,"context_line":"from saml2 import BINDING_HTTP_ARTIFACT"},{"line_number":5,"context_line":"from saml2 import BINDING_HTTP_POST"},{"line_number":6,"context_line":"from saml2 import BINDING_SOAP"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"9a80dd14_d91df674","line":3,"updated":"2015-03-19 03:56:38.000000000","message":"this should be broken up into 2 lines","commit_id":"10b034445a2a29ece7a753dbb13bb603b31c8b5f"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"67f9497f74cc0366dd0f6aab0417ea05b97a0123","unresolved":false,"context_lines":[{"line_number":7,"context_line":"from saml2.saml import NAME_FORMAT_URI"},{"line_number":8,"context_line":"from saml2.saml import NAMEID_FORMAT_TRANSIENT"},{"line_number":9,"context_line":"from saml2.saml import NAMEID_FORMAT_PERSISTENT"},{"line_number":10,"context_line":"import os.path"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"try:"},{"line_number":13,"context_line":"    from saml2.sigver import get_xmlsec_binary"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"9a80dd14_1406751c","line":10,"updated":"2015-03-19 03:56:38.000000000","message":"put this before the other imports in it\u0027s own group","commit_id":"10b034445a2a29ece7a753dbb13bb603b31c8b5f"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"67f9497f74cc0366dd0f6aab0417ea05b97a0123","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"CONFIG \u003d {"},{"line_number":34,"context_line":"    \"entityid\": \"%s/idp.xml\" % BASE,"},{"line_number":35,"context_line":"    \"description\": \"My IDP\","},{"line_number":36,"context_line":"    \"valid_for\": 168,"},{"line_number":37,"context_line":"    \"service\": {"},{"line_number":38,"context_line":"        \"aa\": {"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"9a80dd14_b4e04927","line":35,"updated":"2015-03-19 03:56:38.000000000","message":"Devstack IdP?","commit_id":"10b034445a2a29ece7a753dbb13bb603b31c8b5f"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"67f9497f74cc0366dd0f6aab0417ea05b97a0123","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            },"},{"line_number":53,"context_line":"        },"},{"line_number":54,"context_line":"        \"idp\": {"},{"line_number":55,"context_line":"                        \"sign_assertion\": True,"},{"line_number":56,"context_line":"                                    \"sign_response\": True,"},{"line_number":57,"context_line":"            \"name\": \"Rolands IdP\","},{"line_number":58,"context_line":"            \"endpoints\": {"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"9a80dd14_14c75599","line":55,"updated":"2015-03-19 03:56:38.000000000","message":"bad indenting here and below","commit_id":"10b034445a2a29ece7a753dbb13bb603b31c8b5f"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"3b37f968a134bc393557fc67a63866130d11d8f1","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            \"policy\": {"},{"line_number":87,"context_line":"                \"default\": {"},{"line_number":88,"context_line":"                    \"lifetime\": {\"minutes\": 15},"},{"line_number":89,"context_line":"                    \"attribute_restrictions\": None, # means all I have"},{"line_number":90,"context_line":"                    \"name_form\": NAME_FORMAT_URI,"},{"line_number":91,"context_line":"                    \"entity_categories\": [\"swamid\", \"edugain\"]"},{"line_number":92,"context_line":"                },"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"9a80dd14_69e44eac","line":89,"updated":"2015-03-18 18:50:30.000000000","message":"all you have?","commit_id":"10b034445a2a29ece7a753dbb13bb603b31c8b5f"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"67f9497f74cc0366dd0f6aab0417ea05b97a0123","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"# Authentication contexts"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    #(r\u0027verify?(.*)$\u0027, do_verify),"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"CAS_SERVER \u003d \"https://cas.umu.se\""},{"line_number":141,"context_line":"CAS_VERIFY \u003d \"%s/verify_cas\" % BASE"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"9a80dd14_f487215f","line":138,"updated":"2015-03-19 03:56:38.000000000","message":"remove this comment and the one above?","commit_id":"10b034445a2a29ece7a753dbb13bb603b31c8b5f"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"67f9497f74cc0366dd0f6aab0417ea05b97a0123","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    #(r\u0027verify?(.*)$\u0027, do_verify),"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"CAS_SERVER \u003d \"https://cas.umu.se\""},{"line_number":141,"context_line":"CAS_VERIFY \u003d \"%s/verify_cas\" % BASE"},{"line_number":142,"context_line":"PWD_VERIFY \u003d \"%s/verify_pwd\" % BASE"},{"line_number":143,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":6,"id":"9a80dd14_74ac11ee","line":140,"updated":"2015-03-19 03:56:38.000000000","message":"this is unused, suggest remove?","commit_id":"10b034445a2a29ece7a753dbb13bb603b31c8b5f"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"67f9497f74cc0366dd0f6aab0417ea05b97a0123","unresolved":false,"context_lines":[{"line_number":138,"context_line":"    #(r\u0027verify?(.*)$\u0027, do_verify),"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"CAS_SERVER \u003d \"https://cas.umu.se\""},{"line_number":141,"context_line":"CAS_VERIFY \u003d \"%s/verify_cas\" % BASE"},{"line_number":142,"context_line":"PWD_VERIFY \u003d \"%s/verify_pwd\" % BASE"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"AUTHORIZATION \u003d {"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"9a80dd14_749331a3","line":141,"updated":"2015-03-19 03:56:38.000000000","message":"can you put these up near the top with BASE?","commit_id":"10b034445a2a29ece7a753dbb13bb603b31c8b5f"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"67f9497f74cc0366dd0f6aab0417ea05b97a0123","unresolved":false,"context_lines":[{"line_number":141,"context_line":"CAS_VERIFY \u003d \"%s/verify_cas\" % BASE"},{"line_number":142,"context_line":"PWD_VERIFY \u003d \"%s/verify_pwd\" % BASE"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"AUTHORIZATION \u003d {"},{"line_number":145,"context_line":"    \"CAS\" : {\"ACR\": \"CAS\", \"WEIGHT\": 1, \"URL\": CAS_VERIFY},"},{"line_number":146,"context_line":"    \"UserPassword\" : {\"ACR\": \"PASSWORD\", \"WEIGHT\": 2, \"URL\": PWD_VERIFY}"},{"line_number":147,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"9a80dd14_f4ee4121","line":144,"updated":"2015-03-19 03:56:38.000000000","message":"this is also unused, do you need this and any of the CAS related stuff?","commit_id":"10b034445a2a29ece7a753dbb13bb603b31c8b5f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c613596612083ca6c1ea5c4e5cb38671f249dafe","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":"# -*- coding: utf-8 -*-"},{"line_number":3,"context_line":"from saml2 import BINDING_HTTP_REDIRECT, BINDING_URI"},{"line_number":4,"context_line":"from saml2 import BINDING_HTTP_ARTIFACT"},{"line_number":5,"context_line":"from saml2 import BINDING_HTTP_POST"},{"line_number":6,"context_line":"from saml2 import BINDING_SOAP"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"7a016987_215c004a","line":3,"updated":"2015-05-30 13:03:37.000000000","message":"consistently use one import per line.\n\nAlso, should be importing modules rather than symbols.","commit_id":"4c2d04687422fd4361b98a0a72d2c5597fddbc76"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c613596612083ca6c1ea5c4e5cb38671f249dafe","unresolved":false,"context_lines":[{"line_number":7,"context_line":"from saml2.saml import NAME_FORMAT_URI"},{"line_number":8,"context_line":"from saml2.saml import NAMEID_FORMAT_TRANSIENT"},{"line_number":9,"context_line":"from saml2.saml import NAMEID_FORMAT_PERSISTENT"},{"line_number":10,"context_line":"import os.path"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"try:"},{"line_number":13,"context_line":"    from saml2.sigver import get_xmlsec_binary"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"7a016987_0157c426","line":10,"updated":"2015-05-30 13:03:37.000000000","message":"this should be in a separate section per OpenStack guidelines.","commit_id":"4c2d04687422fd4361b98a0a72d2c5597fddbc76"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c613596612083ca6c1ea5c4e5cb38671f249dafe","unresolved":false,"context_lines":[{"line_number":10,"context_line":"import os.path"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"try:"},{"line_number":13,"context_line":"    from saml2.sigver import get_xmlsec_binary"},{"line_number":14,"context_line":"except ImportError:"},{"line_number":15,"context_line":"    get_xmlsec_binary \u003d None"},{"line_number":16,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":7,"id":"7a016987_e1514831","line":13,"updated":"2015-05-30 13:03:37.000000000","message":"add a comment why this wouldn\u0027t be available.","commit_id":"4c2d04687422fd4361b98a0a72d2c5597fddbc76"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c613596612083ca6c1ea5c4e5cb38671f249dafe","unresolved":false,"context_lines":[{"line_number":25,"context_line":"def full_path(local_file):"},{"line_number":26,"context_line":"    return os.path.join(BASEDIR, local_file)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"HOST \u003d \u0027localhost\u0027"},{"line_number":29,"context_line":"PORT \u003d 8088"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"BASE \u003d \"http://%s:%s\" % (HOST, PORT)"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"7a016987_41281c9a","line":28,"updated":"2015-05-30 13:03:37.000000000","message":"I thought the templates typically used %HOST% for replacement.\n\nAlso, add a comment that this is meant to be replaced.","commit_id":"4c2d04687422fd4361b98a0a72d2c5597fddbc76"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c613596612083ca6c1ea5c4e5cb38671f249dafe","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    return os.path.join(BASEDIR, local_file)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"HOST \u003d \u0027localhost\u0027"},{"line_number":29,"context_line":"PORT \u003d 8088"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"BASE \u003d \"http://%s:%s\" % (HOST, PORT)"},{"line_number":32,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":7,"id":"7a016987_012ea4a4","line":29,"updated":"2015-05-30 13:03:37.000000000","message":"Add a comment that this is meant to be replaced.","commit_id":"4c2d04687422fd4361b98a0a72d2c5597fddbc76"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c613596612083ca6c1ea5c4e5cb38671f249dafe","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            },"},{"line_number":53,"context_line":"        },"},{"line_number":54,"context_line":"        \"idp\": {"},{"line_number":55,"context_line":"                        \"sign_assertion\": True,"},{"line_number":56,"context_line":"                                    \"sign_response\": True,"},{"line_number":57,"context_line":"            \"name\": \"Rolands IdP\","},{"line_number":58,"context_line":"            \"endpoints\": {"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"7a016987_c133ec12","line":55,"updated":"2015-05-30 13:03:37.000000000","message":"indentation here is off.","commit_id":"4c2d04687422fd4361b98a0a72d2c5597fddbc76"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c613596612083ca6c1ea5c4e5cb38671f249dafe","unresolved":false,"context_lines":[{"line_number":122,"context_line":"    # This database holds the map between a subject\u0027s local identifier and"},{"line_number":123,"context_line":"    # the identifier returned to a SP"},{"line_number":124,"context_line":"    \"xmlsec_binary\": xmlsec_path,"},{"line_number":125,"context_line":"    #\"attribute_map_dir\": \"../attributemaps\","},{"line_number":126,"context_line":"    \"logger\": {"},{"line_number":127,"context_line":"        \"rotating\": {"},{"line_number":128,"context_line":"            \"filename\": \"idp.log\","}],"source_content_type":"application/octet-stream","patch_set":7,"id":"7a016987_a136b000","line":125,"updated":"2015-05-30 13:03:37.000000000","message":"remove commented-out code.","commit_id":"4c2d04687422fd4361b98a0a72d2c5597fddbc76"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c613596612083ca6c1ea5c4e5cb38671f249dafe","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"# Authentication contexts"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    #(r\u0027verify?(.*)$\u0027, do_verify),"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"CAS_SERVER \u003d \"https://cas.umu.se\""},{"line_number":141,"context_line":"CAS_VERIFY \u003d \"%s/verify_cas\" % BASE"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"7a016987_813974f4","line":138,"updated":"2015-05-30 13:03:37.000000000","message":"remove confusing comment","commit_id":"4c2d04687422fd4361b98a0a72d2c5597fddbc76"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"440c24c970b3ba5ebf67ad64c0c523ac6378f6ec","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"CONFIG \u003d {"},{"line_number":34,"context_line":"    \"entityid\": \"%s/idp.xml\" % BASE,"},{"line_number":35,"context_line":"    \"description\": \"My IDP\","},{"line_number":36,"context_line":"    \"valid_for\": 168,"},{"line_number":37,"context_line":"    \"service\": {"},{"line_number":38,"context_line":"        \"aa\": {"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"da20952f_61bcf806","line":35,"updated":"2015-09-08 16:40:15.000000000","message":"IdP, for consistency","commit_id":"a7d2105124a96486a4e231bb2f840dada31d62b1"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c0bf46a8b2662d1eb7816f70723d792c8c2b6cdc","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"CONFIG \u003d {"},{"line_number":34,"context_line":"    \"entityid\": \"%s/idp.xml\" % BASE,"},{"line_number":35,"context_line":"    \"description\": \"My IDP\","},{"line_number":36,"context_line":"    \"valid_for\": 168,"},{"line_number":37,"context_line":"    \"service\": {"},{"line_number":38,"context_line":"        \"aa\": {"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"ba0121b8_867a6b86","line":35,"in_reply_to":"da20952f_61bcf806","updated":"2016-03-31 20:14:44.000000000","message":"++","commit_id":"a7d2105124a96486a4e231bb2f840dada31d62b1"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9831e82051d6423de80011affe012096948c4fa5","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        },"},{"line_number":54,"context_line":"        \"idp\": {"},{"line_number":55,"context_line":"                        \"sign_assertion\": True,"},{"line_number":56,"context_line":"                                    \"sign_response\": True,"},{"line_number":57,"context_line":"            \"name\": \"Rolands IdP\","},{"line_number":58,"context_line":"            \"endpoints\": {"},{"line_number":59,"context_line":"                \"single_sign_on_service\": ["}],"source_content_type":"application/octet-stream","patch_set":8,"id":"3a50d1a3_d9528613","line":56,"updated":"2015-07-20 18:46:17.000000000","message":"^","commit_id":"a7d2105124a96486a4e231bb2f840dada31d62b1"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c0bf46a8b2662d1eb7816f70723d792c8c2b6cdc","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        },"},{"line_number":54,"context_line":"        \"idp\": {"},{"line_number":55,"context_line":"                        \"sign_assertion\": True,"},{"line_number":56,"context_line":"                                    \"sign_response\": True,"},{"line_number":57,"context_line":"            \"name\": \"Rolands IdP\","},{"line_number":58,"context_line":"            \"endpoints\": {"},{"line_number":59,"context_line":"                \"single_sign_on_service\": ["}],"source_content_type":"application/octet-stream","patch_set":8,"id":"ba0121b8_a69e8fb6","line":56,"in_reply_to":"3a50d1a3_d9528613","updated":"2016-03-31 20:14:44.000000000","message":"++ to fixing indentation","commit_id":"a7d2105124a96486a4e231bb2f840dada31d62b1"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"e1b03a7cf393b7b3071d6308718c011698112a2e","unresolved":false,"context_lines":[{"line_number":122,"context_line":"    # This database holds the map between a subject\u0027s local identifier and"},{"line_number":123,"context_line":"    # the identifier returned to a SP"},{"line_number":124,"context_line":"    \"xmlsec_binary\": xmlsec_path,"},{"line_number":125,"context_line":"    #\"attribute_map_dir\": \"../attributemaps\","},{"line_number":126,"context_line":"    \"logger\": {"},{"line_number":127,"context_line":"        \"rotating\": {"},{"line_number":128,"context_line":"            \"filename\": \"idp.log\","}],"source_content_type":"application/octet-stream","patch_set":8,"id":"da20952f_cbed6cb8","line":125,"updated":"2015-08-28 21:17:38.000000000","message":"why is this commented out?","commit_id":"a7d2105124a96486a4e231bb2f840dada31d62b1"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9831e82051d6423de80011affe012096948c4fa5","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    #(r\u0027verify?(.*)$\u0027, do_verify),"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"CAS_SERVER \u003d \"https://cas.umu.se\""},{"line_number":141,"context_line":"CAS_VERIFY \u003d \"%s/verify_cas\" % BASE"},{"line_number":142,"context_line":"PWD_VERIFY \u003d \"%s/verify_pwd\" % BASE"},{"line_number":143,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":8,"id":"3a50d1a3_99739eb1","line":140,"updated":"2015-07-20 18:46:17.000000000","message":"is this something we want to include? if so, why?","commit_id":"a7d2105124a96486a4e231bb2f840dada31d62b1"}],"dsvm/federation/devstack/lib/pysaml2_idp":[{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"7aa344b9b8aaa39e427a5397839494928204c5f1","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"function install_pysaml2_idp {"},{"line_number":40,"context_line":"    install_package xmlsec1"},{"line_number":41,"context_line":"    git_clone $PYSAML2_REPO $PYSAML2_DIR $PYSAML2_BRANCH"},{"line_number":42,"context_line":"    touch $PYSAML2_DIR/setup.cfg"},{"line_number":43,"context_line":"    setup_install $PYSAML2_DIR"},{"line_number":44,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"da86d52c_fbb1d201","line":41,"updated":"2015-02-11 02:46:40.000000000","message":"Why wouldn\u0027t you want a clean hook to cleanup what this git clone pulls down?  So if for example the pysaml directory gets corrupted the clean would allow a user to easily wipe it out and start fresh.","commit_id":"a940332268eab04406de554b03ab5263dbf20313"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"086a172fd44a6bd0336043f5b5bedf343a380375","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"function install_pysaml2_idp {"},{"line_number":40,"context_line":"    install_package xmlsec1"},{"line_number":41,"context_line":"    git_clone $PYSAML2_REPO $PYSAML2_DIR $PYSAML2_BRANCH"},{"line_number":42,"context_line":"    touch $PYSAML2_DIR/setup.cfg"},{"line_number":43,"context_line":"    setup_install $PYSAML2_DIR"},{"line_number":44,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"da86d52c_3629c137","line":41,"in_reply_to":"da86d52c_fbb1d201","updated":"2015-02-11 03:11:45.000000000","message":"Is it because its only run for tests and the whole thing is blown away anyway when its done?","commit_id":"a940332268eab04406de554b03ab5263dbf20313"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"67f9497f74cc0366dd0f6aab0417ea05b97a0123","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# Dependencies:"},{"line_number":20,"context_line":"#"},{"line_number":21,"context_line":"# - ``functions`` file"},{"line_number":22,"context_line":"#"},{"line_number":23,"context_line":"# Exported functions:"},{"line_number":24,"context_line":"#"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"9a80dd14_7465f1df","line":21,"updated":"2015-03-19 03:56:38.000000000","message":"this also depends on 20-k-pyidp.sh","commit_id":"10b034445a2a29ece7a753dbb13bb603b31c8b5f"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"67f9497f74cc0366dd0f6aab0417ea05b97a0123","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    install_package xmlsec1"},{"line_number":41,"context_line":"    git_clone $PYSAML2_REPO $PYSAML2_DIR $PYSAML2_BRANCH"},{"line_number":42,"context_line":"    touch $PYSAML2_DIR/setup.cfg"},{"line_number":43,"context_line":"    setup_install $PYSAML2_DIR"},{"line_number":44,"context_line":"}"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"function configure_pysaml2_idp {"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"9a80dd14_94ffc5aa","line":43,"updated":"2015-03-19 03:56:38.000000000","message":"rather than installing pysaml2 with git clone / calling setup_install, maybe we should install it via pypi? so we don\u0027t use the master branch, but rather a released version. mimic\u0027ing what a real deployment would look like.\n\nthis is assuming setup_install doesn\u0027t try that first.","commit_id":"10b034445a2a29ece7a753dbb13bb603b31c8b5f"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"67f9497f74cc0366dd0f6aab0417ea05b97a0123","unresolved":false,"context_lines":[{"line_number":46,"context_line":"function configure_pysaml2_idp {"},{"line_number":47,"context_line":"    cp $FILES/idp_conf.py.template $PYSAML2_IDP_DIR/idp_conf.py"},{"line_number":48,"context_line":"    (cd $PYSAML2_IDP_DIR;"},{"line_number":49,"context_line":"    make_metadata.py idp_conf.py \u003e idp.xml)"},{"line_number":50,"context_line":"    sed -e \""},{"line_number":51,"context_line":"        /^HOST \u003d /s/localhost/$PYSAML2_IDP_HOST/"},{"line_number":52,"context_line":"        /^PORT \u003d /s/8088/$PYSAML2_IDP_PORT/"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"9a80dd14_f431e1a2","line":49,"updated":"2015-03-19 03:56:38.000000000","message":"the parentheses here are unnecessary, just drop the semi-colon from the line above?","commit_id":"10b034445a2a29ece7a753dbb13bb603b31c8b5f"}]}
