{"action":"created","comment":{"url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/pulls/comments/77915997","id":77915997,"diff_hunk":"@@ -0,0 +1,112 @@\n+:orphan: true\n+\n+Capacity-Based Scale Out\n+========================\n+\n+Overview\n+--------\n+\n+When using :ref:`differentiated service environments <Differentiated Service Environments>`, you can configure capacity metrics for the F5® agent to provide scale out across multiple BIG-IP device groups. The F5 agent :ref:`configuration parameters <Configure the F5 OpenStack Agent>`  ``environment_group_number`` and ``environment_capacity_score`` allow the F5 LBaaSv2 agent scheduler to assign requests to the group that has the lowest capacity score.\n+\n+Each F5 agent is first configured, via the ``icontrol_endpoint`` parameter, to manage a BIG-IP device or device group. Agents with the same ``environment_group_number`` manage the same BIG-IP device group, regardless of whether they are configured with the same iControl® endpoints. This means that an agent can be configured to manage a specific device, but also be available to handle requests for its group.","path":"docs/includes/topic_capacity-based-scaleout.rst","position":11,"original_position":11,"commit_id":"90c94ca961e9e9f73f08c7013a6d976e12e2a517","original_commit_id":"90c94ca961e9e9f73f08c7013a6d976e12e2a517","user":{"login":"richbrowne","id":8740561,"avatar_url":"https://avatars.githubusercontent.com/u/8740561?v=3","gravatar_id":"","url":"https://api.github.com/users/richbrowne","html_url":"https://github.com/richbrowne","followers_url":"https://api.github.com/users/richbrowne/followers","following_url":"https://api.github.com/users/richbrowne/following{/other_user}","gists_url":"https://api.github.com/users/richbrowne/gists{/gist_id}","starred_url":"https://api.github.com/users/richbrowne/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/richbrowne/subscriptions","organizations_url":"https://api.github.com/users/richbrowne/orgs","repos_url":"https://api.github.com/users/richbrowne/repos","events_url":"https://api.github.com/users/richbrowne/events{/privacy}","received_events_url":"https://api.github.com/users/richbrowne/received_events","type":"User","site_admin":false},"body":"This isn't correct.  We should try to try to describe the environment_group_number as a way to map a number to a group of icontrol_endpoints.  It's just an ID for a set of endpoints.  If two agents are in the same environment_group, then they should have the same set of endpoints.  The number is just a convenient way of identifying them.\r\n\r\n\"This means that an agent can be configured to manage a specific device, but also be available to handle requests for its group.\"\r\n\r\nThe only way for us to be able to manage devices is to have the correct icontrol_endpoints.  So if a group comprises 3 devices with different IP addresses, every agent within the group needs to have all the endpoints in order to be in that group.","created_at":"2016-09-07T22:26:42Z","updated_at":"2016-09-07T22:26:42Z","html_url":"https://github.com/F5Networks/f5-openstack-lbaasv2-driver/pull/244#discussion_r77915997","pull_request_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/pulls/244","_links":{"self":{"href":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/pulls/comments/77915997"},"html":{"href":"https://github.com/F5Networks/f5-openstack-lbaasv2-driver/pull/244#discussion_r77915997"},"pull_request":{"href":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/pulls/244"}}},"pull_request":{"url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/pulls/244","id":84381718,"html_url":"https://github.com/F5Networks/f5-openstack-lbaasv2-driver/pull/244","diff_url":"https://github.com/F5Networks/f5-openstack-lbaasv2-driver/pull/244.diff","patch_url":"https://github.com/F5Networks/f5-openstack-lbaasv2-driver/pull/244.patch","issue_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/issues/244","number":244,"state":"open","locked":false,"title":"Docs for differentiated services, custom environment utility","user":{"login":"jputrino","id":12143793,"avatar_url":"https://avatars.githubusercontent.com/u/12143793?v=3","gravatar_id":"","url":"https://api.github.com/users/jputrino","html_url":"https://github.com/jputrino","followers_url":"https://api.github.com/users/jputrino/followers","following_url":"https://api.github.com/users/jputrino/following{/other_user}","gists_url":"https://api.github.com/users/jputrino/gists{/gist_id}","starred_url":"https://api.github.com/users/jputrino/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jputrino/subscriptions","organizations_url":"https://api.github.com/users/jputrino/orgs","repos_url":"https://api.github.com/users/jputrino/repos","events_url":"https://api.github.com/users/jputrino/events{/privacy}","received_events_url":"https://api.github.com/users/jputrino/received_events","type":"User","site_admin":false},"body":"@zancas @richbrowne \r\n\r\n#### What issues does this address?\r\nFixes #232, #233 \r\n\r\n#### What's this change do?\r\n- uses the feature template for differentiated service environments, capacity-based scale out, and the environment generator\r\n- updates/edits to the agent redundancy docs that are related\r\n- adds some API documentation for `f5lbaasdriver.utils` and `f5lbaasdriver.v2`\r\n\r\n#### Where should the reviewer start?\r\n- view staged docs at http://lbaasv2-test.readthedocs.io/en/feature.port_env_script/\r\n\r\n#### Any background context?\r\n- I generated the API docs for the f5lbaasdriver packages because I needed to document the new environment generator. I'm going to open another issue to deal with updating them in the future.","created_at":"2016-09-07T22:01:32Z","updated_at":"2016-09-07T22:26:42Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d587f73d39e4491c14d5f5f348b7f39cfd99b841","assignee":{"login":"zancas","id":640955,"avatar_url":"https://avatars.githubusercontent.com/u/640955?v=3","gravatar_id":"","url":"https://api.github.com/users/zancas","html_url":"https://github.com/zancas","followers_url":"https://api.github.com/users/zancas/followers","following_url":"https://api.github.com/users/zancas/following{/other_user}","gists_url":"https://api.github.com/users/zancas/gists{/gist_id}","starred_url":"https://api.github.com/users/zancas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zancas/subscriptions","organizations_url":"https://api.github.com/users/zancas/orgs","repos_url":"https://api.github.com/users/zancas/repos","events_url":"https://api.github.com/users/zancas/events{/privacy}","received_events_url":"https://api.github.com/users/zancas/received_events","type":"User","site_admin":false},"assignees":[{"login":"zancas","id":640955,"avatar_url":"https://avatars.githubusercontent.com/u/640955?v=3","gravatar_id":"","url":"https://api.github.com/users/zancas","html_url":"https://github.com/zancas","followers_url":"https://api.github.com/users/zancas/followers","following_url":"https://api.github.com/users/zancas/following{/other_user}","gists_url":"https://api.github.com/users/zancas/gists{/gist_id}","starred_url":"https://api.github.com/users/zancas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zancas/subscriptions","organizations_url":"https://api.github.com/users/zancas/orgs","repos_url":"https://api.github.com/users/zancas/repos","events_url":"https://api.github.com/users/zancas/events{/privacy}","received_events_url":"https://api.github.com/users/zancas/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/pulls/244/commits","review_comments_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/pulls/244/comments","review_comment_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/pulls/comments{/number}","comments_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/issues/244/comments","statuses_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/statuses/90c94ca961e9e9f73f08c7013a6d976e12e2a517","head":{"label":"jputrino:feature.port_env_script","ref":"feature.port_env_script","sha":"90c94ca961e9e9f73f08c7013a6d976e12e2a517","user":{"login":"jputrino","id":12143793,"avatar_url":"https://avatars.githubusercontent.com/u/12143793?v=3","gravatar_id":"","url":"https://api.github.com/users/jputrino","html_url":"https://github.com/jputrino","followers_url":"https://api.github.com/users/jputrino/followers","following_url":"https://api.github.com/users/jputrino/following{/other_user}","gists_url":"https://api.github.com/users/jputrino/gists{/gist_id}","starred_url":"https://api.github.com/users/jputrino/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jputrino/subscriptions","organizations_url":"https://api.github.com/users/jputrino/orgs","repos_url":"https://api.github.com/users/jputrino/repos","events_url":"https://api.github.com/users/jputrino/events{/privacy}","received_events_url":"https://api.github.com/users/jputrino/received_events","type":"User","site_admin":false},"repo":{"id":50205111,"name":"f5-openstack-lbaasv2-driver","full_name":"jputrino/f5-openstack-lbaasv2-driver","owner":{"login":"jputrino","id":12143793,"avatar_url":"https://avatars.githubusercontent.com/u/12143793?v=3","gravatar_id":"","url":"https://api.github.com/users/jputrino","html_url":"https://github.com/jputrino","followers_url":"https://api.github.com/users/jputrino/followers","following_url":"https://api.github.com/users/jputrino/following{/other_user}","gists_url":"https://api.github.com/users/jputrino/gists{/gist_id}","starred_url":"https://api.github.com/users/jputrino/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jputrino/subscriptions","organizations_url":"https://api.github.com/users/jputrino/orgs","repos_url":"https://api.github.com/users/jputrino/repos","events_url":"https://api.github.com/users/jputrino/events{/privacy}","received_events_url":"https://api.github.com/users/jputrino/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jputrino/f5-openstack-lbaasv2-driver","description":"","fork":true,"url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver","forks_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/forks","keys_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/teams","hooks_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/hooks","issue_events_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/issues/events{/number}","events_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/events","assignees_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/assignees{/user}","branches_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/branches{/branch}","tags_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/tags","blobs_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/git/refs{/sha}","trees_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/statuses/{sha}","languages_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/languages","stargazers_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/stargazers","contributors_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/contributors","subscribers_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/subscribers","subscription_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/subscription","commits_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/commits{/sha}","git_commits_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/git/commits{/sha}","comments_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/comments{/number}","issue_comment_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/issues/comments{/number}","contents_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/contents/{+path}","compare_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/merges","archive_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/downloads","issues_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/issues{/number}","pulls_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/pulls{/number}","milestones_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/milestones{/number}","notifications_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/labels{/name}","releases_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/releases{/id}","deployments_url":"https://api.github.com/repos/jputrino/f5-openstack-lbaasv2-driver/deployments","created_at":"2016-01-22T20:14:24Z","updated_at":"2016-02-25T19:45:30Z","pushed_at":"2016-09-07T21:52:16Z","git_url":"git://github.com/jputrino/f5-openstack-lbaasv2-driver.git","ssh_url":"git@github.com:jputrino/f5-openstack-lbaasv2-driver.git","clone_url":"https://github.com/jputrino/f5-openstack-lbaasv2-driver.git","svn_url":"https://github.com/jputrino/f5-openstack-lbaasv2-driver","homepage":null,"size":2518,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"F5Networks:feature.port_env_script","ref":"feature.port_env_script","sha":"5281b6030f7ef1c7148e3a0f2d7cdd6f4c688598","user":{"login":"F5Networks","id":8935905,"avatar_url":"https://avatars.githubusercontent.com/u/8935905?v=3","gravatar_id":"","url":"https://api.github.com/users/F5Networks","html_url":"https://github.com/F5Networks","followers_url":"https://api.github.com/users/F5Networks/followers","following_url":"https://api.github.com/users/F5Networks/following{/other_user}","gists_url":"https://api.github.com/users/F5Networks/gists{/gist_id}","starred_url":"https://api.github.com/users/F5Networks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/F5Networks/subscriptions","organizations_url":"https://api.github.com/users/F5Networks/orgs","repos_url":"https://api.github.com/users/F5Networks/repos","events_url":"https://api.github.com/users/F5Networks/events{/privacy}","received_events_url":"https://api.github.com/users/F5Networks/received_events","type":"Organization","site_admin":false},"repo":{"id":50119477,"name":"f5-openstack-lbaasv2-driver","full_name":"F5Networks/f5-openstack-lbaasv2-driver","owner":{"login":"F5Networks","id":8935905,"avatar_url":"https://avatars.githubusercontent.com/u/8935905?v=3","gravatar_id":"","url":"https://api.github.com/users/F5Networks","html_url":"https://github.com/F5Networks","followers_url":"https://api.github.com/users/F5Networks/followers","following_url":"https://api.github.com/users/F5Networks/following{/other_user}","gists_url":"https://api.github.com/users/F5Networks/gists{/gist_id}","starred_url":"https://api.github.com/users/F5Networks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/F5Networks/subscriptions","organizations_url":"https://api.github.com/users/F5Networks/orgs","repos_url":"https://api.github.com/users/F5Networks/repos","events_url":"https://api.github.com/users/F5Networks/events{/privacy}","received_events_url":"https://api.github.com/users/F5Networks/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/F5Networks/f5-openstack-lbaasv2-driver","description":"F5® LBaaSv2 plugin driver for OpenStack Liberty and beyond","fork":false,"url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver","forks_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/forks","keys_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/keys{/key_id}","collaborators_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/teams","hooks_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/hooks","issue_events_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/issues/events{/number}","events_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/events","assignees_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/assignees{/user}","branches_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/branches{/branch}","tags_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/tags","blobs_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/git/refs{/sha}","trees_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/git/trees{/sha}","statuses_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/statuses/{sha}","languages_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/languages","stargazers_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/stargazers","contributors_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/contributors","subscribers_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/subscribers","subscription_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/subscription","commits_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/commits{/sha}","git_commits_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/git/commits{/sha}","comments_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/comments{/number}","issue_comment_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/issues/comments{/number}","contents_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/contents/{+path}","compare_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/compare/{base}...{head}","merges_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/merges","archive_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/downloads","issues_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/issues{/number}","pulls_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/pulls{/number}","milestones_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/milestones{/number}","notifications_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/labels{/name}","releases_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/releases{/id}","deployments_url":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/deployments","created_at":"2016-01-21T16:13:39Z","updated_at":"2016-08-11T23:25:29Z","pushed_at":"2016-09-07T22:01:33Z","git_url":"git://github.com/F5Networks/f5-openstack-lbaasv2-driver.git","ssh_url":"git@github.com:F5Networks/f5-openstack-lbaasv2-driver.git","clone_url":"https://github.com/F5Networks/f5-openstack-lbaasv2-driver.git","svn_url":"https://github.com/F5Networks/f5-openstack-lbaasv2-driver","homepage":"http://f5-openstack-lbaasv2-driver.readthedocs.io","size":2523,"stargazers_count":5,"watchers_count":5,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":12,"mirror_url":null,"open_issues_count":31,"forks":12,"open_issues":31,"watchers":5,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/pulls/244"},"html":{"href":"https://github.com/F5Networks/f5-openstack-lbaasv2-driver/pull/244"},"issue":{"href":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/issues/244"},"comments":{"href":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/issues/244/comments"},"review_comments":{"href":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/pulls/244/comments"},"review_comment":{"href":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/pulls/244/commits"},"statuses":{"href":"https://api.github.com/repos/F5Networks/f5-openstack-lbaasv2-driver/statuses/90c94ca961e9e9f73f08c7013a6d976e12e2a517"}}}}
{"actor":{"display_login":"richbrowne"}}