)]}'
{"check-sanity":[{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"8b84f6fad6c4927171077b81896371b354515f3d","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"# For a given process name, resolve the corresponding devstack service"},{"line_number":85,"context_line":"# name as it would appear in ENABLED_SERVICES."},{"line_number":86,"context_line":"function process_to_service {"},{"line_number":87,"context_line":"    case \"$1\" in"},{"line_number":88,"context_line":"      \"nova-api\") echo \"n-api\" ;;"},{"line_number":89,"context_line":"      \"nova-conductor\") echo \"n-cond\" ;;"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"1abeadc6_a27bee27","line":86,"updated":"2014-08-26 21:33:45.000000000","message":"doesn\u0027t devstack already have something like this somewhere?  Shouldn\u0027t something like this live in devstack directly?","commit_id":"fc90d55ecc2a678552903bbd4887fea16b9aea9f"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"2bd4e24cf1420c78e94ef6be0592e3ac9d77ed27","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"# For a given process name, resolve the corresponding devstack service"},{"line_number":85,"context_line":"# name as it would appear in ENABLED_SERVICES."},{"line_number":86,"context_line":"function process_to_service {"},{"line_number":87,"context_line":"    case \"$1\" in"},{"line_number":88,"context_line":"      \"nova-api\") echo \"n-api\" ;;"},{"line_number":89,"context_line":"      \"nova-conductor\") echo \"n-cond\" ;;"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"1abeadc6_19c89473","line":86,"in_reply_to":"1abeadc6_764d1799","updated":"2014-08-26 22:47:25.000000000","message":"good point, this isn\u0027t ideal but it makes sense given the current situation","commit_id":"fc90d55ecc2a678552903bbd4887fea16b9aea9f"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"132d3e08107b9f058788077afadf37c50e12cf9b","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"# For a given process name, resolve the corresponding devstack service"},{"line_number":85,"context_line":"# name as it would appear in ENABLED_SERVICES."},{"line_number":86,"context_line":"function process_to_service {"},{"line_number":87,"context_line":"    case \"$1\" in"},{"line_number":88,"context_line":"      \"nova-api\") echo \"n-api\" ;;"},{"line_number":89,"context_line":"      \"nova-conductor\") echo \"n-cond\" ;;"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"1abeadc6_764d1799","line":86,"in_reply_to":"1abeadc6_a27bee27","updated":"2014-08-26 22:16:20.000000000","message":"devstack doesn\u0027t really offer anything to do this kind of mapping.  service related functions operate on service names (n-api) while anything process related operates on process name (nova-api) or PID.  TARGET_SERVICES/BASE_SERVICES is a grenade thing that is constructed using the process names only.\n\nI initially considered adding this to devstack, but since it currently wouldn\u0027t ever be used anywhere in devstack itself it felt better to add it here.  If the only consumer is grenade, it should live in grenade making dependent changes easier to coordinate in the future (vs dependent changes across the 2 projects)\n\nIf the idea is to make devstack more of a general purpose library to be consumed by grenade and others, long term we could create a better interface to make it easier to do these kinds of things in grenade/elsewhere?","commit_id":"fc90d55ecc2a678552903bbd4887fea16b9aea9f"}],"grenade.sh":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"9547b8b75c4b03bba3e8b6a575db0cc1a6b1d96a","unresolved":false,"context_lines":[{"line_number":366,"context_line":"    mkdir -p $SAVE_DIR"},{"line_number":367,"context_line":"    for db in keystone glance nova cinder; do"},{"line_number":368,"context_line":"        if mysql -uroot -p$MYSQL_PASSWORD -c $db -e \u0027\u0027; then"},{"line_number":369,"context_line":"            mysqldump -uroot -p$MYSQL_PASSWORD $db \u003e$SAVE_DIR/$db.sql.$BASE_RELEASE"},{"line_number":370,"context_line":"        fi"},{"line_number":371,"context_line":"    done"},{"line_number":372,"context_line":"    neutron_db_name\u003d$(mysql -uroot -p$MYSQL_PASSWORD -e \"show databases;\" | grep neutron || :)"}],"source_content_type":"text/x-sh","patch_set":3,"id":"1abeadc6_833aea96","line":369,"updated":"2014-08-22 19:26:57.000000000","message":"I don\u0027t understand why this is changed to BASE_RELEASE","commit_id":"4932af88622fe36afcffa8de82f5aa774d915400"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"3f7518eb7ff5494b74baa662e1fe489cde2d171b","unresolved":false,"context_lines":[{"line_number":366,"context_line":"    mkdir -p $SAVE_DIR"},{"line_number":367,"context_line":"    for db in keystone glance nova cinder; do"},{"line_number":368,"context_line":"        if mysql -uroot -p$MYSQL_PASSWORD -c $db -e \u0027\u0027; then"},{"line_number":369,"context_line":"            mysqldump -uroot -p$MYSQL_PASSWORD $db \u003e$SAVE_DIR/$db.sql.$BASE_RELEASE"},{"line_number":370,"context_line":"        fi"},{"line_number":371,"context_line":"    done"},{"line_number":372,"context_line":"    neutron_db_name\u003d$(mysql -uroot -p$MYSQL_PASSWORD -e \"show databases;\" | grep neutron || :)"}],"source_content_type":"text/x-sh","patch_set":3,"id":"1abeadc6_428d23d2","line":369,"in_reply_to":"1abeadc6_833aea96","updated":"2014-08-23 05:09:59.000000000","message":"looks like a copy/paste error","commit_id":"4932af88622fe36afcffa8de82f5aa774d915400"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"196c2aa6d9f929622eb6e0e294cf01e2de943857","unresolved":false,"context_lines":[{"line_number":366,"context_line":"    mkdir -p $SAVE_DIR"},{"line_number":367,"context_line":"    for db in keystone glance nova cinder; do"},{"line_number":368,"context_line":"        if mysql -uroot -p$MYSQL_PASSWORD -c $db -e \u0027\u0027; then"},{"line_number":369,"context_line":"            mysqldump -uroot -p$MYSQL_PASSWORD $db \u003e$SAVE_DIR/$db.sql.$TARGET_RELEASE"},{"line_number":370,"context_line":"        fi"},{"line_number":371,"context_line":"    done"},{"line_number":372,"context_line":"    neutron_db_name\u003d$(mysql -uroot -p$MYSQL_PASSWORD -e \"show databases;\" | grep neutron || :)"}],"source_content_type":"text/x-sh","patch_set":4,"id":"1abeadc6_fe76753e","line":369,"updated":"2014-08-26 12:17:59.000000000","message":"this seems like an unrelated change","commit_id":"fc90d55ecc2a678552903bbd4887fea16b9aea9f"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"e616972795c6b1cc7f0dee8fb01ce123cd679197","unresolved":false,"context_lines":[{"line_number":366,"context_line":"    mkdir -p $SAVE_DIR"},{"line_number":367,"context_line":"    for db in keystone glance nova cinder; do"},{"line_number":368,"context_line":"        if mysql -uroot -p$MYSQL_PASSWORD -c $db -e \u0027\u0027; then"},{"line_number":369,"context_line":"            mysqldump -uroot -p$MYSQL_PASSWORD $db \u003e$SAVE_DIR/$db.sql.$TARGET_RELEASE"},{"line_number":370,"context_line":"        fi"},{"line_number":371,"context_line":"    done"},{"line_number":372,"context_line":"    neutron_db_name\u003d$(mysql -uroot -p$MYSQL_PASSWORD -e \"show databases;\" | grep neutron || :)"}],"source_content_type":"text/x-sh","patch_set":4,"id":"1abeadc6_6e8e2ad2","line":369,"in_reply_to":"1abeadc6_fe76753e","updated":"2014-08-26 17:34:33.000000000","message":"from commit message: \"...It also updates grenade.sh and check-sanity to only dump databases that exist...\"","commit_id":"fc90d55ecc2a678552903bbd4887fea16b9aea9f"}]}
