)]}'
{"firstapp/samples/jclouds/getting_started.java":[{"author":{"_account_id":10088,"name":"Martin Paulo","email":"martin.paulo@gmail.com","username":"KiwiMartin"},"change_message_id":"1611ffc48b9446c935aae66af2afd968318b45b6","unresolved":false,"context_lines":[{"line_number":52,"context_line":"public class JCloudsFirstApp implements Closeable {"},{"line_number":53,"context_line":"    private final NovaApi conn;"},{"line_number":54,"context_line":"    private final Set\u003cString\u003e regions;"},{"line_number":55,"context_line":"    private final String REGION \u003d \"RegionOne\";"},{"line_number":56,"context_line":"    "},{"line_number":57,"context_line":"    public static void main(String[] args) throws IOException {"},{"line_number":58,"context_line":"        JCloudsFirstApp jCloudsFirstApp \u003d new JCloudsFirstApp();"}],"source_content_type":"text/x-java","patch_set":1,"id":"da85f559_25cfaa80","line":55,"updated":"2015-11-16 06:01:56.000000000","message":"I had to enumerate the regions on our cloud to find the value to use :(","commit_id":"65f2b7564687fd9e2c7ac7f78c0551143eb5a576"},{"author":{"_account_id":10088,"name":"Martin Paulo","email":"martin.paulo@gmail.com","username":"KiwiMartin"},"change_message_id":"1611ffc48b9446c935aae66af2afd968318b45b6","unresolved":false,"context_lines":[{"line_number":108,"context_line":"// # step-6"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"       CreateServerOptions options \u003d new CreateServerOptions();"},{"line_number":111,"context_line":"       options.networks(\"0d09a773-974e-4282-97ad-863f3c7062af\");"},{"line_number":112,"context_line":"       String instance_name \u003d \"testingInstance\";"},{"line_number":113,"context_line":"       ServerCreated newInstance \u003d conn.getServerApi(REGION).create(instance_name, image_id, flavor_id);"},{"line_number":114,"context_line":"       System.out.println(\"Server created: \"+newInstance.getId());"}],"source_content_type":"text/x-java","patch_set":1,"id":"da85f559_a512bab2","line":111,"updated":"2015-11-16 06:01:56.000000000","message":"The options.networks has no affect on our NeCTAR cloud. I\u0027m not sure where the magic number comes from either. I\u0027m guessing that this a network that has been set up using Neutron? I see that it is explained a little later on...","commit_id":"65f2b7564687fd9e2c7ac7f78c0551143eb5a576"},{"author":{"_account_id":10088,"name":"Martin Paulo","email":"martin.paulo@gmail.com","username":"KiwiMartin"},"change_message_id":"1611ffc48b9446c935aae66af2afd968318b45b6","unresolved":false,"context_lines":[{"line_number":252,"context_line":"\t   while (allInOneInstance.getStatus().toString() !\u003d \"ACTIVE\"){"},{"line_number":253,"context_line":"\t        //Objects are not updated \"live\" so keep checking to make sure it\u0027s been added"},{"line_number":254,"context_line":"\t       allInOneInstance \u003d conn.getServerApi(REGION).get(allInOneInstance.getId());"},{"line_number":255,"context_line":"\t   }"},{"line_number":256,"context_line":"\t   System.out.println(\"Server created: \"+allInOneInstance.getId());"},{"line_number":257,"context_line":"\t}"},{"line_number":258,"context_line":""}],"source_content_type":"text/x-java","patch_set":1,"id":"da85f559_08195b79","line":255,"updated":"2015-11-16 06:01:56.000000000","message":"I used:\nString id \u003d serverCreated.getId();\nServerPredicates.awaitActive(serverApi).apply(id);","commit_id":"65f2b7564687fd9e2c7ac7f78c0551143eb5a576"},{"author":{"_account_id":10088,"name":"Martin Paulo","email":"martin.paulo@gmail.com","username":"KiwiMartin"},"change_message_id":"1611ffc48b9446c935aae66af2afd968318b45b6","unresolved":false,"context_lines":[{"line_number":282,"context_line":"    \tSystem.out.println(\"Creating new floating IP.... \");"},{"line_number":283,"context_line":"    \tunusedFloatingIP \u003d floatingIPApi.create();"},{"line_number":284,"context_line":"    }"},{"line_number":285,"context_line":"    System.out.println(\"Using \"+unusedFloatingIP.getIp());"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"// # step-14"},{"line_number":288,"context_line":""}],"source_content_type":"text/x-java","patch_set":1,"id":"da85f559_855d367b","line":285,"updated":"2015-11-16 06:01:56.000000000","message":"On our cloud we have fixed IP addresses. This line died because the unused floating IP was null. To get past this point I had to do:\n    if (unusedFloatingIP !\u003d null) {\n            System.out.println(\"Using \" + unusedFloatingIP.getIp());\n        }","commit_id":"65f2b7564687fd9e2c7ac7f78c0551143eb5a576"},{"author":{"_account_id":10088,"name":"Martin Paulo","email":"martin.paulo@gmail.com","username":"KiwiMartin"},"change_message_id":"1611ffc48b9446c935aae66af2afd968318b45b6","unresolved":false,"context_lines":[{"line_number":287,"context_line":"// # step-14"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"    System.out.println(allInOneInstance.getAddresses());"},{"line_number":290,"context_line":"    if (allInOneInstance.getAddresses().size() \u003e 1){"},{"line_number":291,"context_line":"    \tSystem.out.println(\"Public IP already assigned.  Skipping attachment.\");"},{"line_number":292,"context_line":"    } else {"},{"line_number":293,"context_line":"    \tSystem.out.println(\"Attaching new IP, please wait.\");"}],"source_content_type":"text/x-java","patch_set":1,"id":"da85f559_e5e522a8","line":290,"updated":"2015-11-16 06:01:56.000000000","message":"On our cloud this was 1, so I had to set a size of \u003e 0","commit_id":"65f2b7564687fd9e2c7ac7f78c0551143eb5a576"},{"author":{"_account_id":10088,"name":"Martin Paulo","email":"martin.paulo@gmail.com","username":"KiwiMartin"},"change_message_id":"1611ffc48b9446c935aae66af2afd968318b45b6","unresolved":false,"context_lines":[{"line_number":304,"context_line":"  "},{"line_number":305,"context_line":"\tSystem.out.print(\"The Fractals app will be deployed to http://\");"},{"line_number":306,"context_line":"\tIterator addresses \u003d allInOneInstance.getAddresses().get(\"net04\").iterator();"},{"line_number":307,"context_line":"\taddresses.next();"},{"line_number":308,"context_line":"\tAddress target \u003d (Address) addresses.next();"},{"line_number":309,"context_line":"\tSystem.out.println(target.getAddr()); "},{"line_number":310,"context_line":""}],"source_content_type":"text/x-java","patch_set":1,"id":"da85f559_05f86648","line":307,"updated":"2015-11-16 06:01:56.000000000","message":"To work on our cloud I had to amend as follows:\nIterator addresses \u003d allInOneInstance.getAddresses().values().iterator();\n//addresses.next();","commit_id":"65f2b7564687fd9e2c7ac7f78c0551143eb5a576"}],"firstapp/source/getting_started.rst":[{"author":{"_account_id":10897,"name":"Joseph Robinson","email":"josephremail@gmail.com","username":"RobiJoe"},"change_message_id":"5959d6406f1d3d7d9989f1fb0f0f05b0a2dbf8f2","unresolved":false,"context_lines":[{"line_number":1095,"context_line":"        :start-after: step-8"},{"line_number":1096,"context_line":"        :end-before: step-9"},{"line_number":1097,"context_line":""},{"line_number":1098,"context_line":"    As you can see, the instance isn\u0027t deleted immediately, so"},{"line_number":1099,"context_line":"    you\u0027ll need to keep an eye on the status to know when you can"},{"line_number":1100,"context_line":"    move on."},{"line_number":1101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da85f559_28626d17","line":1098,"updated":"2015-11-13 05:23:01.000000000","message":"Remove contractions here: ..the instance is not deleted immediately, so you will need to keep an..","commit_id":"65f2b7564687fd9e2c7ac7f78c0551143eb5a576"},{"author":{"_account_id":10897,"name":"Joseph Robinson","email":"josephremail@gmail.com","username":"RobiJoe"},"change_message_id":"5959d6406f1d3d7d9989f1fb0f0f05b0a2dbf8f2","unresolved":false,"context_lines":[{"line_number":1177,"context_line":""},{"line_number":1178,"context_line":"    As you can see, there\u0027s a lot going on here.  The first thing you need"},{"line_number":1179,"context_line":"    to do is make sure that the Key Pair API is supported in the first place."},{"line_number":1180,"context_line":"    If it is, you\u0027ll want to make sure that it doesn\u0027t exist yet. Here we\u0027re doing "},{"line_number":1181,"context_line":"    that by looping through all of the keypairs and checking their names.  "},{"line_number":1182,"context_line":"    (Unfortunately there\u0027s no simpler way to do it in JClouds.)  If it exists,"},{"line_number":1183,"context_line":"    we\u0027ll simply move on.  If not, we\u0027ll go ahead and create the key pair, then"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da85f559_c85ac150","line":1180,"updated":"2015-11-13 05:23:01.000000000","message":"Contractions: change to ..you will.. and address white space at the end of line 1180 and 1181.","commit_id":"65f2b7564687fd9e2c7ac7f78c0551143eb5a576"},{"author":{"_account_id":10897,"name":"Joseph Robinson","email":"josephremail@gmail.com","username":"RobiJoe"},"change_message_id":"5959d6406f1d3d7d9989f1fb0f0f05b0a2dbf8f2","unresolved":false,"context_lines":[{"line_number":1181,"context_line":"    that by looping through all of the keypairs and checking their names.  "},{"line_number":1182,"context_line":"    (Unfortunately there\u0027s no simpler way to do it in JClouds.)  If it exists,"},{"line_number":1183,"context_line":"    we\u0027ll simply move on.  If not, we\u0027ll go ahead and create the key pair, then"},{"line_number":1184,"context_line":"    save it to the chosen file location."},{"line_number":1185,"context_line":""},{"line_number":1186,"context_line":""},{"line_number":1187,"context_line":".. only:: shade"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da85f559_f35a1a2a","line":1184,"updated":"2015-11-13 05:23:01.000000000","message":"Adjust the pronouns here, and remove \u0027simply;: \"if it exists, it is okay to move on. If not, go ahead and create the key pair, and then save it to the chose file location\".","commit_id":"65f2b7564687fd9e2c7ac7f78c0551143eb5a576"},{"author":{"_account_id":10897,"name":"Joseph Robinson","email":"josephremail@gmail.com","username":"RobiJoe"},"change_message_id":"8f87fddf4c040f034f8f73587db734f190ddb029","unresolved":false,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    To try it, create a class with the following code:"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    .. literalinclude:: ../samples/jclouds/getting_started.java"},{"line_number":276,"context_line":"        :language: java"},{"line_number":277,"context_line":"        :start-after: step-1"},{"line_number":278,"context_line":"        :end-before: step-2"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a7e1126_86ef30e8","line":275,"updated":"2015-12-20 23:48:21.000000000","message":"The getting_started.java literallinclude:: here is causing the build error according to the console report.","commit_id":"cdeda5ffc03603914f9294d62cda098c90a27719"}]}
