)]}'
{"firstapp/README.rst":[{"author":{"_account_id":2448,"name":"Diane Fleming","email":"dfleming@austin.rr.com","username":"diane-fleming"},"change_message_id":"fabfccb4daf1cc68a6b574afc6833aed5f3e6366","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Prerequisites"},{"line_number":12,"context_line":"-------------"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"You need to have installed graphviz package in order to build the"},{"line_number":15,"context_line":"documentation."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"/source"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_483f7eb4","line":14,"updated":"2015-07-20 20:27:02.000000000","message":"To build the documentation, you must install the xx package.","commit_id":"8438a1ae642109c915f4e68a5cb006632af436ed"}],"firstapp/samples/shade/clouds.yml":[{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"e15fc1c4f50ebe06eaa336ac6123782b977722ec","unresolved":false,"context_lines":[{"line_number":4,"context_line":"        auth:"},{"line_number":5,"context_line":"            username: $YOUR_USERNAME"},{"line_number":6,"context_line":"            password: $YOUR_PASSWORD"},{"line_number":7,"context_line":"            auth_url: https://keystone.dream.io/v2.0/"},{"line_number":8,"context_line":"            project_name: $YOUR_PROJECT"},{"line_number":9,"context_line":"        region_name: RegionOne"},{"line_number":10,"context_line":"    hp:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1a4dcd0f_19b48cf0","line":7,"updated":"2015-08-03 22:57:30.000000000","message":"Not needed","commit_id":"f7c806d041d8fe82e52ceba43fb0cd032c5d9e0a"},{"author":{"_account_id":287,"name":"Stefano Maffulli \u0027reed\u0027","email":"stefano@openstack.org","username":"smaffulli"},"change_message_id":"d9d2a37a82af49eae0a1e273d8338ab7528653c3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"        auth:"},{"line_number":5,"context_line":"            username: $YOUR_USERNAME"},{"line_number":6,"context_line":"            password: $YOUR_PASSWORD"},{"line_number":7,"context_line":"            auth_url: https://keystone.dream.io/v2.0/"},{"line_number":8,"context_line":"            project_name: $YOUR_PROJECT"},{"line_number":9,"context_line":"        region_name: RegionOne"},{"line_number":10,"context_line":"    hp:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1a4dcd0f_4fd32639","line":7,"in_reply_to":"1a4dcd0f_19b48cf0","updated":"2015-08-04 00:10:11.000000000","message":"Done","commit_id":"f7c806d041d8fe82e52ceba43fb0cd032c5d9e0a"},{"author":{"_account_id":287,"name":"Stefano Maffulli \u0027reed\u0027","email":"stefano@openstack.org","username":"smaffulli"},"change_message_id":"d9d2a37a82af49eae0a1e273d8338ab7528653c3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"        auth:"},{"line_number":5,"context_line":"            username: $YOUR_USERNAME"},{"line_number":6,"context_line":"            password: $YOUR_PASSWORD"},{"line_number":7,"context_line":"            auth_url: https://keystone.dream.io/v2.0/"},{"line_number":8,"context_line":"            project_name: $YOUR_PROJECT"},{"line_number":9,"context_line":"        region_name: RegionOne"},{"line_number":10,"context_line":"    hp:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1a4dcd0f_efe4720e","line":7,"in_reply_to":"1a4dcd0f_19b48cf0","updated":"2015-08-04 00:10:11.000000000","message":"Done","commit_id":"f7c806d041d8fe82e52ceba43fb0cd032c5d9e0a"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"e15fc1c4f50ebe06eaa336ac6123782b977722ec","unresolved":false,"context_lines":[{"line_number":12,"context_line":"        auth:"},{"line_number":13,"context_line":"            username: $THE_OTHER_USERNAME"},{"line_number":14,"context_line":"            password: $THE_OTHER_PASSWORD"},{"line_number":15,"context_line":"            auth_url: https://region-b.geo-1.identity.hpcloudsvc.com:35357/v2.0/"},{"line_number":16,"context_line":"            project_name: $THE_OTHER_PROJECT"},{"line_number":17,"context_line":"        region_name: region-b.geo-1"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1a4dcd0f_39b948ea","line":15,"updated":"2015-08-03 22:57:30.000000000","message":"Not needed","commit_id":"f7c806d041d8fe82e52ceba43fb0cd032c5d9e0a"},{"author":{"_account_id":287,"name":"Stefano Maffulli \u0027reed\u0027","email":"stefano@openstack.org","username":"smaffulli"},"change_message_id":"d9d2a37a82af49eae0a1e273d8338ab7528653c3","unresolved":false,"context_lines":[{"line_number":12,"context_line":"        auth:"},{"line_number":13,"context_line":"            username: $THE_OTHER_USERNAME"},{"line_number":14,"context_line":"            password: $THE_OTHER_PASSWORD"},{"line_number":15,"context_line":"            auth_url: https://region-b.geo-1.identity.hpcloudsvc.com:35357/v2.0/"},{"line_number":16,"context_line":"            project_name: $THE_OTHER_PROJECT"},{"line_number":17,"context_line":"        region_name: region-b.geo-1"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1a4dcd0f_6fd86254","line":15,"in_reply_to":"1a4dcd0f_39b948ea","updated":"2015-08-04 00:10:11.000000000","message":"Done","commit_id":"f7c806d041d8fe82e52ceba43fb0cd032c5d9e0a"},{"author":{"_account_id":612,"name":"Tom Fifield","email":"tom@openstack.org","username":"fifieldt"},"change_message_id":"b8b76f3a3b24bf57be17c9a66218583e032708b3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"clouds:"},{"line_number":2,"context_line":"    myfavoriteopenstack:"},{"line_number":3,"context_line":"        auth:"},{"line_number":4,"context_line":"            provider: $SUPPORTED_PROVIDER"},{"line_number":5,"context_line":"            # if you don\u0027t use a supported provider, like a private"},{"line_number":6,"context_line":"            # cloud, you can specify the auth_url as in the"},{"line_number":7,"context_line":"            # openstackrc.sh file"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"1a4dcd0f_ab333a13","line":4,"updated":"2015-08-06 02:24:35.000000000","message":"The explanatory comment below should be dealt with in the text, rather than the code snippet:","commit_id":"e101514b832881f4d831622bd5656cb977aa2a66"}],"firstapp/samples/shade/getting_started.py":[{"author":{"_account_id":287,"name":"Stefano Maffulli \u0027reed\u0027","email":"stefano@openstack.org","username":"smaffulli"},"change_message_id":"7f00072697d2f6d19e65d735d446861de81aa678","unresolved":false,"context_lines":[{"line_number":73,"context_line":"ex_userdata \u003d \u0027\u0027\u0027#!/usr/bin/env bash\\"},{"line_number":74,"context_line":"    curl -L -s https://git.openstack.org/cgit/stackforge/faafo/plain/contrib/install.sh | bash -s -- \\"},{"line_number":75,"context_line":"    -i faafo -i messaging -r api -r worker -r demo"},{"line_number":76,"context_line":"\u0027\u0027\u0027"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"#step-12"},{"line_number":79,"context_line":"instance_name \u003d \u0027all-in-one\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_f9a8a222","line":76,"updated":"2015-07-31 00:10:10.000000000","message":"I tried running this script \u0027manually\u0027 in a new instance but it doesn\u0027t seem to produce any image. You can see it on http://67.205.56.72/ \nNeed to investigate more.","commit_id":"0de5ccda1e781271fc8302c2a483e2a52400527f"},{"author":{"_account_id":287,"name":"Stefano Maffulli \u0027reed\u0027","email":"stefano@openstack.org","username":"smaffulli"},"change_message_id":"7f00072697d2f6d19e65d735d446861de81aa678","unresolved":false,"context_lines":[{"line_number":78,"context_line":"#step-12"},{"line_number":79,"context_line":"instance_name \u003d \u0027all-in-one\u0027"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"testing_instance \u003d conn.create_server(wait\u003dTrue, auto_ip\u003dTrue,"},{"line_number":82,"context_line":"    name\u003dinstance_name,"},{"line_number":83,"context_line":"    image\u003dimage_id,"},{"line_number":84,"context_line":"    flavor\u003dflavor_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_198f8ecd","line":81,"updated":"2015-07-31 00:10:10.000000000","message":"When using auto_ip\u003dTrue, shade seems to automatically assigns a floating IPv4, which is great. Steps 13 and 14 need to be rewritten so their objective is to find out which IP gets assigned, instead of assigning a new one.","commit_id":"0de5ccda1e781271fc8302c2a483e2a52400527f"},{"author":{"_account_id":2448,"name":"Diane Fleming","email":"dfleming@austin.rr.com","username":"diane-fleming"},"change_message_id":"b8f64406eb6501e14fe2c0566bae977dd0a63940","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"1a4dcd0f_d9f944ca","updated":"2015-08-03 22:47:02.000000000","message":"Security group already exists.","commit_id":"f7c806d041d8fe82e52ceba43fb0cd032c5d9e0a"},{"author":{"_account_id":287,"name":"Stefano Maffulli \u0027reed\u0027","email":"stefano@openstack.org","username":"smaffulli"},"change_message_id":"d9d2a37a82af49eae0a1e273d8338ab7528653c3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"1a4dcd0f_afc50a5c","in_reply_to":"1a4dcd0f_d9f944ca","updated":"2015-08-04 00:10:11.000000000","message":"I\u0027m not sure what you mean with this. Can you clarify please?","commit_id":"f7c806d041d8fe82e52ceba43fb0cd032c5d9e0a"},{"author":{"_account_id":8005,"name":"Ryan Petrello","email":"ryan@ryanpetrello.com","username":"ryanpetrello"},"change_message_id":"05aadd1e8cf5672d4434323601b5f39993c59a70","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#step-1"},{"line_number":2,"context_line":"from shade import *"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"simple_logging(debug\u003dTrue)"},{"line_number":5,"context_line":"conn \u003d openstack_cloud(cloud\u003d\u0027dream\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_1ab77e3a","line":2,"updated":"2015-08-04 12:09:42.000000000","message":"`import *` is frowned upon, import only what you need :)","commit_id":"cb45acf3061854c0730c214c1a438aba2a081cd1"},{"author":{"_account_id":8005,"name":"Ryan Petrello","email":"ryan@ryanpetrello.com","username":"ryanpetrello"},"change_message_id":"05aadd1e8cf5672d4434323601b5f39993c59a70","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"#step-4"},{"line_number":18,"context_line":"# pick Ubuntu 14.04 image"},{"line_number":19,"context_line":"image_id \u003d \u0027c55094e9-699c-4da9-95b4-2e2e75f4c66e\u0027"},{"line_number":20,"context_line":"image \u003d conn.get_image(image_id)"},{"line_number":21,"context_line":"print(image)"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_9af86ee7","line":19,"updated":"2015-08-04 12:09:42.000000000","message":"Does shade have some mechanism for figuring out the UUID by name (e.g., give me \"ubuntu\")?  As we add and change images, there\u0027s no guarantee that this will continue to work.","commit_id":"cb45acf3061854c0730c214c1a438aba2a081cd1"},{"author":{"_account_id":612,"name":"Tom Fifield","email":"tom@openstack.org","username":"fifieldt"},"change_message_id":"b996baa63a450029dbb13fe63b746817ab4c24fd","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"#step-4"},{"line_number":18,"context_line":"# pick Ubuntu 14.04 image"},{"line_number":19,"context_line":"image_id \u003d \u0027c55094e9-699c-4da9-95b4-2e2e75f4c66e\u0027"},{"line_number":20,"context_line":"image \u003d conn.get_image(image_id)"},{"line_number":21,"context_line":"print(image)"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_1af0de8f","line":19,"in_reply_to":"1a4dcd0f_9af86ee7","updated":"2015-08-04 12:13:20.000000000","message":"NB:\nEverywhere this (file and the step-4 snippet) is included is a note to update the image ID, based on what you get from the previous steps.\n\nThe point of this part of the tute is to be explicit as possible, rather than necessarily convenient :)","commit_id":"cb45acf3061854c0730c214c1a438aba2a081cd1"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"984d739f36c174bcfb77e7fec6fd8d05a43f6bf3","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"#step-4"},{"line_number":18,"context_line":"# pick Ubuntu 14.04 image"},{"line_number":19,"context_line":"image_id \u003d \u0027c55094e9-699c-4da9-95b4-2e2e75f4c66e\u0027"},{"line_number":20,"context_line":"image \u003d conn.get_image(image_id)"},{"line_number":21,"context_line":"print(image)"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_faf2d299","line":19,"in_reply_to":"1a4dcd0f_9af86ee7","updated":"2015-08-04 13:22:23.000000000","message":"Yes, shade supports either name or ID on most API calls.","commit_id":"cb45acf3061854c0730c214c1a438aba2a081cd1"},{"author":{"_account_id":8005,"name":"Ryan Petrello","email":"ryan@ryanpetrello.com","username":"ryanpetrello"},"change_message_id":"05aadd1e8cf5672d4434323601b5f39993c59a70","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    print(instance)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"#step-8"},{"line_number":43,"context_line":"conn.delete_server(name\u003d\u0027testing\u0027)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"#step-9"},{"line_number":46,"context_line":"print(\u0027Checking for existing SSH key pair...\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_da3116a4","line":43,"updated":"2015-08-04 12:09:42.000000000","message":"reuse the variable name above (line 30)","commit_id":"cb45acf3061854c0730c214c1a438aba2a081cd1"},{"author":{"_account_id":612,"name":"Tom Fifield","email":"tom@openstack.org","username":"fifieldt"},"change_message_id":"b996baa63a450029dbb13fe63b746817ab4c24fd","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    print(instance)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"#step-8"},{"line_number":43,"context_line":"conn.delete_server(name\u003d\u0027testing\u0027)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"#step-9"},{"line_number":46,"context_line":"print(\u0027Checking for existing SSH key pair...\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_da17d6a1","line":43,"in_reply_to":"1a4dcd0f_da3116a4","updated":"2015-08-04 12:13:20.000000000","message":"When addressing this comment, consider that the point of this part of the tute is to be explicit as possible, rather than necessarily convenient :)","commit_id":"cb45acf3061854c0730c214c1a438aba2a081cd1"},{"author":{"_account_id":612,"name":"Tom Fifield","email":"tom@openstack.org","username":"fifieldt"},"change_message_id":"c7e5d466d55c661df38059941c9af3957fe2bff1","unresolved":false,"context_lines":[{"line_number":2,"context_line":"from shade import *"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"simple_logging(debug\u003dTrue)"},{"line_number":5,"context_line":"conn \u003d openstack_cloud(cloud\u003d\u0027dream\u0027)"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"#step-2"},{"line_number":8,"context_line":"images \u003d conn.list_images()"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a4dcd0f_9142680f","line":5,"updated":"2015-08-05 04:31:19.000000000","message":"Perhaps a more generic name would be better?","commit_id":"c584e073fa9fb27653c48c44f98a7a1a5e05cbd4"},{"author":{"_account_id":612,"name":"Tom Fifield","email":"tom@openstack.org","username":"fifieldt"},"change_message_id":"c7e5d466d55c661df38059941c9af3957fe2bff1","unresolved":false,"context_lines":[{"line_number":15,"context_line":"    print(flavor)"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"#step-4"},{"line_number":18,"context_line":"# pick Ubuntu 14.04 image"},{"line_number":19,"context_line":"image_id \u003d \u0027c55094e9-699c-4da9-95b4-2e2e75f4c66e\u0027"},{"line_number":20,"context_line":"image \u003d conn.get_image(image_id)"},{"line_number":21,"context_line":"print(image)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a4dcd0f_d138f0a2","line":18,"updated":"2015-08-05 04:31:19.000000000","message":"While it was probably helpful during debugging, I don\u0027t think this comment really adds a lot, given its inclusion in the surrounding text. It also creates a double-maintenance problem if we update the text.","commit_id":"c584e073fa9fb27653c48c44f98a7a1a5e05cbd4"},{"author":{"_account_id":612,"name":"Tom Fifield","email":"tom@openstack.org","username":"fifieldt"},"change_message_id":"c7e5d466d55c661df38059941c9af3957fe2bff1","unresolved":false,"context_lines":[{"line_number":21,"context_line":"print(image)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"#step-5"},{"line_number":24,"context_line":"# pick flavor subsonic on DreamCompute"},{"line_number":25,"context_line":"flavor_id \u003d \u0027100\u0027"},{"line_number":26,"context_line":"flavor \u003d conn.get_flavor(flavor_id)"},{"line_number":27,"context_line":"print(flavor)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a4dcd0f_31e4b439","line":24,"updated":"2015-08-05 04:31:19.000000000","message":"While it was probably helpful during debugging, I don\u0027t think this comment really adds a lot, given its inclusion in the surrounding text.","commit_id":"c584e073fa9fb27653c48c44f98a7a1a5e05cbd4"},{"author":{"_account_id":612,"name":"Tom Fifield","email":"tom@openstack.org","username":"fifieldt"},"change_message_id":"c7e5d466d55c661df38059941c9af3957fe2bff1","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    userdata\u003dex_userdata)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"#step-13"},{"line_number":91,"context_line":"# find a free floating IP address"},{"line_number":92,"context_line":"f_ip \u003d conn.available_floating_ip()"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"#step-14"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a4dcd0f_7148fc2d","line":91,"updated":"2015-08-05 04:31:19.000000000","message":"Similar to above, I think this comment should be removed.","commit_id":"c584e073fa9fb27653c48c44f98a7a1a5e05cbd4"},{"author":{"_account_id":612,"name":"Tom Fifield","email":"tom@openstack.org","username":"fifieldt"},"change_message_id":"c7e5d466d55c661df38059941c9af3957fe2bff1","unresolved":false,"context_lines":[{"line_number":91,"context_line":"# find a free floating IP address"},{"line_number":92,"context_line":"f_ip \u003d conn.available_floating_ip()"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"#step-14"},{"line_number":95,"context_line":"# assign the floating IP to the newly created server"},{"line_number":96,"context_line":"conn.attach_ip_to_server(testing_instance[\u0027id\u0027], f_ip[\u0027id\u0027])"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1a4dcd0f_115738cf","line":94,"updated":"2015-08-05 04:31:19.000000000","message":"Similar to above, I think this comment should be removed.","commit_id":"c584e073fa9fb27653c48c44f98a7a1a5e05cbd4"}],"firstapp/source/getting_started.rst":[{"author":{"_account_id":2448,"name":"Diane Fleming","email":"dfleming@austin.rr.com","username":"diane-fleming"},"change_message_id":"fabfccb4daf1cc68a6b574afc6833aed5f3e6366","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"     `a recent version of shade library installed \u003chttps://pypi.python.org/pypi/shade/0.11.0\u003e`_."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"     .. note:: Development of shade is quite fast so make sure to"},{"line_number":157,"context_line":"               install the latest version before proceeding."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"You need the following information that you can obtain from your cloud"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_48ad3ee8","line":156,"updated":"2015-07-20 20:27:02.000000000","message":"The shade library changes frequently, so install the latest version before proceeding.","commit_id":"8438a1ae642109c915f4e68a5cb006632af436ed"},{"author":{"_account_id":2448,"name":"Diane Fleming","email":"dfleming@austin.rr.com","username":"diane-fleming"},"change_message_id":"fabfccb4daf1cc68a6b574afc6833aed5f3e6366","unresolved":false,"context_lines":[{"line_number":261,"context_line":"    To use shade, you\u0027ll have to first configure your cloud credentials in"},{"line_number":262,"context_line":"    `~/.config/openstack/clouds.yml` file.  That file can contain"},{"line_number":263,"context_line":"    details for all the clouds you use. In the example below you can"},{"line_number":264,"context_line":"    see two clouds configured, one on DreamHost and one on HP. Each"},{"line_number":265,"context_line":"    cloud has a unique name that you\u0027ll use to instantiate the"},{"line_number":266,"context_line":"    conn object."},{"line_number":267,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_c8d5ce43","line":264,"updated":"2015-07-20 20:27:02.000000000","message":"To use shade, you must configure your cloud credentials in the xx file. That file can configure credentials for multiple clouds. The following example configures a DreamHost cloud and an HP cloud. You use the unique cloud name to instantiate ...","commit_id":"8438a1ae642109c915f4e68a5cb006632af436ed"},{"author":{"_account_id":2448,"name":"Diane Fleming","email":"dfleming@austin.rr.com","username":"diane-fleming"},"change_message_id":"fabfccb4daf1cc68a6b574afc6833aed5f3e6366","unresolved":false,"context_lines":[{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    .. literalinclude:: ../samples/shade/clouds.yml"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"    Once you have your clouds.yml config file ready, you\u0027ll be able to"},{"line_number":271,"context_line":"    interact with all the clouds you\u0027ve specified in there."},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    .. literalinclude::  ../samples/shade/introduction.py"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_48c21e87","line":270,"updated":"2015-07-20 20:27:02.000000000","message":"After you update the clouds.yml configuration file, you can interact with all defined clouds.","commit_id":"8438a1ae642109c915f4e68a5cb006632af436ed"},{"author":{"_account_id":2448,"name":"Diane Fleming","email":"dfleming@austin.rr.com","username":"diane-fleming"},"change_message_id":"b8f64406eb6501e14fe2c0566bae977dd0a63940","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"1a4dcd0f_f9cbe070","updated":"2015-08-03 22:47:02.000000000","message":"Install the latest version of shade before proceeding.","commit_id":"f7c806d041d8fe82e52ceba43fb0cd032c5d9e0a"},{"author":{"_account_id":287,"name":"Stefano Maffulli \u0027reed\u0027","email":"stefano@openstack.org","username":"smaffulli"},"change_message_id":"d9d2a37a82af49eae0a1e273d8338ab7528653c3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"1a4dcd0f_4f8fa623","in_reply_to":"1a4dcd0f_f9cbe070","updated":"2015-08-04 00:10:11.000000000","message":"Do you mean on line 157?","commit_id":"f7c806d041d8fe82e52ceba43fb0cd032c5d9e0a"},{"author":{"_account_id":612,"name":"Tom Fifield","email":"tom@openstack.org","username":"fifieldt"},"change_message_id":"d86999cab833ed091ae5a2ead23bbda2850041a0","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"This tutorial shows two applications. The first application is a simple"},{"line_number":29,"context_line":"fractal generator that uses mathematical equations to generate beautiful"},{"line_number":30,"context_line":"`fractal images \u003chttp://en.wikipedia.org/wiki/Fractal\u003e`_ . We show you this"},{"line_number":31,"context_line":"application in its entirety so that you can compare it to a second, more"},{"line_number":32,"context_line":"robust, application."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a4dcd0f_eb309da0","line":30,"updated":"2015-08-05 03:06:03.000000000","message":"the switch from \u0027the\u0027 to \u0027a\u0027 here is incorrect.","commit_id":"c584e073fa9fb27653c48c44f98a7a1a5e05cbd4"},{"author":{"_account_id":612,"name":"Tom Fifield","email":"tom@openstack.org","username":"fifieldt"},"change_message_id":"6521cd25376a2840cb2a34f9e5f2c003db9fd553","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"This tutorial shows two applications. The first application is a simple"},{"line_number":29,"context_line":"fractal generator that uses mathematical equations to generate beautiful"},{"line_number":30,"context_line":"`fractal images \u003chttp://en.wikipedia.org/wiki/Fractal\u003e`_ . We show you this"},{"line_number":31,"context_line":"application in its entirety so that you can compare it to a second, more"},{"line_number":32,"context_line":"robust, application."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a4dcd0f_86e9d082","line":30,"in_reply_to":"1a4dcd0f_eb309da0","updated":"2015-08-05 04:19:18.000000000","message":"sorry - I\u0027m wrong, please ignore this one :)","commit_id":"c584e073fa9fb27653c48c44f98a7a1a5e05cbd4"},{"author":{"_account_id":612,"name":"Tom Fifield","email":"tom@openstack.org","username":"fifieldt"},"change_message_id":"6521cd25376a2840cb2a34f9e5f2c003db9fd553","unresolved":false,"context_lines":[{"line_number":257,"context_line":""},{"line_number":258,"context_line":".. only:: shade"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    To use shade, you must configure your cloud credentials in"},{"line_number":261,"context_line":"    `~/.config/openstack/clouds.yml` file. That file can contain details for"},{"line_number":262,"context_line":"    all the clouds that you use. The following example configures one cloud on"},{"line_number":263,"context_line":"    DreamHost and one on HP. Each cloud has a unique name that you\u0027ll use to"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a4dcd0f_262c7caa","line":260,"updated":"2015-08-05 04:19:18.000000000","message":"Current text isn\u0027t usable for me-as-a-naive-reader, since I use a vanilla OpenStack cloud :) As a user in this situation, I need to know where to put in my auth URL, as described in the previous section.","commit_id":"c584e073fa9fb27653c48c44f98a7a1a5e05cbd4"},{"author":{"_account_id":287,"name":"Stefano Maffulli \u0027reed\u0027","email":"stefano@openstack.org","username":"smaffulli"},"change_message_id":"886d976016bb3f4b363f89b8e263124d27828674","unresolved":false,"context_lines":[{"line_number":257,"context_line":""},{"line_number":258,"context_line":".. only:: shade"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    To use shade, you must configure your cloud credentials in"},{"line_number":261,"context_line":"    `~/.config/openstack/clouds.yml` file. That file can contain details for"},{"line_number":262,"context_line":"    all the clouds that you use. The following example configures one cloud on"},{"line_number":263,"context_line":"    DreamHost and one on HP. Each cloud has a unique name that you\u0027ll use to"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a4dcd0f_3d253dc0","line":260,"in_reply_to":"1a4dcd0f_262c7caa","updated":"2015-08-05 18:27:12.000000000","message":"I don\u0027t think there is such thing as vanilla openstack cloud :) I\u0027ve reworked the text to be more clear why with Shade you don\u0027t necessarily need to specify one, when using a supported public cloud.","commit_id":"c584e073fa9fb27653c48c44f98a7a1a5e05cbd4"},{"author":{"_account_id":612,"name":"Tom Fifield","email":"tom@openstack.org","username":"fifieldt"},"change_message_id":"6521cd25376a2840cb2a34f9e5f2c003db9fd553","unresolved":false,"context_lines":[{"line_number":258,"context_line":".. only:: shade"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    To use shade, you must configure your cloud credentials in"},{"line_number":261,"context_line":"    `~/.config/openstack/clouds.yml` file. That file can contain details for"},{"line_number":262,"context_line":"    all the clouds that you use. The following example configures one cloud on"},{"line_number":263,"context_line":"    DreamHost and one on HP. Each cloud has a unique name that you\u0027ll use to"},{"line_number":264,"context_line":"    instantiate the conn object."}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a4dcd0f_c696f8ef","line":261,"updated":"2015-08-05 04:19:18.000000000","message":"in ... file\n\nshould probably be\n\nin the ... file","commit_id":"c584e073fa9fb27653c48c44f98a7a1a5e05cbd4"},{"author":{"_account_id":287,"name":"Stefano Maffulli \u0027reed\u0027","email":"stefano@openstack.org","username":"smaffulli"},"change_message_id":"886d976016bb3f4b363f89b8e263124d27828674","unresolved":false,"context_lines":[{"line_number":258,"context_line":".. only:: shade"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    To use shade, you must configure your cloud credentials in"},{"line_number":261,"context_line":"    `~/.config/openstack/clouds.yml` file. That file can contain details for"},{"line_number":262,"context_line":"    all the clouds that you use. The following example configures one cloud on"},{"line_number":263,"context_line":"    DreamHost and one on HP. Each cloud has a unique name that you\u0027ll use to"},{"line_number":264,"context_line":"    instantiate the conn object."}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a4dcd0f_dd2d39a9","line":261,"in_reply_to":"1a4dcd0f_c696f8ef","updated":"2015-08-05 18:27:12.000000000","message":"Done","commit_id":"c584e073fa9fb27653c48c44f98a7a1a5e05cbd4"},{"author":{"_account_id":612,"name":"Tom Fifield","email":"tom@openstack.org","username":"fifieldt"},"change_message_id":"6521cd25376a2840cb2a34f9e5f2c003db9fd553","unresolved":false,"context_lines":[{"line_number":263,"context_line":"    DreamHost and one on HP. Each cloud has a unique name that you\u0027ll use to"},{"line_number":264,"context_line":"    instantiate the conn object."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"    .. literalinclude:: ../samples/shade/clouds.yml"},{"line_number":267,"context_line":"        :language: yaml"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    After you create your clouds.yml config file, you can interact with all"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a4dcd0f_4660a801","line":266,"updated":"2015-08-05 04:19:18.000000000","message":"more explanation of the \"profile\" line in the YML file is necessary here. To keep it simple, I would suggest genericising the example, rather than listing multiple clouds","commit_id":"c584e073fa9fb27653c48c44f98a7a1a5e05cbd4"},{"author":{"_account_id":287,"name":"Stefano Maffulli \u0027reed\u0027","email":"stefano@openstack.org","username":"smaffulli"},"change_message_id":"886d976016bb3f4b363f89b8e263124d27828674","unresolved":false,"context_lines":[{"line_number":263,"context_line":"    DreamHost and one on HP. Each cloud has a unique name that you\u0027ll use to"},{"line_number":264,"context_line":"    instantiate the conn object."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"    .. literalinclude:: ../samples/shade/clouds.yml"},{"line_number":267,"context_line":"        :language: yaml"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    After you create your clouds.yml config file, you can interact with all"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a4dcd0f_60555ef8","line":266,"in_reply_to":"1a4dcd0f_4660a801","updated":"2015-08-05 18:27:12.000000000","message":"Done","commit_id":"c584e073fa9fb27653c48c44f98a7a1a5e05cbd4"},{"author":{"_account_id":612,"name":"Tom Fifield","email":"tom@openstack.org","username":"fifieldt"},"change_message_id":"6521cd25376a2840cb2a34f9e5f2c003db9fd553","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        :language: yaml"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    After you create your clouds.yml config file, you can interact with all"},{"line_number":270,"context_line":"    the clouds that you have configured."},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    .. literalinclude::  ../samples/shade/getting_started.py"},{"line_number":273,"context_line":"        :start-after: step-1"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a4dcd0f_e63534f7","line":270,"updated":"2015-08-05 04:19:18.000000000","message":"We should just configure one cloud. Using multiple clouds is a topic too advanced for this part of the guide.","commit_id":"c584e073fa9fb27653c48c44f98a7a1a5e05cbd4"},{"author":{"_account_id":287,"name":"Stefano Maffulli \u0027reed\u0027","email":"stefano@openstack.org","username":"smaffulli"},"change_message_id":"886d976016bb3f4b363f89b8e263124d27828674","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        :language: yaml"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    After you create your clouds.yml config file, you can interact with all"},{"line_number":270,"context_line":"    the clouds that you have configured."},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    .. literalinclude::  ../samples/shade/getting_started.py"},{"line_number":273,"context_line":"        :start-after: step-1"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a4dcd0f_e0496e61","line":270,"in_reply_to":"1a4dcd0f_e63534f7","updated":"2015-08-05 18:27:12.000000000","message":"Done","commit_id":"c584e073fa9fb27653c48c44f98a7a1a5e05cbd4"},{"author":{"_account_id":10897,"name":"Joseph Robinson","email":"josephremail@gmail.com","username":"RobiJoe"},"change_message_id":"2c0fac84804cc0d80e7f8540b729d5da3b896dfa","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        export OS_AUTH_URL\u003dhttp://controller:5000/v2.0"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"the actual auth URL is"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":".. code-block:: python"},{"line_number":179,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"1a4dcd0f_2bc72a97","line":176,"updated":"2015-08-06 02:11:53.000000000","message":"Line 176: Use a colon here and capitalise the sentence here - \"The actual auth URL is:\"","commit_id":"e101514b832881f4d831622bd5656cb977aa2a66"},{"author":{"_account_id":287,"name":"Stefano Maffulli \u0027reed\u0027","email":"stefano@openstack.org","username":"smaffulli"},"change_message_id":"bec879d697fcaa36e27408f75cfe53792f5b43c3","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        export OS_AUTH_URL\u003dhttp://controller:5000/v2.0"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"the actual auth URL is"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":".. code-block:: python"},{"line_number":179,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"1a4dcd0f_0a25515a","line":176,"in_reply_to":"1a4dcd0f_2bc72a97","updated":"2015-08-07 00:26:08.000000000","message":"Done","commit_id":"e101514b832881f4d831622bd5656cb977aa2a66"},{"author":{"_account_id":612,"name":"Tom Fifield","email":"tom@openstack.org","username":"fifieldt"},"change_message_id":"b8b76f3a3b24bf57be17c9a66218583e032708b3","unresolved":false,"context_lines":[{"line_number":257,"context_line":".. only:: shade"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    To use shade, you must configure your cloud credentials in the"},{"line_number":260,"context_line":"    :file:`~/.config/openstack/clouds.yml` file. Since shade is designed to"},{"line_number":261,"context_line":"    be simple for developers, you don\u0027t need to specify the auth_url"},{"line_number":262,"context_line":"    if you\u0027re using any of the `supported providers"},{"line_number":263,"context_line":"    \u003chttp://git.openstack.org/cgit/openstack/os-client-config/tree/os_client_config/vendors\u003e`_."}],"source_content_type":"text/x-rst","patch_set":11,"id":"1a4dcd0f_8b151e4a","line":260,"updated":"2015-08-06 02:24:35.000000000","message":"Use your credentials above to specify the auth_url, username, password, project_name and region_name in the file:","commit_id":"e101514b832881f4d831622bd5656cb977aa2a66"},{"author":{"_account_id":287,"name":"Stefano Maffulli \u0027reed\u0027","email":"stefano@openstack.org","username":"smaffulli"},"change_message_id":"bec879d697fcaa36e27408f75cfe53792f5b43c3","unresolved":false,"context_lines":[{"line_number":257,"context_line":".. only:: shade"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    To use shade, you must configure your cloud credentials in the"},{"line_number":260,"context_line":"    :file:`~/.config/openstack/clouds.yml` file. Since shade is designed to"},{"line_number":261,"context_line":"    be simple for developers, you don\u0027t need to specify the auth_url"},{"line_number":262,"context_line":"    if you\u0027re using any of the `supported providers"},{"line_number":263,"context_line":"    \u003chttp://git.openstack.org/cgit/openstack/os-client-config/tree/os_client_config/vendors\u003e`_."}],"source_content_type":"text/x-rst","patch_set":11,"id":"1a4dcd0f_ea24a50d","line":260,"in_reply_to":"1a4dcd0f_8b151e4a","updated":"2015-08-07 00:26:08.000000000","message":"Done","commit_id":"e101514b832881f4d831622bd5656cb977aa2a66"},{"author":{"_account_id":612,"name":"Tom Fifield","email":"tom@openstack.org","username":"fifieldt"},"change_message_id":"b8b76f3a3b24bf57be17c9a66218583e032708b3","unresolved":false,"context_lines":[{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    .. literalinclude:: ../samples/shade/clouds.yml"},{"line_number":266,"context_line":"        :language: yaml"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    After you create your :file:`clouds.yml` config file, you can"},{"line_number":269,"context_line":"    interact with all the clouds that you have configured."},{"line_number":270,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"1a4dcd0f_2f1bb574","line":267,"updated":"2015-08-06 02:24:35.000000000","message":".. note :: If you use a public cloud, shade might be able to simplify your configuration. If your provider is listed at http://git.openstack.org/cgit/openstack/os-client-config/tree/os_client_config/vendors , insert a line provider: $NAME, under the \u0027auth\u0027 section of the clouds.yml file. An auth_url is not required when using a provider name.","commit_id":"e101514b832881f4d831622bd5656cb977aa2a66"},{"author":{"_account_id":287,"name":"Stefano Maffulli \u0027reed\u0027","email":"stefano@openstack.org","username":"smaffulli"},"change_message_id":"bec879d697fcaa36e27408f75cfe53792f5b43c3","unresolved":false,"context_lines":[{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    .. literalinclude:: ../samples/shade/clouds.yml"},{"line_number":266,"context_line":"        :language: yaml"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    After you create your :file:`clouds.yml` config file, you can"},{"line_number":269,"context_line":"    interact with all the clouds that you have configured."},{"line_number":270,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"1a4dcd0f_ca29a9e7","line":267,"in_reply_to":"1a4dcd0f_2f1bb574","updated":"2015-08-07 00:26:08.000000000","message":"I think that the first target of this document should be the public clouds, not the private ones as your edits imply. Also, I don\u0027t see any problem in recognizing the clouds that collaborate with Shade developers, even if just by giving free accounts to test it.\n\nWe better have that conversation on the mailing list though. For the I prefer to merge this patch.","commit_id":"e101514b832881f4d831622bd5656cb977aa2a66"},{"author":{"_account_id":10897,"name":"Joseph Robinson","email":"josephremail@gmail.com","username":"RobiJoe"},"change_message_id":"2c0fac84804cc0d80e7f8540b729d5da3b896dfa","unresolved":false,"context_lines":[{"line_number":481,"context_line":""},{"line_number":482,"context_line":"Choose an image and flavor for your instance. You need about 1GB RAM, 1 CPU,"},{"line_number":483,"context_line":"and a 1GB disk. This example uses the Ubuntu image with a small"},{"line_number":484,"context_line":"flavor, which are safe choices. In subsequent tutorial sections in"},{"line_number":485,"context_line":"this guide, you must change the image and flavor IDs to correspond to"},{"line_number":486,"context_line":"the image and flavor that you choose."},{"line_number":487,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"1a4dcd0f_2bd40aea","line":484,"updated":"2015-08-06 02:11:53.000000000","message":"Line 484: Change verb (are\u003eis) to agree with subject number: \"This example uses the Ubuntu image with a small flavor, which is a safe choice.\"","commit_id":"e101514b832881f4d831622bd5656cb977aa2a66"},{"author":{"_account_id":287,"name":"Stefano Maffulli \u0027reed\u0027","email":"stefano@openstack.org","username":"smaffulli"},"change_message_id":"bec879d697fcaa36e27408f75cfe53792f5b43c3","unresolved":false,"context_lines":[{"line_number":481,"context_line":""},{"line_number":482,"context_line":"Choose an image and flavor for your instance. You need about 1GB RAM, 1 CPU,"},{"line_number":483,"context_line":"and a 1GB disk. This example uses the Ubuntu image with a small"},{"line_number":484,"context_line":"flavor, which are safe choices. In subsequent tutorial sections in"},{"line_number":485,"context_line":"this guide, you must change the image and flavor IDs to correspond to"},{"line_number":486,"context_line":"the image and flavor that you choose."},{"line_number":487,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"1a4dcd0f_2a85adcd","line":484,"in_reply_to":"1a4dcd0f_2bd40aea","updated":"2015-08-07 00:26:08.000000000","message":"Done","commit_id":"e101514b832881f4d831622bd5656cb977aa2a66"}]}
