)]}'
{"firstapp/samples/shade/introduction.py":[{"author":{"_account_id":287,"name":"Stefano Maffulli \u0027reed\u0027","email":"stefano@openstack.org","username":"smaffulli"},"change_message_id":"e65516729cba79208327b1942a98211c13178f5c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# step-1"},{"line_number":2,"context_line":"userdata \u003d \u0027\u0027\u0027#!/usr/bin/env bash"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"curl -L -s https://git.openstack.org/cgit/stackforge/faafo/plain/contrib/install.sh | bash -s -- \\"},{"line_number":5,"context_line":"-i faafo -i messaging -r api -r worker -r demo"},{"line_number":6,"context_line":"\u0027\u0027\u0027"},{"line_number":7,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7a2fa921_614cc870","line":4,"updated":"2015-10-06 20:41:15.000000000","message":"ipython doesn\u0027t seem to like the \\ to continue the command.","commit_id":"8e778fbe1d08d8cdc13f2be3f179ed828efbefce"},{"author":{"_account_id":287,"name":"Stefano Maffulli \u0027reed\u0027","email":"stefano@openstack.org","username":"smaffulli"},"change_message_id":"e65516729cba79208327b1942a98211c13178f5c","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    image\u003dimage_id, flavor\u003dflavor_id, key_name\u003dkeypair_name,"},{"line_number":12,"context_line":"    security_groups\u003d[sec_group_name],"},{"line_number":13,"context_line":"    userdata\u003dex_userdata)"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"# step-2"},{"line_number":16,"context_line":"userdata \u003d \u0027\u0027\u0027#!/usr/bin/env bash"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7a2fa921_a142e03c","line":14,"updated":"2015-10-06 20:41:15.000000000","message":"ex_userdata is not defined.","commit_id":"8e778fbe1d08d8cdc13f2be3f179ed828efbefce"},{"author":{"_account_id":287,"name":"Stefano Maffulli \u0027reed\u0027","email":"stefano@openstack.org","username":"smaffulli"},"change_message_id":"e65516729cba79208327b1942a98211c13178f5c","unresolved":false,"context_lines":[{"line_number":31,"context_line":"conn.list_security_groups()"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"# step-5"},{"line_number":34,"context_line":"conn.delete_security_group_rule(rule[\u0027id\u0027])"},{"line_number":35,"context_line":"conn.delete_security_group(sec_group_name)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"# step-6"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a2fa921_a4de6e6b","line":34,"updated":"2015-10-06 20:41:15.000000000","message":"NameError: name \u0027rule\u0027 is not defined","commit_id":"8e778fbe1d08d8cdc13f2be3f179ed828efbefce"},{"author":{"_account_id":287,"name":"Stefano Maffulli \u0027reed\u0027","email":"stefano@openstack.org","username":"smaffulli"},"change_message_id":"e65516729cba79208327b1942a98211c13178f5c","unresolved":false,"context_lines":[{"line_number":47,"context_line":"conn.attach_ip_to_server(testing_instance[\u0027id\u0027], unused_floating_ip[\u0027id\u0027])"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"# step-11"},{"line_number":50,"context_line":"sec_group_name \u003d \u0027all-in-one\u0027"},{"line_number":51,"context_line":"conn.create_security_group(sec_group_name, \u0027network access for all-in-one application.\u0027)"},{"line_number":52,"context_line":"conn.create_security_group_rule(sec_group_name, 80, 80, \u0027TCP\u0027)"},{"line_number":53,"context_line":"conn.create_security_group_rule(sec_group_name, 22, 22, \u0027TCP\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a2fa921_c4ca8a6e","line":50,"updated":"2015-10-06 20:41:15.000000000","message":"are you sure about this name again?","commit_id":"8e778fbe1d08d8cdc13f2be3f179ed828efbefce"},{"author":{"_account_id":287,"name":"Stefano Maffulli \u0027reed\u0027","email":"stefano@openstack.org","username":"smaffulli"},"change_message_id":"caf88234ce15100e767be2d7129430e1ae31af86","unresolved":false,"context_lines":[{"line_number":31,"context_line":"conn.list_security_groups()"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"# step-5"},{"line_number":34,"context_line":"conn.delete_security_group_rule(rule[\u0027id\u0027])"},{"line_number":35,"context_line":"conn.delete_security_group(sec_group_name)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"# step-6"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a2fa921_53671e25","line":34,"updated":"2015-10-06 21:12:34.000000000","message":"This is probably a step that I would remove from all versions as it\u0027s an expansion of the tutorial. I leave this discussion to a separate place though.","commit_id":"12cb71c51a128c530a293de6baa475457dbbb178"}]}
