)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7253,"name":"Jason Dunsmore","email":"jasondunsmore@gmail.com","username":"jbd"},"change_message_id":"9a499a2bf59092931c950b29652a59135c9ac6c7","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Create a guide for scaling out Heat API\u0027s"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This documentation describes a guide for scaling out the ReST and CFN API\u0027s based on a devstack installation. HAProxy is used as a load balancer, redirecting calls from CLI to the several API\u0027s instances."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I6efe988ce970f2a3aa08f39050f85dc1621e6774"},{"line_number":12,"context_line":"Closes-bug: #1072958"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F%2FwaE%3D","line":9,"updated":"2013-10-29 14:43:54.000000000","message":"From https://wiki.openstack.org/wiki/GitCommitMessages\n\n\"Subsequent lines should be wrapped at 72 characters.\"","commit_id":"a3caa141fbcafc4690b53566fd93d4fa351ed7f2"}],"doc/source/scaleout_apis.rst":[{"author":{"_account_id":7253,"name":"Jason Dunsmore","email":"jasondunsmore@gmail.com","username":"jbd"},"change_message_id":"9a499a2bf59092931c950b29652a59135c9ac6c7","unresolved":false,"context_lines":[{"line_number":12,"context_line":"      under the License."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":"Scaling Out API\u0027s"},{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":17,"context_line":"This guide shows how to scale out the ReST and CFN API\u0027s."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAATn%2F%2FwUo%3D","line":15,"updated":"2013-10-29 14:43:54.000000000","message":"I\u0027d prefer \"APIs\" instead of \"API\u0027s\".  Normally this would be too minor to point out, but \"API\u0027s\" is used so frequently in this document, I find it pretty distracting.\n\nSee \"No Apostrophe for Normal Abbreviations\"\nhttp://www.grammar-monster.com/lessons/apostrophes_show_plural_of_abbreviations.htm","commit_id":"a3caa141fbcafc4690b53566fd93d4fa351ed7f2"},{"author":{"_account_id":7253,"name":"Jason Dunsmore","email":"jasondunsmore@gmail.com","username":"jbd"},"change_message_id":"9a499a2bf59092931c950b29652a59135c9ac6c7","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"This guide assumes that:"},{"line_number":23,"context_line":"    1) You have configured devstack from `Single Machine Installation Guide \u003chttp://devstack.org/guides/single-machine.html\u003e`_;"},{"line_number":24,"context_line":"    2) You have installed HAProxy."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Setting Up Heat on OpenStack"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAATn%2F%2FwTA%3D","line":23,"updated":"2013-10-29 14:43:54.000000000","message":"Most of the docs in doc/source hard-wrap lines at 80 characters.  I couldn\u0027t find an Openstack convention regarding this but it seems to be a Heat convention, and I think it makes the .rst file more readable.","commit_id":"a3caa141fbcafc4690b53566fd93d4fa351ed7f2"},{"author":{"_account_id":7253,"name":"Jason Dunsmore","email":"jasondunsmore@gmail.com","username":"jbd"},"change_message_id":"9a499a2bf59092931c950b29652a59135c9ac6c7","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"This guide assumes that:"},{"line_number":23,"context_line":"    1) You have configured devstack from `Single Machine Installation Guide \u003chttp://devstack.org/guides/single-machine.html\u003e`_;"},{"line_number":24,"context_line":"    2) You have installed HAProxy."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Setting Up Heat on OpenStack"},{"line_number":27,"context_line":"\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\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAATn%2F%2FwSc%3D","line":24,"updated":"2013-10-29 14:43:54.000000000","message":"...on the devstack server.","commit_id":"a3caa141fbcafc4690b53566fd93d4fa351ed7f2"},{"author":{"_account_id":7253,"name":"Jason Dunsmore","email":"jasondunsmore@gmail.com","username":"jbd"},"change_message_id":"9a499a2bf59092931c950b29652a59135c9ac6c7","unresolved":false,"context_lines":[{"line_number":34,"context_line":"Basic Architecture"},{"line_number":35,"context_line":"------------------"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"The Heat\u0027s architecture is as defined at `Heat Architecture \u003chttp://docs.openstack.org/developer/heat/architecture.html\u003e`_, where we have a CLI that send requests to the ReST and CFN API\u0027s, which in turn make calls to the heat engine."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Target Architecture"},{"line_number":40,"context_line":"-------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAATn%2F%2FwW0%3D","line":37,"updated":"2013-10-29 14:43:54.000000000","message":"This would sound better without the possessive form: \"The Heat architecture\"","commit_id":"a3caa141fbcafc4690b53566fd93d4fa351ed7f2"},{"author":{"_account_id":7253,"name":"Jason Dunsmore","email":"jasondunsmore@gmail.com","username":"jbd"},"change_message_id":"9a499a2bf59092931c950b29652a59135c9ac6c7","unresolved":false,"context_lines":[{"line_number":39,"context_line":"Target Architecture"},{"line_number":40,"context_line":"-------------------"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"A simple scaling out heat architecture can be made by running multiple API services and putting a HAProxy as a load balancer in front of them. Thus, a request sent from the CLI looks like:"},{"line_number":43,"context_line":"    1) CLI contacts the ReST or the CFN proxy;"},{"line_number":44,"context_line":"    2) The proxy, acting as a load balancer, redirects the call to an API instance;"},{"line_number":45,"context_line":"    3) The API calls the engine."}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAATn%2F%2FwUI%3D","line":42,"updated":"2013-10-29 14:43:54.000000000","message":"\"Heat\" capitalization should be consistent throughout the document.  People normally capitalize it.","commit_id":"a3caa141fbcafc4690b53566fd93d4fa351ed7f2"},{"author":{"_account_id":7253,"name":"Jason Dunsmore","email":"jasondunsmore@gmail.com","username":"jbd"},"change_message_id":"9a499a2bf59092931c950b29652a59135c9ac6c7","unresolved":false,"context_lines":[{"line_number":42,"context_line":"A simple scaling out heat architecture can be made by running multiple API services and putting a HAProxy as a load balancer in front of them. Thus, a request sent from the CLI looks like:"},{"line_number":43,"context_line":"    1) CLI contacts the ReST or the CFN proxy;"},{"line_number":44,"context_line":"    2) The proxy, acting as a load balancer, redirects the call to an API instance;"},{"line_number":45,"context_line":"    3) The API calls the engine."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Scaling Out Approach"},{"line_number":48,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAATn%2F%2FwR4%3D","line":45,"updated":"2013-10-29 14:43:54.000000000","message":"The API server sends messages to RabbitMQ, and the engine server picks up messages from the RabbitMQ queue.","commit_id":"a3caa141fbcafc4690b53566fd93d4fa351ed7f2"},{"author":{"_account_id":7253,"name":"Jason Dunsmore","email":"jasondunsmore@gmail.com","username":"jbd"},"change_message_id":"9a499a2bf59092931c950b29652a59135c9ac6c7","unresolved":false,"context_lines":[{"line_number":47,"context_line":"Scaling Out Approach"},{"line_number":48,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"The deployment of a heat scaling out architecture from a basic one may be done by:"},{"line_number":51,"context_line":"   1) Deploying multiple new API instances, linked to the heat-engine;"},{"line_number":52,"context_line":"   2) Replacing the original API\u0027s by proxies, linking the just deployed API\u0027s to them."},{"line_number":53,"context_line":"      Thus, when the CLI looks for the API\u0027s it was linked before, it will find proxies instead."}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAATn%2F%2FwRU%3D","line":50,"updated":"2013-10-29 14:43:54.000000000","message":"Awkward wording.  How about \"A basic Heat architecture can be scaled out by:\"","commit_id":"a3caa141fbcafc4690b53566fd93d4fa351ed7f2"},{"author":{"_account_id":7253,"name":"Jason Dunsmore","email":"jasondunsmore@gmail.com","username":"jbd"},"change_message_id":"9a499a2bf59092931c950b29652a59135c9ac6c7","unresolved":false,"context_lines":[{"line_number":50,"context_line":"The deployment of a heat scaling out architecture from a basic one may be done by:"},{"line_number":51,"context_line":"   1) Deploying multiple new API instances, linked to the heat-engine;"},{"line_number":52,"context_line":"   2) Replacing the original API\u0027s by proxies, linking the just deployed API\u0027s to them."},{"line_number":53,"context_line":"      Thus, when the CLI looks for the API\u0027s it was linked before, it will find proxies instead."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Deploying Multiple API\u0027s"},{"line_number":56,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAATn%2F%2FwQw%3D","line":53,"updated":"2013-10-29 14:43:54.000000000","message":"How about: \"This way, the CLI will communicate directly with the proxies rather than the APIs.\"","commit_id":"a3caa141fbcafc4690b53566fd93d4fa351ed7f2"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"18ab1017ffce73682c1b7897aedb6ed61e929e06","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"A simple scaling out Heat architecture can be made by running multiple API"},{"line_number":50,"context_line":"services and putting a HAProxy as a load balancer in front of them. Thus, a"},{"line_number":51,"context_line":"request sent from the CLI looks like:"},{"line_number":52,"context_line":"    1) CLI contacts the ReST or the CFN proxy;"},{"line_number":53,"context_line":"    2) The proxy, acting as a load balancer, redirects the call to an API"},{"line_number":54,"context_line":"       instance;"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAATn%2F%2FuJE%3D","line":51,"updated":"2013-10-29 22:38:36.000000000","message":"you need a new line here","commit_id":"f7723de25588cc32a59774f4a0648eb391d58489"},{"author":{"_account_id":7135,"name":"Liang Chen","email":"liangchen.linux@gmail.com","username":"Liang"},"change_message_id":"80a4ff52a09d77e1fb56c563cbc21f37cf22960c","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    python bin/heat-api --config-file\u003d/etc/heat/heat.conf"},{"line_number":72,"context_line":"    python bin/heat-api-cfn --config-file\u003d/etc/heat/heat.conf"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Each API instance must have a diferent address to listen, i.e., a pair ip:port."},{"line_number":75,"context_line":"When deploying ReST API instances, for each instance, modify the following block"},{"line_number":76,"context_line":"at Heat configuration file (/etc/heat/heat.conf):"},{"line_number":77,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAATn%2F%2FtqY%3D","line":74,"updated":"2013-10-30 03:17:00.000000000","message":"typo s/diferent/different","commit_id":"f7723de25588cc32a59774f4a0648eb391d58489"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"18ab1017ffce73682c1b7897aedb6ed61e929e06","unresolved":false,"context_lines":[{"line_number":74,"context_line":"Each API instance must have a diferent address to listen, i.e., a pair ip:port."},{"line_number":75,"context_line":"When deploying ReST API instances, for each instance, modify the following block"},{"line_number":76,"context_line":"at Heat configuration file (/etc/heat/heat.conf):"},{"line_number":77,"context_line":"::"},{"line_number":78,"context_line":"    [heat_api]"},{"line_number":79,"context_line":"    bind_port \u003d {heat_api_port}"},{"line_number":80,"context_line":"    bind_host \u003d {heat_api_ip}"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAATn%2F%2FuJA%3D","line":77,"updated":"2013-10-29 22:38:36.000000000","message":"new line after a \"::\"","commit_id":"f7723de25588cc32a59774f4a0648eb391d58489"},{"author":{"_account_id":7135,"name":"Liang Chen","email":"liangchen.linux@gmail.com","username":"Liang"},"change_message_id":"80a4ff52a09d77e1fb56c563cbc21f37cf22960c","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        timeout  check 10s"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    listen rest_api_proxy"},{"line_number":117,"context_line":"        # The values required bellow are the original ones that were in"},{"line_number":118,"context_line":"        # /etc/heat/heat.conf, i.e., the values of the original ReST API."},{"line_number":119,"context_line":"        bind {heat_api_ip}:{heat_api_port}"},{"line_number":120,"context_line":"        balance  source"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAATn%2F%2Ftqg%3D","line":117,"updated":"2013-10-30 03:17:00.000000000","message":"typo s/bellow/below","commit_id":"f7723de25588cc32a59774f4a0648eb391d58489"},{"author":{"_account_id":7135,"name":"Liang Chen","email":"liangchen.linux@gmail.com","username":"Liang"},"change_message_id":"80a4ff52a09d77e1fb56c563cbc21f37cf22960c","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        balance  source"},{"line_number":121,"context_line":"        option  tcpka"},{"line_number":122,"context_line":"        option  httpchk"},{"line_number":123,"context_line":"        # The values required bellow are the different addresses supplied when"},{"line_number":124,"context_line":"        # running the ReST API instances."},{"line_number":125,"context_line":"        server server_1_name {server_1_ip}:{server_1_port}"},{"line_number":126,"context_line":"        ..."}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAATn%2F%2Ftqk%3D","line":123,"updated":"2013-10-30 03:17:00.000000000","message":"ditto","commit_id":"f7723de25588cc32a59774f4a0648eb391d58489"},{"author":{"_account_id":7135,"name":"Liang Chen","email":"liangchen.linux@gmail.com","username":"Liang"},"change_message_id":"80a4ff52a09d77e1fb56c563cbc21f37cf22960c","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        server server_n_name {server_n_ip}:{server_n_port}"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    listen cfn_api_proxy"},{"line_number":130,"context_line":"        # The values required bellow are the original ones that were in"},{"line_number":131,"context_line":"        # /etc/heat/heat.conf, i.e., the values of the original CFN API."},{"line_number":132,"context_line":"        bind {heat_api_cfn_ip}:{heat_api_cfn_port}"},{"line_number":133,"context_line":"        balance  source"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAATn%2F%2Ftqw%3D","line":130,"updated":"2013-10-30 03:17:00.000000000","message":"ditto","commit_id":"f7723de25588cc32a59774f4a0648eb391d58489"},{"author":{"_account_id":7135,"name":"Liang Chen","email":"liangchen.linux@gmail.com","username":"Liang"},"change_message_id":"80a4ff52a09d77e1fb56c563cbc21f37cf22960c","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        balance  source"},{"line_number":134,"context_line":"        option  tcpka"},{"line_number":135,"context_line":"        option  httpchk"},{"line_number":136,"context_line":"        # The values required bellow are the different addresses supplied when"},{"line_number":137,"context_line":"        # running the CFN API instances."},{"line_number":138,"context_line":"        server server_1_name {server_1_ip}:{server_1_port}"},{"line_number":139,"context_line":"        ..."}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAATn%2F%2Ftqo%3D","line":136,"updated":"2013-10-30 03:17:00.000000000","message":"ditto","commit_id":"f7723de25588cc32a59774f4a0648eb391d58489"},{"author":{"_account_id":7253,"name":"Jason Dunsmore","email":"jasondunsmore@gmail.com","username":"jbd"},"change_message_id":"ffc8a9a600e5620b21fce2432fda2d52593c400c","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Scaling Out APIs"},{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"This guide shows how to scale out the ReST and CFN APIs."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Assumptions"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"AAAATn%2F%2Fl8Y%3D","line":18,"updated":"2013-10-31 18:16:51.000000000","message":"For more clarity, I\u0027d recommend:\n\n\"This guide shows how to scale out the ReST API (heat-api) and the CFN API (heat-api-cfn).\"","commit_id":"b92d0fb128e1046e89e7344ce0c047603e164936"},{"author":{"_account_id":7253,"name":"Jason Dunsmore","email":"jasondunsmore@gmail.com","username":"jbd"},"change_message_id":"ffc8a9a600e5620b21fce2432fda2d52593c400c","unresolved":false,"context_lines":[{"line_number":51,"context_line":"services and putting a HAProxy as a load balancer in front of them. Thus, a"},{"line_number":52,"context_line":"request sent from the CLI looks like:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    1. CLI contacts the ReST or the CFN proxy;"},{"line_number":55,"context_line":"    2. The proxy, acting as a load balancer, redirects the call to an API"},{"line_number":56,"context_line":"       instance;"},{"line_number":57,"context_line":"    3. The API server sends messages to RabbitMQ, and the engine server picks up"}],"source_content_type":"text/x-rst","patch_set":6,"id":"AAAATn%2F%2Fl8w%3D","line":54,"updated":"2013-10-31 18:16:51.000000000","message":"I\u0027d recommend \"CFN API\" instead of \"CFN proxy\"","commit_id":"b92d0fb128e1046e89e7344ce0c047603e164936"},{"author":{"_account_id":7253,"name":"Jason Dunsmore","email":"jasondunsmore@gmail.com","username":"jbd"},"change_message_id":"ffc8a9a600e5620b21fce2432fda2d52593c400c","unresolved":false,"context_lines":[{"line_number":52,"context_line":"request sent from the CLI looks like:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    1. CLI contacts the ReST or the CFN proxy;"},{"line_number":55,"context_line":"    2. The proxy, acting as a load balancer, redirects the call to an API"},{"line_number":56,"context_line":"       instance;"},{"line_number":57,"context_line":"    3. The API server sends messages to RabbitMQ, and the engine server picks up"},{"line_number":58,"context_line":"       messages from the RabbitMQ queue."}],"source_content_type":"text/x-rst","patch_set":6,"id":"AAAATn%2F%2Fl8s%3D","line":55,"updated":"2013-10-31 18:16:51.000000000","message":"I\u0027d recommend, \"The HAProxy service\" instead of \"The proxy\" (if that\u0027s what you mean).","commit_id":"b92d0fb128e1046e89e7344ce0c047603e164936"},{"author":{"_account_id":7256,"name":"Randall Burt","email":"randall.burt@rackspace.com","username":"randall-burt"},"change_message_id":"28a485d0322caa0d166913f8939645831489619d","unresolved":false,"context_lines":[{"line_number":60,"context_line":"Scaling Out Approach"},{"line_number":61,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"A basic Heat architecture can be scaled out by:"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    1. Deploying multiple new API instances, linked to the heat-engine;"},{"line_number":66,"context_line":"    2. Replacing the original APIs by proxies, linking the just deployed APIs to"}],"source_content_type":"text/x-rst","patch_set":6,"id":"AAAATn%2F%2FpJM%3D","line":63,"updated":"2013-10-31 00:35:22.000000000","message":"These are essentially the steps, but there\u0027s not enough information around either to explain the process to someone unfamiliar with load balancing HTTP services which I assume that is the audience here.","commit_id":"b92d0fb128e1046e89e7344ce0c047603e164936"},{"author":{"_account_id":7253,"name":"Jason Dunsmore","email":"jasondunsmore@gmail.com","username":"jbd"},"change_message_id":"ffc8a9a600e5620b21fce2432fda2d52593c400c","unresolved":false,"context_lines":[{"line_number":73,"context_line":"To run multiple ReST and CFN APIs:"},{"line_number":74,"context_line":"::"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    python bin/heat-api --config-file\u003d/etc/heat/heat.conf"},{"line_number":77,"context_line":"    python bin/heat-api-cfn --config-file\u003d/etc/heat/heat.conf"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Each API instance must have a different address to listen, i.e., a pair ip:port."}],"source_content_type":"text/x-rst","patch_set":6,"id":"AAAATn%2F%2Fl9Q%3D","line":76,"updated":"2013-10-31 18:16:51.000000000","message":"This isn\u0027t showing how to run multiple heat-api processes.","commit_id":"b92d0fb128e1046e89e7344ce0c047603e164936"},{"author":{"_account_id":7253,"name":"Jason Dunsmore","email":"jasondunsmore@gmail.com","username":"jbd"},"change_message_id":"ffc8a9a600e5620b21fce2432fda2d52593c400c","unresolved":false,"context_lines":[{"line_number":74,"context_line":"::"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    python bin/heat-api --config-file\u003d/etc/heat/heat.conf"},{"line_number":77,"context_line":"    python bin/heat-api-cfn --config-file\u003d/etc/heat/heat.conf"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Each API instance must have a different address to listen, i.e., a pair ip:port."},{"line_number":80,"context_line":"When deploying ReST API instances, for each instance, modify the following block"}],"source_content_type":"text/x-rst","patch_set":6,"id":"AAAATn%2F%2Fl9M%3D","line":77,"updated":"2013-10-31 18:16:51.000000000","message":"Ditto above","commit_id":"b92d0fb128e1046e89e7344ce0c047603e164936"},{"author":{"_account_id":7256,"name":"Randall Burt","email":"randall.burt@rackspace.com","username":"randall-burt"},"change_message_id":"28a485d0322caa0d166913f8939645831489619d","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    bind_host \u003d {heat_api_cfn_ip}"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Note that the original values found at {heat_api_port} and {heat_api_ip} will be"},{"line_number":96,"context_line":"the values used by the ReST proxy. The same for CFN API."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Deploying the Proxies"},{"line_number":99,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"AAAATn%2F%2FpJY%3D","line":96,"updated":"2013-10-31 00:35:22.000000000","message":"I think you may want to add more detail to this section. This explains the config files and how to start the services, but how does that relate to scaling the service out? Am I supposed to create copies of the config file and start multiple api processes? Am I supposed to set up Devstack on multiple VM/servers? If the target audience is someone completely unfamiliar with load balancing HTTP services, I don\u0027t think there\u0027s enough detail here.","commit_id":"b92d0fb128e1046e89e7344ce0c047603e164936"},{"author":{"_account_id":7256,"name":"Randall Burt","email":"randall.burt@rackspace.com","username":"randall-burt"},"change_message_id":"28a485d0322caa0d166913f8939645831489619d","unresolved":false,"context_lines":[{"line_number":99,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"In order to free the addresses that will be used by the proxies, stop the"},{"line_number":102,"context_line":"processes of the APIs deployed by devstack."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"To deploy the proxies, run `haproxy -f apis-proxy.conf`, where this"},{"line_number":105,"context_line":"configuration file looks like:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"AAAATn%2F%2FpKE%3D","line":102,"updated":"2013-10-31 00:35:22.000000000","message":"So, this makes me think that I\u0027m supposed to stop the api services on devstack and then start haproxy and then it will work. Shouldn\u0027t the actual API services be running somewhere?","commit_id":"b92d0fb128e1046e89e7344ce0c047603e164936"}]}
