)]}'
{"exercises/boot_from_volume.sh":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"d5efff8d1a2bac88412d281223cd167251a087c3","unresolved":false,"context_lines":[{"line_number":26,"context_line":"popd"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"# Boot this image, use first AMI image if unset"},{"line_number":29,"context_line":"DEFAULT_IMAGE_NAME\u003d${DEFAULT_IMAGE_NAME:-ami}"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"# Instance type"},{"line_number":32,"context_line":"DEFAULT_INSTANCE_TYPE\u003d${DEFAULT_INSTANCE_TYPE:-m1.tiny}"}],"source_content_type":"text/x-sh","patch_set":1,"id":"AAAAEn%2F%2F67g%3D","line":29,"updated":"2012-02-14 21:37:18.000000000","message":"fails if the first ami listed isn\u0027t bootable...\n\nYou already call out a cirros image below to download, maybe set it here too?  If upstream breaks/changes maintenance is already necessary.","commit_id":"5e4a0c9639ea194979c8b4e3464711fe26715f34"},{"author":{"_account_id":1155,"name":"sleepsonthefloor","username":"sleepsonthefloor"},"change_message_id":"bd2a6bacad9322e2cec7896929b9aa96e4990ec8","unresolved":false,"context_lines":[{"line_number":26,"context_line":"popd"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"# Boot this image, use first AMI image if unset"},{"line_number":29,"context_line":"DEFAULT_IMAGE_NAME\u003d${DEFAULT_IMAGE_NAME:-ami}"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"# Instance type"},{"line_number":32,"context_line":"DEFAULT_INSTANCE_TYPE\u003d${DEFAULT_INSTANCE_TYPE:-m1.tiny}"}],"source_content_type":"text/x-sh","patch_set":1,"id":"AAAAEn%2F%2F5Cw%3D","line":29,"in_reply_to":"AAAAEn%2F%2F67g%3D","updated":"2012-02-18 00:34:40.000000000","message":"this is probably a separate bug.  we use this same structure in other exercises.","commit_id":"5e4a0c9639ea194979c8b4e3464711fe26715f34"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"d5efff8d1a2bac88412d281223cd167251a087c3","unresolved":false,"context_lines":[{"line_number":35,"context_line":"DEFAULT_FLOATING_POOL\u003d${DEFAULT_FLOATING_POOL:-nova}"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"# Grab the id of the image to launch"},{"line_number":38,"context_line":"IMAGE\u003d`glance -S keystone -I $OS_USERNAME -K $OS_PASSWORD -T $OS_TENANT_NAME -H $GLANCE_HOST index | egrep $DEFAULT_IMAGE_NAME | head -1 | cut -d\" \" -f1`"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"if [ \"$IMAGE\" \u003d \"\" ]; then"},{"line_number":41,"context_line":"    echo \"No image :(\""}],"source_content_type":"text/x-sh","patch_set":1,"id":"AAAAEn%2F%2F68w%3D","line":38,"updated":"2012-02-14 21:37:18.000000000","message":"\u0027glance -f index\u0027 should now be sufficient.  -f to prevent paging","commit_id":"5e4a0c9639ea194979c8b4e3464711fe26715f34"},{"author":{"_account_id":1155,"name":"sleepsonthefloor","username":"sleepsonthefloor"},"change_message_id":"bd2a6bacad9322e2cec7896929b9aa96e4990ec8","unresolved":false,"context_lines":[{"line_number":35,"context_line":"DEFAULT_FLOATING_POOL\u003d${DEFAULT_FLOATING_POOL:-nova}"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"# Grab the id of the image to launch"},{"line_number":38,"context_line":"IMAGE\u003d`glance -S keystone -I $OS_USERNAME -K $OS_PASSWORD -T $OS_TENANT_NAME -H $GLANCE_HOST index | egrep $DEFAULT_IMAGE_NAME | head -1 | cut -d\" \" -f1`"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"if [ \"$IMAGE\" \u003d \"\" ]; then"},{"line_number":41,"context_line":"    echo \"No image :(\""}],"source_content_type":"text/x-sh","patch_set":1,"id":"AAAAEn%2F%2F5Cs%3D","line":38,"in_reply_to":"AAAAEn%2F%2F68w%3D","updated":"2012-02-18 00:34:40.000000000","message":"cool, I\u0027ll give that a try","commit_id":"5e4a0c9639ea194979c8b4e3464711fe26715f34"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"d5efff8d1a2bac88412d281223cd167251a087c3","unresolved":false,"context_lines":[{"line_number":191,"context_line":"EOF"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"# Delete volume backed instance"},{"line_number":194,"context_line":"nova delete $VOL_INSTANCE_NAME"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"# Wait till our volume is no longer in-use"},{"line_number":197,"context_line":"if ! timeout $ACTIVE_TIMEOUT sh -c \"while ! nova volume-list | grep $VOL_NAME | grep available; do sleep 1; done\"; then"}],"source_content_type":"text/x-sh","patch_set":1,"id":"AAAAEn%2F%2F6w0%3D","line":194,"updated":"2012-02-14 21:37:18.000000000","message":"Would it be safer to use UUID here?","commit_id":"5e4a0c9639ea194979c8b4e3464711fe26715f34"},{"author":{"_account_id":1155,"name":"sleepsonthefloor","username":"sleepsonthefloor"},"change_message_id":"bd2a6bacad9322e2cec7896929b9aa96e4990ec8","unresolved":false,"context_lines":[{"line_number":191,"context_line":"EOF"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"# Delete volume backed instance"},{"line_number":194,"context_line":"nova delete $VOL_INSTANCE_NAME"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"# Wait till our volume is no longer in-use"},{"line_number":197,"context_line":"if ! timeout $ACTIVE_TIMEOUT sh -c \"while ! nova volume-list | grep $VOL_NAME | grep available; do sleep 1; done\"; then"}],"source_content_type":"text/x-sh","patch_set":1,"id":"AAAAEn%2F%2F5DE%3D","line":194,"in_reply_to":"AAAAEn%2F%2F6w0%3D","updated":"2012-02-18 00:34:40.000000000","message":"I wanted to refer by name where possible, since I think that\u0027s how a lot of users will use the nova cli","commit_id":"5e4a0c9639ea194979c8b4e3464711fe26715f34"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"d5efff8d1a2bac88412d281223cd167251a087c3","unresolved":false,"context_lines":[{"line_number":203,"context_line":"nova volume-delete $VOL_NAME"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"# Delete instance"},{"line_number":206,"context_line":"nova delete $INSTANCE_NAME"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"# De-allocate the floating ip"},{"line_number":209,"context_line":"nova floating-ip-delete $FLOATING_IP"}],"source_content_type":"text/x-sh","patch_set":1,"id":"AAAAEn%2F%2F6ww%3D","line":206,"updated":"2012-02-14 21:37:18.000000000","message":"UUID here too?","commit_id":"5e4a0c9639ea194979c8b4e3464711fe26715f34"},{"author":{"_account_id":1155,"name":"sleepsonthefloor","username":"sleepsonthefloor"},"change_message_id":"bd2a6bacad9322e2cec7896929b9aa96e4990ec8","unresolved":false,"context_lines":[{"line_number":203,"context_line":"nova volume-delete $VOL_NAME"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"# Delete instance"},{"line_number":206,"context_line":"nova delete $INSTANCE_NAME"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"# De-allocate the floating ip"},{"line_number":209,"context_line":"nova floating-ip-delete $FLOATING_IP"}],"source_content_type":"text/x-sh","patch_set":1,"id":"AAAAEn%2F%2F5DA%3D","line":206,"in_reply_to":"AAAAEn%2F%2F6ww%3D","updated":"2012-02-18 00:34:40.000000000","message":"Same as above.  I think users will use names until we get tab completion for uuids.","commit_id":"5e4a0c9639ea194979c8b4e3464711fe26715f34"}]}
