)]}'
{"firstapp/samples/fog/introduction.rb":[{"author":{"_account_id":17098,"name":"Stanislaw Szydlo","email":"stanislaw.szydlo@ericpol.com","username":"stsz"},"change_message_id":"d6294604fa0c5b39f65b9002d7b70bd282d40440","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":"curl -L -s https://git.openstack.org/cgit/stackforge/faafo/plain/contrib/install.sh | bash -s -- \\"},{"line_number":4,"context_line":"    -i faafo -i messaging -r api -r worker -r demo"},{"line_number":5,"context_line":"\u0027\u0027\u0027"},{"line_number":6,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":10,"id":"3a29b11f_a811b553","line":3,"updated":"2015-10-23 07:13:40.000000000","message":"\u0027stackforge\u0027 should be changed to \u0027openstack\u0027 due to \nhttps://bugs.launchpad.net/openstack-manuals/+bug/1508488","commit_id":"3075e2ce344fe51752a99d74ebe79ef2d8e52f0f"},{"author":{"_account_id":17098,"name":"Stanislaw Szydlo","email":"stanislaw.szydlo@ericpol.com","username":"stsz"},"change_message_id":"d6294604fa0c5b39f65b9002d7b70bd282d40440","unresolved":false,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":"# step-2"},{"line_number":11,"context_line":"userdata \u003d \u0027\u0027\u0027#!/usr/bin/env bash"},{"line_number":12,"context_line":"curl -L -s https://git.openstack.org/cgit/stackforge/faafo/plain/contrib/install.sh | bash -s -- \\"},{"line_number":13,"context_line":"    -i messaging -i faafo -r api -r worker -r demo"},{"line_number":14,"context_line":"\u0027\u0027\u0027"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":10,"id":"3a29b11f_0829c989","line":12,"updated":"2015-10-23 07:13:40.000000000","message":"\u0027stackforge\u0027 should be changed to \u0027openstack\u0027 due to https://bugs.launchpad.net/openstack-manuals/+bug/1508488","commit_id":"3075e2ce344fe51752a99d74ebe79ef2d8e52f0f"},{"author":{"_account_id":17098,"name":"Stanislaw Szydlo","email":"stanislaw.szydlo@ericpol.com","username":"stsz"},"change_message_id":"d6294604fa0c5b39f65b9002d7b70bd282d40440","unresolved":false,"context_lines":[{"line_number":62,"context_line":"conn.create_security_group_rule(controller_group[\"id\"], \u0027TCP\u0027, \u00275672\u0027, \u00275672\u0027, \u00270.0.0.0/0\u0027, worker_group[\"id\"])"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"userdata \u003d \u0027\u0027\u0027#!/usr/bin/env bash"},{"line_number":65,"context_line":"curl -L -s http://git.openstack.org/cgit/stackforge/faafo/plain/contrib/install.sh | bash -s -- \\"},{"line_number":66,"context_line":"    -i messaging -i faafo -r api"},{"line_number":67,"context_line":"\u0027\u0027\u0027"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":10,"id":"3a29b11f_c81e715e","line":65,"updated":"2015-10-23 07:13:40.000000000","message":"\u0027stackforge\u0027 should be changed to \u0027openstack\u0027 due to https://bugs.launchpad.net/openstack-manuals/+bug/1508488","commit_id":"3075e2ce344fe51752a99d74ebe79ef2d8e52f0f"},{"author":{"_account_id":17098,"name":"Stanislaw Szydlo","email":"stanislaw.szydlo@ericpol.com","username":"stsz"},"change_message_id":"d6294604fa0c5b39f65b9002d7b70bd282d40440","unresolved":false,"context_lines":[{"line_number":99,"context_line":"end"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"userdata \u003d \"#!/usr/bin/env bash"},{"line_number":102,"context_line":"curl -L -s http://git.openstack.org/cgit/stackforge/faafo/plain/contrib/install.sh | bash -s -- \\"},{"line_number":103,"context_line":"    -i faafo -r worker -e \u0027http://#{ip_controller}\u0027 -m \u0027amqp://guest:guest@#{ip_controller}:5672/\u0027"},{"line_number":104,"context_line":"\""},{"line_number":105,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":10,"id":"3a29b11f_e821ed9e","line":102,"updated":"2015-10-23 07:13:40.000000000","message":"\u0027stackforge\u0027 should be changed to \u0027openstack\u0027 due to https://bugs.launchpad.net/openstack-manuals/+bug/1508488","commit_id":"3075e2ce344fe51752a99d74ebe79ef2d8e52f0f"}],"firstapp/samples/fog/scaling_out.rb":[{"author":{"_account_id":17098,"name":"Stanislaw Szydlo","email":"stanislaw.szydlo@ericpol.com","username":"stsz"},"change_message_id":"d6294604fa0c5b39f65b9002d7b70bd282d40440","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"# step-4"},{"line_number":53,"context_line":"userdata \u003d \u0027\u0027\u0027#!/usr/bin/env bash"},{"line_number":54,"context_line":"curl -L -s http://git.openstack.org/cgit/stackforge/faafo/plain/contrib/install.sh | bash -s -- \\"},{"line_number":55,"context_line":"    -i database -i messaging"},{"line_number":56,"context_line":"\u0027\u0027\u0027"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":10,"id":"3a29b11f_a838d5d3","line":54,"updated":"2015-10-23 07:13:40.000000000","message":"\u0027stackforge\u0027 should be changed to \u0027openstack\u0027 due to https://bugs.launchpad.net/openstack-manuals/+bug/1508488","commit_id":"3075e2ce344fe51752a99d74ebe79ef2d8e52f0f"},{"author":{"_account_id":17098,"name":"Stanislaw Szydlo","email":"stanislaw.szydlo@ericpol.com","username":"stsz"},"change_message_id":"d6294604fa0c5b39f65b9002d7b70bd282d40440","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"# step-5"},{"line_number":65,"context_line":"userdata \u003d \"#!/usr/bin/env bash"},{"line_number":66,"context_line":"curl -L -s http://git.openstack.org/cgit/stackforge/faafo/plain/contrib/install.sh | bash -s -- \\"},{"line_number":67,"context_line":"    -i faafo -r api -m \u0027amqp://guest:guest@#{services_ip}:5672/\u0027 \\"},{"line_number":68,"context_line":"    -d \u0027mysql://faafo:password@#{services_ip}:3306/faafo\u0027"},{"line_number":69,"context_line":"\""}],"source_content_type":"text/x-ruby","patch_set":10,"id":"3a29b11f_483341f6","line":66,"updated":"2015-10-23 07:13:40.000000000","message":"\u0027stackforge\u0027 should be changed to \u0027openstack\u0027 due to https://bugs.launchpad.net/openstack-manuals/+bug/1508488","commit_id":"3075e2ce344fe51752a99d74ebe79ef2d8e52f0f"},{"author":{"_account_id":17098,"name":"Stanislaw Szydlo","email":"stanislaw.szydlo@ericpol.com","username":"stsz"},"change_message_id":"d6294604fa0c5b39f65b9002d7b70bd282d40440","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"# step-6"},{"line_number":89,"context_line":"userdata \u003d \"#!/usr/bin/env bash"},{"line_number":90,"context_line":"curl -L -s http://git.openstack.org/cgit/stackforge/faafo/plain/contrib/install.sh | bash -s -- \\"},{"line_number":91,"context_line":"    -i faafo -r worker -e \u0027http://#{api_1_ip}\u0027 -m \u0027amqp://guest:guest@#{services_ip}:5672/\u0027"},{"line_number":92,"context_line":"\""},{"line_number":93,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":10,"id":"3a29b11f_0850e909","line":90,"updated":"2015-10-23 07:13:40.000000000","message":"\u0027stackforge\u0027 should be changed to \u0027openstack\u0027 due to https://bugs.launchpad.net/openstack-manuals/+bug/1508488","commit_id":"3075e2ce344fe51752a99d74ebe79ef2d8e52f0f"}],"firstapp/source/introduction.rst":[{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"ef31da5fbea2cfba64f10d3f46e62a5ce7c5aed4","unresolved":false,"context_lines":[{"line_number":286,"context_line":"adding the appropriate rules, such as HTTP (TCP port 80) and SSH (TCP"},{"line_number":287,"context_line":"port 22):"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":".. only:: shade"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"    .. literalinclude:: ../samples/shade/introduction.py"},{"line_number":292,"context_line":"        :language: python"}],"source_content_type":"text/x-rst","patch_set":11,"id":"da85f559_5875be61","side":"PARENT","line":289,"updated":"2015-11-11 06:58:15.000000000","message":"shade...","commit_id":"f1fcff47fea4436855969a688cd77e003bba96e3"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"ef31da5fbea2cfba64f10d3f46e62a5ce7c5aed4","unresolved":false,"context_lines":[{"line_number":243,"context_line":"should use when SSHing. If you still have problems logging in, ask"},{"line_number":244,"context_line":"your cloud provider to confirm the user name."},{"line_number":245,"context_line":""},{"line_number":246,"context_line":".. only:: fog"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    .. literalinclude:: ../samples/fog/introduction.rb"},{"line_number":249,"context_line":"        :language: ruby"}],"source_content_type":"text/x-rst","patch_set":11,"id":"da85f559_b85b8af5","line":246,"updated":"2015-11-11 06:58:15.000000000","message":"you are replacing the shade section with the fog section.\nAdd fog instead.","commit_id":"4d1c988b9f6c163ba9e7106ab5451662eb75e918"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"ef31da5fbea2cfba64f10d3f46e62a5ce7c5aed4","unresolved":false,"context_lines":[{"line_number":290,"context_line":"adding the appropriate rules, such as HTTP (TCP port 80) and SSH (TCP"},{"line_number":291,"context_line":"port 22):"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":".. only:: fog"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    .. literalinclude:: ../samples/fog/introduction.rb"},{"line_number":296,"context_line":"        :language: ruby"}],"source_content_type":"text/x-rst","patch_set":11,"id":"da85f559_7872027d","line":293,"updated":"2015-11-11 06:58:15.000000000","message":"replaced by fog. Add it instead","commit_id":"4d1c988b9f6c163ba9e7106ab5451662eb75e918"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"ef31da5fbea2cfba64f10d3f46e62a5ce7c5aed4","unresolved":false,"context_lines":[{"line_number":309,"context_line":""},{"line_number":310,"context_line":"You can list available security groups with:"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":".. only:: fog"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"    .. literalinclude:: ../samples/fog/introduction.rb"},{"line_number":315,"context_line":"        :language: ruby"}],"source_content_type":"text/x-rst","patch_set":11,"id":"da85f559_186bb686","line":312,"updated":"2015-11-11 06:58:15.000000000","message":"same problem","commit_id":"4d1c988b9f6c163ba9e7106ab5451662eb75e918"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"ef31da5fbea2cfba64f10d3f46e62a5ce7c5aed4","unresolved":false,"context_lines":[{"line_number":348,"context_line":""},{"line_number":349,"context_line":"To see which security groups apply to an instance, you can:"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":".. only:: fog"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"    .. literalinclude:: ../samples/fog/introduction.rb"},{"line_number":354,"context_line":"        :language: ruby"}],"source_content_type":"text/x-rst","patch_set":11,"id":"da85f559_3868fa86","line":351,"updated":"2015-11-11 06:58:15.000000000","message":"again","commit_id":"4d1c988b9f6c163ba9e7106ab5451662eb75e918"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"ef31da5fbea2cfba64f10d3f46e62a5ce7c5aed4","unresolved":false,"context_lines":[{"line_number":446,"context_line":"Now that you have an unused floating IP address allocated to your"},{"line_number":447,"context_line":"project, attach it to an instance."},{"line_number":448,"context_line":""},{"line_number":449,"context_line":".. only:: fog"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"    .. literalinclude:: ../samples/fog/introduction.rb"},{"line_number":452,"context_line":"        :language: ruby"}],"source_content_type":"text/x-rst","patch_set":11,"id":"da85f559_d8076ec8","line":449,"updated":"2015-11-11 06:58:15.000000000","message":"same problem","commit_id":"4d1c988b9f6c163ba9e7106ab5451662eb75e918"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"ef31da5fbea2cfba64f10d3f46e62a5ce7c5aed4","unresolved":false,"context_lines":[{"line_number":490,"context_line":""},{"line_number":491,"context_line":".. todo:: https://bugs.launchpad.net/openstack-manuals/+bug/1439918"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":".. only:: fog"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":""},{"line_number":496,"context_line":"    .. literalinclude:: ../samples/fog/introduction.rb"}],"source_content_type":"text/x-rst","patch_set":11,"id":"da85f559_f80cb2ee","line":493,"updated":"2015-11-11 06:58:15.000000000","message":"again","commit_id":"4d1c988b9f6c163ba9e7106ab5451662eb75e918"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"ef31da5fbea2cfba64f10d3f46e62a5ce7c5aed4","unresolved":false,"context_lines":[{"line_number":512,"context_line":""},{"line_number":513,"context_line":".. todo :: more text necessary here..."},{"line_number":514,"context_line":""},{"line_number":515,"context_line":".. only:: fog"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"    .. literalinclude:: ../samples/fog/introduction.rb"},{"line_number":518,"context_line":"        :language: ruby"}],"source_content_type":"text/x-rst","patch_set":11,"id":"da85f559_980d66ea","line":515,"updated":"2015-11-11 06:58:15.000000000","message":"dito","commit_id":"4d1c988b9f6c163ba9e7106ab5451662eb75e918"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"ef31da5fbea2cfba64f10d3f46e62a5ce7c5aed4","unresolved":false,"context_lines":[{"line_number":552,"context_line":"Use SSH with the \"demokey\" key pair to log in to the :code:`app-worker-1`"},{"line_number":553,"context_line":"worker instance. Get the IP address of the worker:"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":".. only:: fog"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"    .. literalinclude:: ../samples/fog/introduction.rb"},{"line_number":558,"context_line":"        :language: ruby"}],"source_content_type":"text/x-rst","patch_set":11,"id":"da85f559_b812aa07","line":555,"updated":"2015-11-11 06:58:15.000000000","message":"again","commit_id":"4d1c988b9f6c163ba9e7106ab5451662eb75e918"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"ef31da5fbea2cfba64f10d3f46e62a5ce7c5aed4","unresolved":false,"context_lines":[{"line_number":684,"context_line":"Before you run this script, confirm that you have set your authentication"},{"line_number":685,"context_line":"information, the flavor ID, and image ID."},{"line_number":686,"context_line":""},{"line_number":687,"context_line":".. only:: fog"},{"line_number":688,"context_line":""},{"line_number":689,"context_line":"    .. literalinclude:: ../samples/fog/introduction.rb"},{"line_number":690,"context_line":"       :language: ruby"}],"source_content_type":"text/x-rst","patch_set":11,"id":"da85f559_58fcdeb7","line":687,"updated":"2015-11-11 06:58:15.000000000","message":"likewise","commit_id":"4d1c988b9f6c163ba9e7106ab5451662eb75e918"},{"author":{"_account_id":10897,"name":"Joseph Robinson","email":"josephremail@gmail.com","username":"RobiJoe"},"change_message_id":"85567e68486428e229105da1f09acac1a6764e4c","unresolved":false,"context_lines":[{"line_number":181,"context_line":"          across each section. Adding it here forces the"},{"line_number":182,"context_line":"          introduction of block storage, object storage, orchestration"},{"line_number":183,"context_line":"          and neutron networking too early, which could seriously"},{"line_number":184,"context_line":"          confuse users who don\u0027t have these services in their"},{"line_number":185,"context_line":"          cloud. Therefore, this should not be done here."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"da85f559_45e2ef30","line":184,"updated":"2015-11-16 04:06:41.000000000","message":"Switch to \u0027do not\u0027 here.","commit_id":"6c0bb76edd31ee59964695092723d411516511a6"},{"author":{"_account_id":10897,"name":"Joseph Robinson","email":"josephremail@gmail.com","username":"RobiJoe"},"change_message_id":"85567e68486428e229105da1f09acac1a6764e4c","unresolved":false,"context_lines":[{"line_number":190,"context_line":""},{"line_number":191,"context_line":"So what was that request doing in the previous section? Let\u0027s look at it"},{"line_number":192,"context_line":"again. You don\u0027t need to run these commands again. We\u0027re just explaining the"},{"line_number":193,"context_line":"commands that you\u0027ve already run."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":".. only:: fog"},{"line_number":196,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"da85f559_25b9eb2e","line":193,"updated":"2015-11-16 04:06:41.000000000","message":"Switch out the contractions here for you \u0027do not\u0027, and \u0027you have\u0027","commit_id":"6c0bb76edd31ee59964695092723d411516511a6"},{"author":{"_account_id":10897,"name":"Joseph Robinson","email":"josephremail@gmail.com","username":"RobiJoe"},"change_message_id":"85567e68486428e229105da1f09acac1a6764e4c","unresolved":false,"context_lines":[{"line_number":579,"context_line":"        :start-after: step-12"},{"line_number":580,"context_line":"        :end-before: step-13"},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"Notice that you\u0027ve added this instance to the worker_group so it can access"},{"line_number":583,"context_line":"the controller."},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"As you can see from the parameters passed to the installation script, you are"}],"source_content_type":"text/x-rst","patch_set":13,"id":"da85f559_8591b79c","line":582,"updated":"2015-11-16 04:06:41.000000000","message":"Switch out the contraction her for \u0027you have\u0027 or just \u0027you added this instance\u0027","commit_id":"6c0bb76edd31ee59964695092723d411516511a6"},{"author":{"_account_id":10897,"name":"Joseph Robinson","email":"josephremail@gmail.com","username":"RobiJoe"},"change_message_id":"85567e68486428e229105da1f09acac1a6764e4c","unresolved":false,"context_lines":[{"line_number":635,"context_line":".. note:: Replace :code:`IP_WORKER_1` with the IP address of the"},{"line_number":636,"context_line":"          worker instance and USERNAME to the appropriate user name."},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"After you\u0027ve logged in, check whether the worker service process is running as"},{"line_number":639,"context_line":"expected. You can find the logs of the worker service in the"},{"line_number":640,"context_line":":code:`/var/log/supervisor/` directory."},{"line_number":641,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"da85f559_65ddb36f","line":638,"updated":"2015-11-16 04:06:41.000000000","message":"Switch out the contraction her for \u0027you have\u0027 or  \u0027After you log in,\u0027","commit_id":"6c0bb76edd31ee59964695092723d411516511a6"},{"author":{"_account_id":10897,"name":"Joseph Robinson","email":"josephremail@gmail.com","username":"RobiJoe"},"change_message_id":"85567e68486428e229105da1f09acac1a6764e4c","unresolved":false,"context_lines":[{"line_number":718,"context_line":"~~~~~~~~~~"},{"line_number":719,"context_line":""},{"line_number":720,"context_line":"You now have a basic understanding of the architecture of cloud-based"},{"line_number":721,"context_line":"applications. You\u0027ve started new instances, automatically configured them at"},{"line_number":722,"context_line":"boot, and modularized an application so that you can use multiple instances to"},{"line_number":723,"context_line":"run it. Continue to use these basic steps to request and use compute resources"},{"line_number":724,"context_line":"to run your application on an OpenStack cloud."}],"source_content_type":"text/x-rst","patch_set":13,"id":"da85f559_85d8d780","line":721,"updated":"2015-11-16 04:06:41.000000000","message":"Switch out the contraction her for \u0027you have\u0027, or \u0027You started new instances,\"","commit_id":"6c0bb76edd31ee59964695092723d411516511a6"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"1f81ab72cb570ff53646b89758be0d41ce981193","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        :start-after: step-1"},{"line_number":210,"context_line":"        :end-before: step-2"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":".. only:: openstacksdk"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    .. literalinclude:: ../samples/openstacksdk/introduction.py"},{"line_number":215,"context_line":"        :start-after: step-1"}],"source_content_type":"text/x-rst","patch_set":16,"id":"ba8a016a_8f9a7513","side":"PARENT","line":212,"updated":"2015-11-16 19:41:47.000000000","message":"openstacksdk is missing in the new code","commit_id":"0ae835e1a70fd1ab8ddfbd7dbe9e6c32009befa6"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"1f81ab72cb570ff53646b89758be0d41ce981193","unresolved":false,"context_lines":[{"line_number":66,"context_line":"In cloud programming, the \"cattle vs pets\" analogy is well known. It goes like"},{"line_number":67,"context_line":"this:"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"When you\u0027re dealing with pets, you name them and care for them. If they get"},{"line_number":70,"context_line":"sick, you nurse them back to health, which can be difficult and very time"},{"line_number":71,"context_line":"consuming. When you\u0027re dealing with cattle, you attach a numbered tag to their"},{"line_number":72,"context_line":"ear and if they get sick, you put them down and move on."}],"source_content_type":"text/x-rst","patch_set":16,"id":"ba8a016a_6fee318d","line":69,"updated":"2015-11-16 19:41:47.000000000","message":"This is wrong, we now have all the contractions like \"you\u0027re\" in again...","commit_id":"16c958542f8962e4dfaa242d26eb4a86ba99720f"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"a9c60168d48911409ce209b75b519429f08ba42c","unresolved":false,"context_lines":[{"line_number":341,"context_line":".. only:: openstacksdk"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"    .. literalinclude:: ../samples/openstacksdk/introduction.py"},{"line_number":344,"context_line":"        :start-after: step-4"},{"line_number":345,"context_line":"        :end-before: step-5"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"Once you have created a rule or group, you can also delete it:"}],"source_content_type":"text/x-rst","patch_set":18,"id":"ba8a016a_85723fe4","side":"PARENT","line":344,"updated":"2015-11-17 06:33:31.000000000","message":"The lines above are missing","commit_id":"0ae835e1a70fd1ab8ddfbd7dbe9e6c32009befa6"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"a9c60168d48911409ce209b75b519429f08ba42c","unresolved":false,"context_lines":[{"line_number":536,"context_line":"        :start-after: step-11"},{"line_number":537,"context_line":"        :end-before: step-12"},{"line_number":538,"context_line":""},{"line_number":539,"context_line":".. only:: openstacksdk"},{"line_number":540,"context_line":""},{"line_number":541,"context_line":"    .. literalinclude:: ../samples/openstacksdk/introduction.py"},{"line_number":542,"context_line":"        :start-after: step-11"}],"source_content_type":"text/x-rst","patch_set":18,"id":"ba8a016a_8540ff57","side":"PARENT","line":539,"updated":"2015-11-17 06:33:31.000000000","message":"openstacksdk disappeared","commit_id":"0ae835e1a70fd1ab8ddfbd7dbe9e6c32009befa6"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"a9c60168d48911409ce209b75b519429f08ba42c","unresolved":false,"context_lines":[{"line_number":564,"context_line":"        :end-before: step-13"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":".. only:: openstacksdk"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"    .. literalinclude:: ../samples/openstacksdk/introduction.py"},{"line_number":569,"context_line":"        :start-after: step-12"},{"line_number":570,"context_line":"        :end-before: step-13"}],"source_content_type":"text/x-rst","patch_set":18,"id":"ba8a016a_4523f7bd","side":"PARENT","line":567,"updated":"2015-11-17 06:33:31.000000000","message":"missing","commit_id":"0ae835e1a70fd1ab8ddfbd7dbe9e6c32009befa6"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"a9c60168d48911409ce209b75b519429f08ba42c","unresolved":false,"context_lines":[{"line_number":471,"context_line":""},{"line_number":472,"context_line":".. only:: libcloud"},{"line_number":473,"context_line":""},{"line_number":474,"context_line":"    .. literalinclude:: ../samples/libcloud/introduction.py"},{"line_number":475,"context_line":"        :start-after: step-8"},{"line_number":476,"context_line":"        :end-before: step-9"},{"line_number":477,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"ba8a016a_653b9bec","line":474,"updated":"2015-11-17 06:33:31.000000000","message":"These steps are new and look wrong, please double check","commit_id":"0873d61c87b3f323c34db7d610895e889a8535bf"}]}
