)]}'
{"HACKING.rst":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"fa001ed35b4544ad7b4d64e94a26563b1b3c4b9f","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"* If you want an excersice skipped when for example a service wasn\u0027t enabled"},{"line_number":140,"context_line":"  for the exercise to be run, you can exit your exercise with the special"},{"line_number":141,"context_line":"  signal 222 and it will be detected as skipped."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"* The exercise scripts should only use the various OpenStack client binaries to"},{"line_number":144,"context_line":"  interact with OpenStack.  This specifically excludes any ``*-manage`` tools"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAE3%2F%2F9OQ%3D","line":141,"updated":"2012-03-16 17:59:04.000000000","message":"Probably should say \u0027exitcode\u0027 here rather than \u0027signal\u0027 since it has a specific different meaning.","commit_id":"d6cd4d29f5e13edef5581a429dfd48ac4231044d"}],"exercise.sh":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"bdaea0f0f15dc9297095dcccddda167ef5603554","unresolved":false,"context_lines":[{"line_number":25,"context_line":"        echo Running $script"},{"line_number":26,"context_line":"        echo \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":27,"context_line":"        $EXERCISE_DIR/$script.sh"},{"line_number":28,"context_line":"        if [[ $? \u003d\u003d 222 ]]; then"},{"line_number":29,"context_line":"            skips\u003d\"$skips $script\""},{"line_number":30,"context_line":"        elif [[ $? -ne 0 ]] ; then"},{"line_number":31,"context_line":"            failures\u003d\"$failures $script\""}],"source_content_type":"text/x-sh","patch_set":2,"id":"AAAAE3%2F%2F9GU%3D","line":28,"updated":"2012-03-16 20:49:51.000000000","message":"Exit code shouldn\u0027t exceed 125","commit_id":"d6cd4d29f5e13edef5581a429dfd48ac4231044d"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"ac1078c832da285c8104fb7e0ce86d85444d7760","unresolved":false,"context_lines":[{"line_number":25,"context_line":"        echo Running $script"},{"line_number":26,"context_line":"        echo \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":27,"context_line":"        $EXERCISE_DIR/$script.sh"},{"line_number":28,"context_line":"        if [[ $? \u003d\u003d 55 ]]; then"},{"line_number":29,"context_line":"            skips\u003d\"$skips $script\""},{"line_number":30,"context_line":"        elif [[ $? -ne 0 ]] ; then"},{"line_number":31,"context_line":"            failures\u003d\"$failures $script\""}],"source_content_type":"text/x-sh","patch_set":4,"id":"AAAAFH%2F%2F%2Bzg%3D","line":28,"updated":"2012-03-26 23:54:58.000000000","message":"$? gets reset in this test causing the test below to fail.  Save it to a var before line 28","commit_id":"3e608abd5da49fd36c1ea48dfa1060f1ac98ad69"}],"exercises/swift.sh":[{"author":{"_account_id":112,"name":"Jesse Andrews","email":"anotherjesse@gmail.com","username":"anotherjesse"},"change_message_id":"dccf84c68bb40d311414bc25f7f186a9563128db","unresolved":false,"context_lines":[{"line_number":38,"context_line":"# excercise is skipped."},{"line_number":39,"context_line":"is_enabled swift || exit 222"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"exit"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"# Testing Swift"},{"line_number":44,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-sh","patch_set":1,"id":"AAAAE3%2F%2F9hk%3D","line":41,"updated":"2012-03-16 00:27:54.000000000","message":"do you mean to have this?","commit_id":"61b18d49b0d0cab2ab1e7e2ad9217dd2f81ad18d"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"fa001ed35b4544ad7b4d64e94a26563b1b3c4b9f","unresolved":false,"context_lines":[{"line_number":34,"context_line":"# Container name"},{"line_number":35,"context_line":"CONTAINER\u003dex-swift"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"# If swift is not enabled exit with the 222 signal which mean"},{"line_number":38,"context_line":"# excercise is skipped."},{"line_number":39,"context_line":"is_enabled swift || exit 222"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-sh","patch_set":2,"id":"AAAAE3%2F%2F9OM%3D","line":37,"updated":"2012-03-16 17:59:04.000000000","message":"Again, switch signal for exitcode","commit_id":"d6cd4d29f5e13edef5581a429dfd48ac4231044d"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"bdaea0f0f15dc9297095dcccddda167ef5603554","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"# If swift is not enabled exit with the 222 signal which mean"},{"line_number":38,"context_line":"# excercise is skipped."},{"line_number":39,"context_line":"is_enabled swift || exit 222"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"# Testing Swift"},{"line_number":42,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-sh","patch_set":2,"id":"AAAAE3%2F%2F9GY%3D","line":39,"updated":"2012-03-16 20:49:51.000000000","message":"Exit code shouldn\u0027t exceed 125","commit_id":"d6cd4d29f5e13edef5581a429dfd48ac4231044d"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"ad8cdca767312abc89ab710394dd3e04ff1f844c","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"# If swift is not enabled we exit with exitcode 55 which mean"},{"line_number":38,"context_line":"# excercise is skipped."},{"line_number":39,"context_line":"is_enabled swift || exit 55"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"# Testing Swift"},{"line_number":42,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-sh","patch_set":3,"id":"AAAAE3%2F%2F8xk%3D","line":39,"updated":"2012-03-19 15:16:40.000000000","message":"should be is_service_enabled","commit_id":"7ffb0a1cd910e5f0c23c706cbbef55380082c102"}]}
