)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"3cea0b68b02346649e447c16d020a4e8d9f8a44a","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2013-01-28 15:26:42 -0600"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Work In progress to add optional silent install and config of ldap to devstack"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"I restructured the code to be more devstack compliant as suggested.  ldif files are now in files/ldap and the main script is in lib.  I hooked this into stack.sh and updated keystone with new inisets to add ldap properties to keystone.conf"},{"line_number":10,"context_line":"Change-Id: I1404cc5c754f878e32a2d10254840d092211e6e6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAM3%2F%2FSvs%3D","line":8,"updated":"2013-01-29 23:42:29.000000000","message":"The guidelines for commit messages are in http://wiki.openstack.org/GitCommitMessages.  The two I\u0027d suggest for this are:\n* the line above should be 50 chars or less (it\u0027s helpful in Gerrit)\n* The lines below should be manually wrapped to 72 chars or less.","commit_id":"2c19441c684a7a47262d8e7c2c15205d50cb3f7d"}],"files/ldap/manager.ldif.in":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"86c515c530e393540b14372d24b6d7f30cdc85ef","unresolved":false,"context_lines":[{"line_number":1,"context_line":"dn:  olcDatabase\u003d{${LDAP_OLCDB_NUMBER}}hdb,cn\u003dconfig"},{"line_number":2,"context_line":"changetype: modify"},{"line_number":3,"context_line":"replace: olcSuffix"},{"line_number":4,"context_line":"olcSuffix: dc\u003dopenstack,dc\u003dorg"}],"source_content_type":"text/x-properties","patch_set":8,"id":"AAAAM3%2F%2FJZk%3D","line":1,"updated":"2013-02-05 18:39:29.000000000","message":"(nit) extra space here after :","commit_id":"658bf9c61683f6d5193c8cf0fb732995d29056d0"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"86c515c530e393540b14372d24b6d7f30cdc85ef","unresolved":false,"context_lines":[{"line_number":7,"context_line":"olcRootDN: dc\u003dManager,dc\u003dopenstack,dc\u003dorg"},{"line_number":8,"context_line":"-"},{"line_number":9,"context_line":"${LDAP_ROOTPW_COMMAND}: olcRootPW"},{"line_number":10,"context_line":"olcRootPW:${SLAPPASS}"}],"source_content_type":"text/x-properties","patch_set":8,"id":"AAAAM3%2F%2FJZg%3D","line":10,"updated":"2013-02-05 18:39:29.000000000","message":"(nit) missing space here.","commit_id":"658bf9c61683f6d5193c8cf0fb732995d29056d0"}],"files/ldap/openstack.ldif":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"86c515c530e393540b14372d24b6d7f30cdc85ef","unresolved":false,"context_lines":[{"line_number":1,"context_line":"dn: dc\u003dopenstack,dc\u003dorg"},{"line_number":2,"context_line":"dc: openstack"},{"line_number":3,"context_line":"objectClass: dcObject"},{"line_number":4,"context_line":"objectClass: organizationalUnit"},{"line_number":5,"context_line":"ou: openstack"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"dn: ou\u003dGroups,dc\u003dopenstack,dc\u003dorg"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAAM3%2F%2FJOk%3D","line":4,"updated":"2013-02-05 18:39:29.000000000","message":"why is organizationalIUnit objectclass needed here?","commit_id":"658bf9c61683f6d5193c8cf0fb732995d29056d0"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"86c515c530e393540b14372d24b6d7f30cdc85ef","unresolved":false,"context_lines":[{"line_number":5,"context_line":"ou: openstack"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"dn: ou\u003dGroups,dc\u003dopenstack,dc\u003dorg"},{"line_number":8,"context_line":"objectClass: top"},{"line_number":9,"context_line":"objectClass: organizationalUnit"},{"line_number":10,"context_line":"ou: groups"},{"line_number":11,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAAM3%2F%2FJO4%3D","line":8,"updated":"2013-02-05 18:39:29.000000000","message":"(suggestion) You should be able to remove this line. organizationalUnit derives from top (as do all structural objectClasses). this applies to the other uses of objectClass: top.","commit_id":"658bf9c61683f6d5193c8cf0fb732995d29056d0"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"86c515c530e393540b14372d24b6d7f30cdc85ef","unresolved":false,"context_lines":[{"line_number":7,"context_line":"dn: ou\u003dGroups,dc\u003dopenstack,dc\u003dorg"},{"line_number":8,"context_line":"objectClass: top"},{"line_number":9,"context_line":"objectClass: organizationalUnit"},{"line_number":10,"context_line":"ou: groups"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"dn: ou\u003dUsers,dc\u003dopenstack,dc\u003dorg"},{"line_number":13,"context_line":"objectClass: top"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAAM3%2F%2FJPg%3D","line":10,"updated":"2013-02-05 18:39:29.000000000","message":"should match the ou in the DN, so \"groups\" -\u003e \"Groups\". Alternatively, I think you can just remove this line and the server will add it.","commit_id":"658bf9c61683f6d5193c8cf0fb732995d29056d0"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"86c515c530e393540b14372d24b6d7f30cdc85ef","unresolved":false,"context_lines":[{"line_number":12,"context_line":"dn: ou\u003dUsers,dc\u003dopenstack,dc\u003dorg"},{"line_number":13,"context_line":"objectClass: top"},{"line_number":14,"context_line":"objectClass: organizationalUnit"},{"line_number":15,"context_line":"ou: users"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"dn: ou\u003dRoles,dc\u003dopenstack,dc\u003dorg"},{"line_number":18,"context_line":"objectClass: top"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAAM3%2F%2FJPU%3D","line":15,"updated":"2013-02-05 18:39:29.000000000","message":"\"users\" -\u003e \"Users\" (or remove it)","commit_id":"658bf9c61683f6d5193c8cf0fb732995d29056d0"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"86c515c530e393540b14372d24b6d7f30cdc85ef","unresolved":false,"context_lines":[{"line_number":17,"context_line":"dn: ou\u003dRoles,dc\u003dopenstack,dc\u003dorg"},{"line_number":18,"context_line":"objectClass: top"},{"line_number":19,"context_line":"objectClass: organizationalUnit"},{"line_number":20,"context_line":"ou: users"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"dn: ou\u003dProjects,dc\u003dopenstack,dc\u003dorg"},{"line_number":23,"context_line":"objectClass: top"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAAM3%2F%2FJPQ%3D","line":20,"updated":"2013-02-05 18:39:29.000000000","message":"\"users\" -\u003e \"Roles\" (or remove it)","commit_id":"658bf9c61683f6d5193c8cf0fb732995d29056d0"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"86c515c530e393540b14372d24b6d7f30cdc85ef","unresolved":false,"context_lines":[{"line_number":22,"context_line":"dn: ou\u003dProjects,dc\u003dopenstack,dc\u003dorg"},{"line_number":23,"context_line":"objectClass: top"},{"line_number":24,"context_line":"objectClass: organizationalUnit"},{"line_number":25,"context_line":"ou: users"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAAM3%2F%2FJPE%3D","line":25,"updated":"2013-02-05 18:39:29.000000000","message":"users -\u003e Projects (or remove it)","commit_id":"658bf9c61683f6d5193c8cf0fb732995d29056d0"}],"files/rpms/ldap":[{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"ad6582f5cffec5f930a3c2993dc3b7347a40267f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"openldap-servers"},{"line_number":2,"context_line":"openldap-client"},{"line_number":3,"context_line":"python-ldap"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAAM3%2F%2FLZM%3D","line":2,"updated":"2013-02-04 18:55:45.000000000","message":"should be openldap-clients","commit_id":"0d1825aae6b8c4af5c052af708c2a5c1c1b2fa24"}],"lib/keystone":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"e683afc3c81c93261ccf8fe11003dd6fa2582f7f","unresolved":false,"context_lines":[{"line_number":91,"context_line":"    local dburl"},{"line_number":92,"context_line":"    database_connection_url dburl keystone"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    if is_service_enabled ldap; then"},{"line_number":95,"context_line":"       #Set all needed ldap values"},{"line_number":96,"context_line":"       iniset $KEYSTONE_CONF ldap password  $LDAP_PASSWORD"},{"line_number":97,"context_line":"       iniset $KEYSTONE_CONF ldap user \"dc\u003dManager,dc\u003dopenstack,dc\u003dorg\""}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAAM3%2F%2FSGM%3D","line":94,"updated":"2013-01-30 11:16:40.000000000","message":"if we are ldap enabled, does that mean there are database things that keystone no longer has to do? (i.e. I\u0027m surprised there isn\u0027t an else)","commit_id":"2c19441c684a7a47262d8e7c2c15205d50cb3f7d"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"e683afc3c81c93261ccf8fe11003dd6fa2582f7f","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    database_connection_url dburl keystone"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    if is_service_enabled ldap; then"},{"line_number":95,"context_line":"       #Set all needed ldap values"},{"line_number":96,"context_line":"       iniset $KEYSTONE_CONF ldap password  $LDAP_PASSWORD"},{"line_number":97,"context_line":"       iniset $KEYSTONE_CONF ldap user \"dc\u003dManager,dc\u003dopenstack,dc\u003dorg\""},{"line_number":98,"context_line":"       iniset $KEYSTONE_CONF ldap suffix \"dc\u003dopenstack,dc\u003dorg\""}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAAM3%2F%2FSHE%3D","line":95,"updated":"2013-01-30 11:16:40.000000000","message":"indent in devstack scripts is 4 spaces","commit_id":"2c19441c684a7a47262d8e7c2c15205d50cb3f7d"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"20af94e46cc1f9b40781d82d2e818260e1099416","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    local dburl"},{"line_number":95,"context_line":"    database_connection_url dburl keystone"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    if is_service_enabled ldap; then"},{"line_number":98,"context_line":"        #Set all needed ldap values"},{"line_number":99,"context_line":"        iniset $KEYSTONE_CONF ldap password  $LDAP_PASSWORD"},{"line_number":100,"context_line":"        iniset $KEYSTONE_CONF ldap user \"dc\u003dManager,dc\u003dopenstack,dc\u003dorg\""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2FNyY%3D","line":97,"updated":"2013-02-01 21:34:41.000000000","message":"I\u0027m wondering if these two test could be combined (ANDed together)?  Are there any cases where you don\u0027t want them both true here?  Assuming someday there might be another reason to start ldap but keystone doesn\u0027t use it, you wouldn\u0027t need to set up keystone.conf for that...","commit_id":"adb194fbe0b844295b334d9c4b2c76d6345702f1"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"645a66169c8eb58b4c49cad49d357616cc4303cc","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    local dburl"},{"line_number":95,"context_line":"    database_connection_url dburl keystone"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    if is_service_enabled ldap; then"},{"line_number":98,"context_line":"        #Set all needed ldap values"},{"line_number":99,"context_line":"        iniset $KEYSTONE_CONF ldap password  $LDAP_PASSWORD"},{"line_number":100,"context_line":"        iniset $KEYSTONE_CONF ldap user \"dc\u003dManager,dc\u003dopenstack,dc\u003dorg\""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2FNnM%3D","line":97,"in_reply_to":"AAAAM3%2F%2FNrM%3D","updated":"2013-02-01 23:53:52.000000000","message":"Gotcha, that makes sense.","commit_id":"adb194fbe0b844295b334d9c4b2c76d6345702f1"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"ac4fbca7154e19388cd0fe2c204e3d7a4e191655","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    local dburl"},{"line_number":95,"context_line":"    database_connection_url dburl keystone"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    if is_service_enabled ldap; then"},{"line_number":98,"context_line":"        #Set all needed ldap values"},{"line_number":99,"context_line":"        iniset $KEYSTONE_CONF ldap password  $LDAP_PASSWORD"},{"line_number":100,"context_line":"        iniset $KEYSTONE_CONF ldap user \"dc\u003dManager,dc\u003dopenstack,dc\u003dorg\""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2FNrM%3D","line":97,"in_reply_to":"AAAAM3%2F%2FNyY%3D","updated":"2013-02-01 23:22:43.000000000","message":"I think the issue is there may be several types of keystone data that may or may not use ldap as the backend.  Splitting the two provides us the most flexibility going forward as our ldap support evolves","commit_id":"adb194fbe0b844295b334d9c4b2c76d6345702f1"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"20af94e46cc1f9b40781d82d2e818260e1099416","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        iniset $KEYSTONE_CONF ldap suffix \"dc\u003dopenstack,dc\u003dorg\""},{"line_number":102,"context_line":"    fi"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    if [[  \"$KEYSTONE_IDENTITY_BACKEND\" \u003d\u003d \"ldap\"  ]]; then"},{"line_number":105,"context_line":"        iniset $KEYSTONE_CONF identity driver \"keystone.identity.backends.ldap.Identity\""},{"line_number":106,"context_line":"    fi"},{"line_number":107,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2FNv0%3D","line":104,"updated":"2013-02-01 21:34:41.000000000","message":"This should have a default setting at the top of this file, probably defaulting to \u0027sql\u0027.","commit_id":"adb194fbe0b844295b334d9c4b2c76d6345702f1"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"645a66169c8eb58b4c49cad49d357616cc4303cc","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        iniset $KEYSTONE_CONF ldap suffix \"dc\u003dopenstack,dc\u003dorg\""},{"line_number":102,"context_line":"    fi"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    if [[  \"$KEYSTONE_IDENTITY_BACKEND\" \u003d\u003d \"ldap\"  ]]; then"},{"line_number":105,"context_line":"        iniset $KEYSTONE_CONF identity driver \"keystone.identity.backends.ldap.Identity\""},{"line_number":106,"context_line":"    fi"},{"line_number":107,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2FNm0%3D","line":104,"in_reply_to":"AAAAM3%2F%2FNrI%3D","updated":"2013-02-01 23:53:52.000000000","message":"This is for the DevStack default not the keystone one. This is the only place this variable appears and it is not obvious that it is available to set. Since one of DevStack\u0027s goals is documenting one opinionated way to install OpenStack I think being explicit here is useful.\n\nAlso, being able to control the DevStack default independently of the project default has been useful in the past particularly in connection to the CI testing.","commit_id":"adb194fbe0b844295b334d9c4b2c76d6345702f1"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"ac4fbca7154e19388cd0fe2c204e3d7a4e191655","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        iniset $KEYSTONE_CONF ldap suffix \"dc\u003dopenstack,dc\u003dorg\""},{"line_number":102,"context_line":"    fi"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    if [[  \"$KEYSTONE_IDENTITY_BACKEND\" \u003d\u003d \"ldap\"  ]]; then"},{"line_number":105,"context_line":"        iniset $KEYSTONE_CONF identity driver \"keystone.identity.backends.ldap.Identity\""},{"line_number":106,"context_line":"    fi"},{"line_number":107,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2FNrI%3D","line":104,"in_reply_to":"AAAAM3%2F%2FNv0%3D","updated":"2013-02-01 23:22:43.000000000","message":"keystone currently handles setting a default value for this in its config file by doing the following:\nregister_str(\u0027driver\u0027, group\u003d\u0027identity\u0027,\n             default\u003d\u0027keystone.identity.backends.sql.Identity\u0027).  This config file sets a  lot of other default drivers as well.  If we set just this one with a default in this file I think we may break precedent and confuse folks","commit_id":"adb194fbe0b844295b334d9c4b2c76d6345702f1"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"356a992ff5404d3f29a3b5e203805ce2afb4cd57","unresolved":false,"context_lines":[{"line_number":293,"context_line":"}"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"# install_keystone() - Collect source and prepare"},{"line_number":296,"context_line":"function install_keystone() {"},{"line_number":297,"context_line":"    git_clone $KEYSTONE_REPO $KEYSTONE_DIR $KEYSTONE_BRANCH"},{"line_number":298,"context_line":"}"},{"line_number":299,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":5,"id":"AAAAM3%2F%2FNVA%3D","line":296,"updated":"2013-02-02 12:19:33.000000000","message":"this is where the install_ldap call should go (conditionally based on whether ldap should be installed)","commit_id":"78e9e964aa0866ae3a414637517ee5db24da5960"}],"lib/ldap":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"e683afc3c81c93261ccf8fe11003dd6fa2582f7f","unresolved":false,"context_lines":[{"line_number":7,"context_line":""},{"line_number":8,"context_line":"# install_ldap() - Collect source and prepare"},{"line_number":9,"context_line":"function install_ldap() {"},{"line_number":10,"context_line":"   echo \"Installing LDAP inside function\""},{"line_number":11,"context_line":"   echo \"LDAP_PASSWORD is $LDAP_PASSWORD\""},{"line_number":12,"context_line":"   echo \"os_VENDOR is $os_VENDOR\""},{"line_number":13,"context_line":"   printf \"installing\""}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAAM3%2F%2FSHA%3D","line":10,"updated":"2013-01-30 11:16:40.000000000","message":"indent in devstack scripts is 4 spaces","commit_id":"2c19441c684a7a47262d8e7c2c15205d50cb3f7d"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"3cea0b68b02346649e447c16d020a4e8d9f8a44a","unresolved":false,"context_lines":[{"line_number":15,"context_line":"           echo \"os vendor is Ubuntu\""},{"line_number":16,"context_line":"           LDAP_OLCDB_NUMBER\u003d1"},{"line_number":17,"context_line":"           LDAP_ROOTPW_COMMAND\u003dreplace"},{"line_number":18,"context_line":"           sudo DEBIAN_FRONTEND\u003dnoninteractive apt-get install slapd ldap-utils"},{"line_number":19,"context_line":"   elif [[ \"$os_VENDOR\" \u003d~ (Fedora) ]]; then"},{"line_number":20,"context_line":"           echo \"os vendor is Fedora\""},{"line_number":21,"context_line":"           LDAP_OLCDB_NUMBER\u003d2"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAAM3%2F%2FSxM%3D","line":18,"updated":"2013-01-29 23:42:29.000000000","message":"Please add slapd and ldap-utils to files/apts/ldap like this:\n\n ldap-utils\n slapd  # NOPRIME\n\nThis will let us include the packages without installing them when package caches are built.  IIRC, ldap-utils doesn\u0027t have the password prompt issue so # NOPRIME isn\u0027t required.","commit_id":"2c19441c684a7a47262d8e7c2c15205d50cb3f7d"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"3cea0b68b02346649e447c16d020a4e8d9f8a44a","unresolved":false,"context_lines":[{"line_number":19,"context_line":"   elif [[ \"$os_VENDOR\" \u003d~ (Fedora) ]]; then"},{"line_number":20,"context_line":"           echo \"os vendor is Fedora\""},{"line_number":21,"context_line":"           LDAP_OLCDB_NUMBER\u003d2"},{"line_number":22,"context_line":"           LDAP_ROOTPW_COMMAND\u003dadd"},{"line_number":23,"context_line":"   fi  "},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    "}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAAM3%2F%2FSww%3D","line":22,"updated":"2013-01-29 23:42:29.000000000","message":"Where do you install the Fedora packages?  Create a similar file in files/rpms/ldap using the Fedora package names.","commit_id":"2c19441c684a7a47262d8e7c2c15205d50cb3f7d"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"3cea0b68b02346649e447c16d020a4e8d9f8a44a","unresolved":false,"context_lines":[{"line_number":27,"context_line":"   SLAPPASS\u003d`slappasswd -s $LDAP_PASSWORD` "},{"line_number":28,"context_line":"    "},{"line_number":29,"context_line":"   printf \"secret is $SLAPPASS\\n\""},{"line_number":30,"context_line":"   "},{"line_number":31,"context_line":"   #create manager.ldif"},{"line_number":32,"context_line":"   cat  $FILES/ldap/manager.ldif.in | sed -e \"s/\\${LDAP_OLCDB_NUMBER}/$LDAP_OLCDB_NUMBER/\" -e \"s/\\${SLAPPASS}/$SLAPPPASS/\" -e \"s/\\${LDAP_ROOTPW_COMMAND}/$LDAP_ROOTPW_COMMAND/\" \u003e  $FILES/ldap/manager.ldif"},{"line_number":33,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAAM3%2F%2FSwI%3D","line":30,"updated":"2013-01-29 23:42:29.000000000","message":"Clean up the trailing whitespace above","commit_id":"2c19441c684a7a47262d8e7c2c15205d50cb3f7d"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"20af94e46cc1f9b40781d82d2e818260e1099416","unresolved":false,"context_lines":[{"line_number":15,"context_line":"    echo \"LDAP_PASSWORD is $LDAP_PASSWORD\""},{"line_number":16,"context_line":"    echo \"os_VENDOR is $os_VENDOR\""},{"line_number":17,"context_line":"    printf \"installing\""},{"line_number":18,"context_line":"    if [[ \"$os_VENDOR\" \u003d~ (Ubuntu) ]]; then"},{"line_number":19,"context_line":"        echo \"os vendor is Ubuntu\""},{"line_number":20,"context_line":"        LDAP_OLCDB_NUMBER\u003d1"},{"line_number":21,"context_line":"        LDAP_ROOTPW_COMMAND\u003dreplace"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2FNwc%3D","line":18,"updated":"2013-02-01 21:34:41.000000000","message":"See the note about vendor tests below","commit_id":"adb194fbe0b844295b334d9c4b2c76d6345702f1"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"ac4fbca7154e19388cd0fe2c204e3d7a4e191655","unresolved":false,"context_lines":[{"line_number":15,"context_line":"    echo \"LDAP_PASSWORD is $LDAP_PASSWORD\""},{"line_number":16,"context_line":"    echo \"os_VENDOR is $os_VENDOR\""},{"line_number":17,"context_line":"    printf \"installing\""},{"line_number":18,"context_line":"    if [[ \"$os_VENDOR\" \u003d~ (Ubuntu) ]]; then"},{"line_number":19,"context_line":"        echo \"os vendor is Ubuntu\""},{"line_number":20,"context_line":"        LDAP_OLCDB_NUMBER\u003d1"},{"line_number":21,"context_line":"        LDAP_ROOTPW_COMMAND\u003dreplace"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2FNoc%3D","line":18,"in_reply_to":"AAAAM3%2F%2FNwc%3D","updated":"2013-02-01 23:22:43.000000000","message":"OK will do","commit_id":"adb194fbe0b844295b334d9c4b2c76d6345702f1"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"20af94e46cc1f9b40781d82d2e818260e1099416","unresolved":false,"context_lines":[{"line_number":20,"context_line":"        LDAP_OLCDB_NUMBER\u003d1"},{"line_number":21,"context_line":"        LDAP_ROOTPW_COMMAND\u003dreplace"},{"line_number":22,"context_line":"        sudo DEBIAN_FRONTEND\u003dnoninteractive apt-get install slapd ldap-utils"},{"line_number":23,"context_line":"    elif [[ \"$os_VENDOR\" \u003d~ (Fedora) ]]; then"},{"line_number":24,"context_line":"        echo \"os vendor is Fedora\""},{"line_number":25,"context_line":"        LDAP_OLCDB_NUMBER\u003d2"},{"line_number":26,"context_line":"        LDAP_ROOTPW_COMMAND\u003dadd"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2FNwg%3D","line":23,"updated":"2013-02-01 21:34:41.000000000","message":"We have is_fedora, is_ubuntu and is_suse functions for this that pick ip the variations: e.g. is_fedora returns true for Fedora, RHEL and CentOS.","commit_id":"adb194fbe0b844295b334d9c4b2c76d6345702f1"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"ac4fbca7154e19388cd0fe2c204e3d7a4e191655","unresolved":false,"context_lines":[{"line_number":20,"context_line":"        LDAP_OLCDB_NUMBER\u003d1"},{"line_number":21,"context_line":"        LDAP_ROOTPW_COMMAND\u003dreplace"},{"line_number":22,"context_line":"        sudo DEBIAN_FRONTEND\u003dnoninteractive apt-get install slapd ldap-utils"},{"line_number":23,"context_line":"    elif [[ \"$os_VENDOR\" \u003d~ (Fedora) ]]; then"},{"line_number":24,"context_line":"        echo \"os vendor is Fedora\""},{"line_number":25,"context_line":"        LDAP_OLCDB_NUMBER\u003d2"},{"line_number":26,"context_line":"        LDAP_ROOTPW_COMMAND\u003dadd"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2FNoY%3D","line":23,"in_reply_to":"AAAAM3%2F%2FNwg%3D","updated":"2013-02-01 23:22:43.000000000","message":"I will update these","commit_id":"adb194fbe0b844295b334d9c4b2c76d6345702f1"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"20af94e46cc1f9b40781d82d2e818260e1099416","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        echo \"os vendor is Fedora\""},{"line_number":25,"context_line":"        LDAP_OLCDB_NUMBER\u003d2"},{"line_number":26,"context_line":"        LDAP_ROOTPW_COMMAND\u003dadd"},{"line_number":27,"context_line":"        yum install openldap-servers openldap-client"},{"line_number":28,"context_line":"    fi"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    printf \"generate password file\""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2FNwk%3D","line":27,"updated":"2013-02-01 21:34:41.000000000","message":"You don\u0027t need to do that here, the prereq handling will pick these up from files/rpms/ldap.  Since Fedora doesn\u0027t start the service automatically it doesn\u0027t need a #NOPRIME there.","commit_id":"adb194fbe0b844295b334d9c4b2c76d6345702f1"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"645a66169c8eb58b4c49cad49d357616cc4303cc","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        echo \"os vendor is Fedora\""},{"line_number":25,"context_line":"        LDAP_OLCDB_NUMBER\u003d2"},{"line_number":26,"context_line":"        LDAP_ROOTPW_COMMAND\u003dadd"},{"line_number":27,"context_line":"        yum install openldap-servers openldap-client"},{"line_number":28,"context_line":"    fi"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    printf \"generate password file\""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2FNmk%3D","line":27,"in_reply_to":"AAAAM3%2F%2FNqE%3D","updated":"2013-02-01 23:53:52.000000000","message":"Right, but that also makes the install here redundant as they have already been installed by the prereq processing in stack.sh based on files/rpms/ldap.\n\nThe NOPRIME is used to defer installation of server packages where the service starts during the install.  That gets messy say when building devstack disk images.","commit_id":"adb194fbe0b844295b334d9c4b2c76d6345702f1"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"ac4fbca7154e19388cd0fe2c204e3d7a4e191655","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        echo \"os vendor is Fedora\""},{"line_number":25,"context_line":"        LDAP_OLCDB_NUMBER\u003d2"},{"line_number":26,"context_line":"        LDAP_ROOTPW_COMMAND\u003dadd"},{"line_number":27,"context_line":"        yum install openldap-servers openldap-client"},{"line_number":28,"context_line":"    fi"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    printf \"generate password file\""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2FNqE%3D","line":27,"in_reply_to":"AAAAM3%2F%2FNwk%3D","updated":"2013-02-01 23:22:43.000000000","message":"I did not put a #NOPRIME in files/rpms/ldap","commit_id":"adb194fbe0b844295b334d9c4b2c76d6345702f1"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"20af94e46cc1f9b40781d82d2e818260e1099416","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    printf \"secret is $SLAPPASS\\n\""},{"line_number":34,"context_line":"    #create manager.ldif"},{"line_number":35,"context_line":"    cat  $FILES/ldap/manager.ldif.in | sed -e \"s/\\${LDAP_OLCDB_NUMBER}/$LDAP_OLCDB_NUMBER/\" -e \"s/\\${SLAPPASS}/$SLAPPPASS/\" -e \"s/\\${LDAP_ROOTPW_COMMAND}/$LDAP_ROOTPW_COMMAND/\" \u003e  $FILES/ldap/manager.ldif"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    #update ldap olcdb"},{"line_number":38,"context_line":"    sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f  $FILES/ldap/manager.ldif"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2FNwI%3D","line":35,"updated":"2013-02-01 21:34:41.000000000","message":"You don\u0027t need the cat, you can put manager.ldif.in as sed\u0027s last argument. Also, it doesn\u0027t look like any of these substitution strings are in manager.ldif.in","commit_id":"adb194fbe0b844295b334d9c4b2c76d6345702f1"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"ac4fbca7154e19388cd0fe2c204e3d7a4e191655","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    printf \"secret is $SLAPPASS\\n\""},{"line_number":34,"context_line":"    #create manager.ldif"},{"line_number":35,"context_line":"    cat  $FILES/ldap/manager.ldif.in | sed -e \"s/\\${LDAP_OLCDB_NUMBER}/$LDAP_OLCDB_NUMBER/\" -e \"s/\\${SLAPPASS}/$SLAPPPASS/\" -e \"s/\\${LDAP_ROOTPW_COMMAND}/$LDAP_ROOTPW_COMMAND/\" \u003e  $FILES/ldap/manager.ldif"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    #update ldap olcdb"},{"line_number":38,"context_line":"    sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f  $FILES/ldap/manager.ldif"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2FNnw%3D","line":35,"in_reply_to":"AAAAM3%2F%2FNwI%3D","updated":"2013-02-01 23:22:43.000000000","message":"I will remove the cat.  Good Catch on the missing substitutions.  Very strange about them missing. I will fix that.","commit_id":"adb194fbe0b844295b334d9c4b2c76d6345702f1"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"20af94e46cc1f9b40781d82d2e818260e1099416","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        ldapadd -c -x -H ldap://localhost -D dc\u003dManager,dc\u003dopenstack,dc\u003dorg -w $LDAP_PASSWORD -f  $FILES/ldap/openstack.ldif"},{"line_number":46,"context_line":"    fi"},{"line_number":47,"context_line":" "},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"}"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"# Restore xtrace"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2FNw0%3D","line":48,"updated":"2013-02-01 21:34:41.000000000","message":"Whitespace above.\n\nAnd I\u0027d like to see start_ldap() and stop_ldap() functions even if they\u0027re just thin wrappers around start_service ldap.  Fedora doesn\u0027t start the server by default so it\u0027ll need to be started explicitly.","commit_id":"adb194fbe0b844295b334d9c4b2c76d6345702f1"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"ac4fbca7154e19388cd0fe2c204e3d7a4e191655","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        ldapadd -c -x -H ldap://localhost -D dc\u003dManager,dc\u003dopenstack,dc\u003dorg -w $LDAP_PASSWORD -f  $FILES/ldap/openstack.ldif"},{"line_number":46,"context_line":"    fi"},{"line_number":47,"context_line":" "},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"}"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"# Restore xtrace"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2FNos%3D","line":48,"in_reply_to":"AAAAM3%2F%2FNw0%3D","updated":"2013-02-01 23:22:43.000000000","message":"Good Catch!!!  I will add these and hopefully will remove the whitespace this time","commit_id":"adb194fbe0b844295b334d9c4b2c76d6345702f1"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"ad6582f5cffec5f930a3c2993dc3b7347a40267f","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    printf \"secret is $SLAPPASS\\n\""},{"line_number":35,"context_line":"    #create manager.ldif"},{"line_number":36,"context_line":"    sed -e \"s|\\${LDAP_OLCDB_NUMBER}|$LDAP_OLCDB_NUMBER|\" -e \"s|\\${SLAPPASS}|$SLAPPASS|\" -e \"s|\\${LDAP_ROOTPW_COMMAND}|$LDAP_ROOTPW_COMMAND|\" $FILES/ldap/manager.ldif.in \u003e  $FILES/ldap/manager.ldif"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    #update ldap olcdb"},{"line_number":39,"context_line":"    sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f  $FILES/ldap/manager.ldif"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAAM3%2F%2FLYo%3D","line":36,"updated":"2013-02-04 18:55:45.000000000","message":"When you are done, you leave behind a file called manager.ldif.  If this is the long term approach, it should be an entry in .gitignore.  Otherwise,  use mktmp for that file.","commit_id":"0d1825aae6b8c4af5c052af708c2a5c1c1b2fa24"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"ad6582f5cffec5f930a3c2993dc3b7347a40267f","unresolved":false,"context_lines":[{"line_number":54,"context_line":"}"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"# start_ldap() - Start LDAP"},{"line_number":57,"context_line":"function start_ldap() {"},{"line_number":58,"context_line":"    sudo /etc/init.d/slapd start"},{"line_number":59,"context_line":"}"},{"line_number":60,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAAM3%2F%2FLaU%3D","line":57,"updated":"2013-02-04 18:55:45.000000000","message":"You should be using the service interface:\n\nservice slapd restart\n\nis probably safest, as it will start it if it isn\u0027t running, and restart it if it is.\n\nYou can\u0027t safely execute the init script directly in latest Fedora (18)  as it uses  to systemd.","commit_id":"0d1825aae6b8c4af5c052af708c2a5c1c1b2fa24"}],"lib/ldap/ldapinstalltest":[{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"96cf5050d30abc7bc31d0b721439a137ec3654e1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env bash"},{"line_number":2,"context_line":"LDAP_PASSWORD\u003darvind"},{"line_number":3,"context_line":"os_VENDOR\u003dUbuntu"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"if [[ \"$os_VENDOR\" \u003d~ (Ubuntu) ]]; then"},{"line_number":6,"context_line":"        echo \"os vendor is Ubuntu\""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAM3%2F%2FW4I%3D","line":3,"updated":"2013-01-25 18:30:05.000000000","message":"Check to see if this value or something similar is calucalted elsehwere in devstack and follow suit.  At a minimum, you can grep in  /etc/issue","commit_id":"03e2931142ce8d96ce9170efacee14e179431928"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"96cf5050d30abc7bc31d0b721439a137ec3654e1","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"#install ldap"},{"line_number":17,"context_line":"printf \"installing\""},{"line_number":18,"context_line":"sudo DEBIAN_FRONTEND\u003dnoninteractive apt-get install slapd ldap-utils "},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"printf \"generate password file\""},{"line_number":21,"context_line":"SLAPPASS\u003d`slappasswd -s $LDAP_PASSWORD`"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAM3%2F%2FW4E%3D","line":18,"updated":"2013-01-25 18:30:05.000000000","message":"put this ins the vendor specific section","commit_id":"03e2931142ce8d96ce9170efacee14e179431928"}],"lib/ldap/ldapuninstall":[{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"96cf5050d30abc7bc31d0b721439a137ec3654e1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env bash"},{"line_number":2,"context_line":"printf \"uninstall ldap\""},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"#uninstall ldap"},{"line_number":5,"context_line":"sudo apt-get remove --purge slapd ldap-utils"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAM3%2F%2FW3g%3D","line":2,"updated":"2013-01-25 18:30:05.000000000","message":"I suspect that there is a devstack generic way to perform this task.\n\nI don;t think devstack uninstalls packages, though","commit_id":"03e2931142ce8d96ce9170efacee14e179431928"}],"lib/ldap/manager.ldif":[{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"96cf5050d30abc7bc31d0b721439a137ec3654e1","unresolved":false,"context_lines":[{"line_number":7,"context_line":"olcRootDN: dc\u003dManager,dc\u003dopenstack,dc\u003dorg"},{"line_number":8,"context_line":"-"},{"line_number":9,"context_line":"replace: olcRootPW"},{"line_number":10,"context_line":"olcRootPW:{SSHA}By/3c7Ifk9T1cq/kv8voaTrG6EbPwoKe"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAM3%2F%2FW3s%3D","line":10,"updated":"2013-01-25 18:30:05.000000000","message":"Use ${SLAPPASS}  and rename this file manager.ldif.in.  Modify it in a copy stage to a temp file named  manager.ldif or, even better, pass it via standard input and output to the ldapmodify function","commit_id":"03e2931142ce8d96ce9170efacee14e179431928"}],"lib/ldap/openstack.ldif":[{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"80d86f8108a317d2f8efe75a14b808bbaff5dc2f","unresolved":false,"context_lines":[{"line_number":3,"context_line":"objectClass: dcObject"},{"line_number":4,"context_line":"objectClass: organizationalUnit"},{"line_number":5,"context_line":"ou: openstack"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"dn: ou\u003dGroups,dc\u003dopenstack,dc\u003dorg"},{"line_number":8,"context_line":"objectClass: top"},{"line_number":9,"context_line":"objectClass: organizationalUnit"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAM3%2F%2FWnA%3D","line":6,"updated":"2013-01-25 21:29:11.000000000","message":"Add in the Projects","commit_id":"03e2931142ce8d96ce9170efacee14e179431928"}],"stack.sh":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"3cea0b68b02346649e447c16d020a4e8d9f8a44a","unresolved":false,"context_lines":[{"line_number":653,"context_line":"        exit_distro_not_supported \"rsyslog-relp installation\""},{"line_number":654,"context_line":"    fi"},{"line_number":655,"context_line":"fi"},{"line_number":656,"context_line":""},{"line_number":657,"context_line":"install_rpc_backend"},{"line_number":658,"context_line":""},{"line_number":659,"context_line":"if is_service_enabled $DATABASE_BACKENDS; then"}],"source_content_type":"text/x-sh","patch_set":2,"id":"AAAAM3%2F%2FSxw%3D","side":"PARENT","line":656,"updated":"2013-01-29 23:42:29.000000000","message":"restore","commit_id":"3b3a6d78a63e93b43d3815f7e32a32458a82a3a9"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"3cea0b68b02346649e447c16d020a4e8d9f8a44a","unresolved":false,"context_lines":[{"line_number":616,"context_line":"# Exit on any errors so that errors don\u0027t compound"},{"line_number":617,"context_line":"trap failed ERR"},{"line_number":618,"context_line":"failed() {"},{"line_number":619,"context_line":""},{"line_number":620,"context_line":"    local r\u003d$?"},{"line_number":621,"context_line":"    kill \u003e/dev/null 2\u003e\u00261 $(jobs -p)"},{"line_number":622,"context_line":"    set +o xtrace"}],"source_content_type":"text/x-sh","patch_set":2,"id":"AAAAM3%2F%2FSx0%3D","line":619,"updated":"2013-01-29 23:42:29.000000000","message":"remove","commit_id":"2c19441c684a7a47262d8e7c2c15205d50cb3f7d"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"3cea0b68b02346649e447c16d020a4e8d9f8a44a","unresolved":false,"context_lines":[{"line_number":697,"context_line":"    read_password LDAP_PASSWORD \"ENTER A PASSWORD TO USE FOR LDAP\""},{"line_number":698,"context_line":"    install_ldap "},{"line_number":699,"context_line":"fi"},{"line_number":700,"context_line":"#read -p \"Press [Enter] NOW AFTER LDAP SERVICE NOT ENABLED\""},{"line_number":701,"context_line":""},{"line_number":702,"context_line":"# glance, swift middleware and nova api needs keystone middleware"},{"line_number":703,"context_line":"if is_service_enabled key g-api n-api swift; then"}],"source_content_type":"text/x-sh","patch_set":2,"id":"AAAAM3%2F%2FSxk%3D","line":700,"updated":"2013-01-29 23:42:29.000000000","message":"Remove the commented-out lines and the trailing whitespace","commit_id":"2c19441c684a7a47262d8e7c2c15205d50cb3f7d"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"356a992ff5404d3f29a3b5e203805ce2afb4cd57","unresolved":false,"context_lines":[{"line_number":475,"context_line":"# Services authenticate to Identity with servicename/``SERVICE_PASSWORD``"},{"line_number":476,"context_line":"read_password SERVICE_PASSWORD \"ENTER A SERVICE_PASSWORD TO USE FOR THE SERVICE AUTHENTICATION.\""},{"line_number":477,"context_line":"# Horizon currently truncates usernames and passwords at 20 characters"},{"line_number":478,"context_line":"read_password ADMIN_PASSWORD \"ENTER A PASSWORD TO USE FOR HORIZON AND KEYSTONE (20 CHARS OR LESS).\""},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"# Set the tenant for service accounts in Keystone"},{"line_number":481,"context_line":"SERVICE_TENANT_NAME\u003d${SERVICE_TENANT_NAME:-service}"}],"source_content_type":"text/x-sh","patch_set":5,"id":"AAAAM3%2F%2FNVE%3D","line":478,"updated":"2013-02-02 12:19:33.000000000","message":"This is where the ldap read password should go","commit_id":"78e9e964aa0866ae3a414637517ee5db24da5960"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"356a992ff5404d3f29a3b5e203805ce2afb4cd57","unresolved":false,"context_lines":[{"line_number":689,"context_line":"# Check out the client libs that are used most"},{"line_number":690,"context_line":"git_clone $OPENSTACKCLIENT_REPO $OPENSTACKCLIENT_DIR $OPENSTACKCLIENT_BRANCH"},{"line_number":691,"context_line":""},{"line_number":692,"context_line":"# only install ldap if requested"},{"line_number":693,"context_line":"if is_service_enabled ldap; then"},{"line_number":694,"context_line":"    read_password LDAP_PASSWORD \"ENTER A PASSWORD TO USE FOR LDAP\""},{"line_number":695,"context_line":"    install_ldap"}],"source_content_type":"text/x-sh","patch_set":5,"id":"AAAAM3%2F%2FNVI%3D","line":692,"updated":"2013-02-02 12:19:33.000000000","message":"The ldap read password should go up to the top, where the used is asked for all of these.","commit_id":"78e9e964aa0866ae3a414637517ee5db24da5960"}]}
