)]}'
{"lib/placement":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"456c3a32b21a3268551e6866a508bcb6e1d70c64","unresolved":false,"context_lines":[{"line_number":25,"context_line":"# Defaults"},{"line_number":26,"context_line":"# --------"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"PLACEMENT_CONF_DIR\u003d/etc/nova"},{"line_number":29,"context_line":"PLACEMENT_CONF\u003d$PLACEMENT_CONF_DIR/nova.conf"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"if is_suse; then"},{"line_number":32,"context_line":"    PLACEMENT_WSGI_DIR\u003d${PLACEMENT_WSGI_DIR:-/srv/www/htdocs/placement}"}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"fa7ab95a_0b7e9e18","line":29,"range":{"start_line":28,"start_character":0,"end_line":29,"end_character":44},"updated":"2016-08-29 20:20:07.000000000","message":"I\u0027m not sure if we want these to be nova or placement, but I guess for now nova is probably OK.","commit_id":"344cc025226756afe8177d7975bf4fc677597a14"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"9cd0a7bd27fb3fe85539bc8b951af062a6fddc8b","unresolved":false,"context_lines":[{"line_number":26,"context_line":"# --------"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"PLACEMENT_CONF_DIR\u003d/etc/nova"},{"line_number":29,"context_line":"PLACEMENT_CONF\u003d$PLACEMENT_CONF_DIR/nova.conf"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"if is_suse; then"},{"line_number":32,"context_line":"    PLACEMENT_WSGI_DIR\u003d${PLACEMENT_WSGI_DIR:-/srv/www/htdocs/placement}"}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"fa7ab95a_b946d378","line":29,"in_reply_to":"fa7ab95a_0b7e9e18","updated":"2016-08-30 08:32:22.000000000","message":"If you mean using a different config file, that was tried back before the mid-cycle and it was a big mess to have a different config file while also in nova at the same time. Wasn\u0027t worth the effort.","commit_id":"344cc025226756afe8177d7975bf4fc677597a14"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"456c3a32b21a3268551e6866a508bcb6e1d70c64","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    PLACEMENT_WSGI_DIR\u003d${PLACEMENT_WSGI_DIR:-/var/www/placement}"},{"line_number":35,"context_line":"fi"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"if is_ssl_enabled_service \"placement\" || is_service_enabled tls-proxy; then"},{"line_number":38,"context_line":"    PLACEMENT_SERVICE_PROTOCOL\u003d\"https\""},{"line_number":39,"context_line":"fi"},{"line_number":40,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"fa7ab95a_2ba28299","line":37,"range":{"start_line":37,"start_character":27,"end_line":37,"end_character":36},"updated":"2016-08-29 20:20:07.000000000","message":"You use placement-api elsewhere for this.","commit_id":"344cc025226756afe8177d7975bf4fc677597a14"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"9cd0a7bd27fb3fe85539bc8b951af062a6fddc8b","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    PLACEMENT_WSGI_DIR\u003d${PLACEMENT_WSGI_DIR:-/var/www/placement}"},{"line_number":35,"context_line":"fi"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"if is_ssl_enabled_service \"placement\" || is_service_enabled tls-proxy; then"},{"line_number":38,"context_line":"    PLACEMENT_SERVICE_PROTOCOL\u003d\"https\""},{"line_number":39,"context_line":"fi"},{"line_number":40,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"fa7ab95a_f95cdb4c","line":37,"in_reply_to":"fa7ab95a_2ba28299","updated":"2016-08-30 08:32:22.000000000","message":"Done","commit_id":"344cc025226756afe8177d7975bf4fc677597a14"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"456c3a32b21a3268551e6866a508bcb6e1d70c64","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"# Test if any placement services are enabled"},{"line_number":50,"context_line":"# is_placement_enabled"},{"line_number":51,"context_line":"function is_placement_enabled {"},{"line_number":52,"context_line":"    [[ ,${ENABLED_SERVICES} \u003d~ ,\"placement-\" ]] \u0026\u0026 return 0"},{"line_number":53,"context_line":"    return 1"},{"line_number":54,"context_line":"}"}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"fa7ab95a_ebe97ab8","line":51,"updated":"2016-08-29 20:20:07.000000000","message":"Doesn\u0027t look like this is used anywhere. Maybe it\u0027s required as a callback template though?\n\nI almost wonder if this change should be a devstack plugin within Nova actually....but that would really throw a wrench in the works right now at this point in the schedule so let\u0027s pretend I didn\u0027t say anything.","commit_id":"344cc025226756afe8177d7975bf4fc677597a14"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"9cd0a7bd27fb3fe85539bc8b951af062a6fddc8b","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"# Test if any placement services are enabled"},{"line_number":50,"context_line":"# is_placement_enabled"},{"line_number":51,"context_line":"function is_placement_enabled {"},{"line_number":52,"context_line":"    [[ ,${ENABLED_SERVICES} \u003d~ ,\"placement-\" ]] \u0026\u0026 return 0"},{"line_number":53,"context_line":"    return 1"},{"line_number":54,"context_line":"}"}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"fa7ab95a_b914134d","line":51,"in_reply_to":"fa7ab95a_ebe97ab8","updated":"2016-08-30 08:32:22.000000000","message":"It\u0027s used indirectly via stackrc.\n\nDoing this as a plugin was considered but dismissed because at that time it wasn\u0027t clear that placement would ever be optional (that is nova would always require it) so having it core seemed to make more sense. If you look in the commit message, there\u0027s some (small) stuff about that in there.","commit_id":"344cc025226756afe8177d7975bf4fc677597a14"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"456c3a32b21a3268551e6866a508bcb6e1d70c64","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    local placement_api_port\u003d$PLACEMENT_SERVICE_PORT"},{"line_number":68,"context_line":"    local venv_path\u003d\"\""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    # reuse nova\u0027s cert if a cert is being sued"},{"line_number":71,"context_line":"    if is_ssl_enabled_service placement-api; then"},{"line_number":72,"context_line":"        placement_ssl\u003d\"SSLEngine On\""},{"line_number":73,"context_line":"        placement_certfile\u003d\"SSLCertificateFile $NOVA_SSL_CERT\""}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"fa7ab95a_2bdc4272","line":70,"range":{"start_line":70,"start_character":43,"end_line":70,"end_character":47},"updated":"2016-08-29 20:20:07.000000000","message":"used","commit_id":"344cc025226756afe8177d7975bf4fc677597a14"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"9cd0a7bd27fb3fe85539bc8b951af062a6fddc8b","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    local placement_api_port\u003d$PLACEMENT_SERVICE_PORT"},{"line_number":68,"context_line":"    local venv_path\u003d\"\""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    # reuse nova\u0027s cert if a cert is being sued"},{"line_number":71,"context_line":"    if is_ssl_enabled_service placement-api; then"},{"line_number":72,"context_line":"        placement_ssl\u003d\"SSLEngine On\""},{"line_number":73,"context_line":"        placement_certfile\u003d\"SSLCertificateFile $NOVA_SSL_CERT\""}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"fa7ab95a_d90f1735","line":70,"in_reply_to":"fa7ab95a_2bdc4272","updated":"2016-08-30 08:32:22.000000000","message":"Done","commit_id":"344cc025226756afe8177d7975bf4fc677597a14"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"456c3a32b21a3268551e6866a508bcb6e1d70c64","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"# configure_placement() - Set config files, create data dirs, etc"},{"line_number":100,"context_line":"function configure_placement {"},{"line_number":101,"context_line":"    iniset $PLACEMENT_CONF placement_database connection `database_connection_url placement`"},{"line_number":102,"context_line":"    _config_placement_apache_wsgi"},{"line_number":103,"context_line":"}"},{"line_number":104,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"fa7ab95a_4bbc2606","line":101,"updated":"2016-08-29 20:20:07.000000000","message":"I think this needs to change.","commit_id":"344cc025226756afe8177d7975bf4fc677597a14"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"9cd0a7bd27fb3fe85539bc8b951af062a6fddc8b","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"# configure_placement() - Set config files, create data dirs, etc"},{"line_number":100,"context_line":"function configure_placement {"},{"line_number":101,"context_line":"    iniset $PLACEMENT_CONF placement_database connection `database_connection_url placement`"},{"line_number":102,"context_line":"    _config_placement_apache_wsgi"},{"line_number":103,"context_line":"}"},{"line_number":104,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"fa7ab95a_3901e306","line":101,"in_reply_to":"fa7ab95a_4bbc2606","updated":"2016-08-30 08:32:22.000000000","message":"I\u0027ve decided to make a conditional in preparation for the forthcoming optional database.","commit_id":"344cc025226756afe8177d7975bf4fc677597a14"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fabd22917c3b91c65abf119ab2aa636bb420cc86","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"# init_placement() - Create service user and endpoints"},{"line_number":122,"context_line":"function init_placement {"},{"line_number":123,"context_line":"    recreate_database placement"},{"line_number":124,"context_line":"    # Currently using nova-manage to manage the placement db."},{"line_number":125,"context_line":"    $NOVA_BIN_DIR/nova-manage --config-file $PLACEMENT_CONF placement sync"},{"line_number":126,"context_line":"    create_placement_accounts"}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"fa7ab95a_48042f49","line":123,"updated":"2016-08-29 19:16:45.000000000","message":"Due to https://review.openstack.org/#/c/360638/ there isn\u0027t a separate placement DB so we have to rework this. I thought it was just going to use the nova API DB but could be optionally configured to use a different connection (with the API DB schema).","commit_id":"344cc025226756afe8177d7975bf4fc677597a14"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"9cd0a7bd27fb3fe85539bc8b951af062a6fddc8b","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"# init_placement() - Create service user and endpoints"},{"line_number":122,"context_line":"function init_placement {"},{"line_number":123,"context_line":"    recreate_database placement"},{"line_number":124,"context_line":"    # Currently using nova-manage to manage the placement db."},{"line_number":125,"context_line":"    $NOVA_BIN_DIR/nova-manage --config-file $PLACEMENT_CONF placement sync"},{"line_number":126,"context_line":"    create_placement_accounts"}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"fa7ab95a_e416ee4a","line":123,"in_reply_to":"fa7ab95a_48042f49","updated":"2016-08-30 08:32:22.000000000","message":"this is going to get wrapped in the conditional mentioned above","commit_id":"344cc025226756afe8177d7975bf4fc677597a14"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"135ac013ac99d6828033a8ff9f061deb1e715e52","unresolved":false,"context_lines":[{"line_number":119,"context_line":"# create_placement_accounts() - Set up required placement accounts"},{"line_number":120,"context_line":"# and service and endpoints."},{"line_number":121,"context_line":"function create_placement_accounts {"},{"line_number":122,"context_line":"    create_service_user \"placement\""},{"line_number":123,"context_line":"    local placement_api_url\u003d\"$PLACEMENT_SERVICE_PROTOCOL://$PLACEMENT_SERVICE_HOST/placement\""},{"line_number":124,"context_line":"    get_or_create_service \"placement\" \"placement\" \"Placement Service\""},{"line_number":125,"context_line":"    get_or_create_endpoint \\"}],"source_content_type":"application/x-shellscript","patch_set":9,"id":"fa7ab95a_a1fbea77","line":122,"updated":"2016-08-30 11:56:35.000000000","message":"add \"admin\" role here\n\nalso need conf settings as here: https://github.com/openstack-dev/devstack/blob/ecfc8a77c203c7832b8b7542342cbb8e258a7765/lib/neutron#L292-L312","commit_id":"53c0ce5ee09559e0ff139d61ddaf2a78c0f3aa69"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"38529fe15e957ccffb8de4e3aae6690d8e7820d5","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    fi"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    # copy wsgi application file"},{"line_number":96,"context_line":"    sudo cp $NOVA_DIR/nova/api/openstack/placement/placement-api.py $PLACEMENT_WSGI_DIR/placement-api"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    sudo cp $FILES/apache-placement-api.template $placement_api_apache_conf"},{"line_number":99,"context_line":"    sudo sed -e \""}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"fa7ab95a_9d1aadc4","line":96,"updated":"2016-08-30 18:47:23.000000000","message":"this is the wrong way to do things, we should have a wsgi-script here, however for now we can go with it and fix it later.","commit_id":"4d6017566a2fd550b418609c8452e6cf35dd29a7"}],"stack.sh":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"38529fe15e957ccffb8de4e3aae6690d8e7820d5","unresolved":false,"context_lines":[{"line_number":1281,"context_line":"if is_service_enabled placement; then"},{"line_number":1282,"context_line":"    echo_summary \"Starting Placement\""},{"line_number":1283,"context_line":"    start_placement"},{"line_number":1284,"context_line":"fi"},{"line_number":1285,"context_line":"if is_service_enabled cinder; then"},{"line_number":1286,"context_line":"    echo_summary \"Starting Cinder\""},{"line_number":1287,"context_line":"    start_cinder"}],"source_content_type":"text/x-sh","patch_set":10,"id":"fa7ab95a_1d5cdd7b","line":1284,"updated":"2016-08-30 18:47:23.000000000","message":"nit: we should probably start this before nova","commit_id":"4d6017566a2fd550b418609c8452e6cf35dd29a7"}],"stackrc":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c89928375a4bfee6c7ccd6e0b9b27e28f0bcd8b7","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    # Keystone - nothing works without keystone"},{"line_number":62,"context_line":"    ENABLED_SERVICES\u003dkey"},{"line_number":63,"context_line":"    # Nova - services to support libvirt based openstack clouds"},{"line_number":64,"context_line":"    ENABLED_SERVICES+\u003d,n-api,n-cpu,n-cond,n-sch,n-novnc,n-cauth,placement-api"},{"line_number":65,"context_line":"    # Glance services needed for Nova"},{"line_number":66,"context_line":"    ENABLED_SERVICES+\u003d,g-api,g-reg"},{"line_number":67,"context_line":"    # Cinder"}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"fa7ab95a_2bda82e8","line":64,"updated":"2016-08-29 20:21:56.000000000","message":"Per discussion in IRC today, we don\u0027t want to enable the placement-api by default in Newton since it\u0027s optional and we want to test it that way in the integrated gate. I\u0027m working on an experimental queue job that will run with the placement-api which we can use for testing in nova.","commit_id":"344cc025226756afe8177d7975bf4fc677597a14"}]}
