{"action":"created","comment":{"url":"https://api.github.com/repos/apache/brooklyn-docs/pulls/comments/57305606","id":57305606,"diff_hunk":"@@ -172,4 +172,86 @@ For example, for dev/demo purposes an \"everything\" network could be created that\n || Source IP Ranges            || 0.0.0.0/0                   |\n || Allowed protocols and ports || tcp:0-65535 and udp:0-65535 |\n \n-\n+## IBM SoftLayer\n+\n+### VLAN Selection\n+\n+For some applications it is important that All VMs use the same VLAN. On\n+SoftLayer this can be done by setting the `SoftLayerTemplateOptions`\n+fields `primaryNetworkComponentNetworkVlanId` and\n+`primaryBackendNetworkComponentNetworkVlanId` when specifying the\n+location being used in the blueprint, as follows:\n+\n+```YAML\n+location:\n+  jclouds:softlayer:\n+    region: ams01\n+    templateOptions:\n+      # Enter your preferred network IDs\n+      primaryNetworkComponentNetworkVlanId: 1153481\n+      primaryBackendNetworkComponentNetworkVlanId: 1153483\n+```\n+\n+This will only work if you already have a VM configured using the same\n+VLAN, and can copy the IDs from the SoftLayer console UI.\n+\n+If you are deploying a new application, then you can customise the\n+location with ` `JcloudsLocationCustomizer` class, and we provide an\n+implementation that ensures all machines in a particular scope will\n+use the same VLAN. By default, the scope used is the application ID\n+for the blueprint being deployed, but this can be changed if you need\n+multiple applications to share the same VLAN.","path":"guide/ops/locations/more-clouds.md","position":33,"original_position":33,"commit_id":"48745cb216ba9a3b0fda7e43c32ee6fac2cceb5e","original_commit_id":"48745cb216ba9a3b0fda7e43c32ee6fac2cceb5e","user":{"login":"ahgittin","id":496540,"avatar_url":"https://avatars.githubusercontent.com/u/496540?v=3","gravatar_id":"","url":"https://api.github.com/users/ahgittin","html_url":"https://github.com/ahgittin","followers_url":"https://api.github.com/users/ahgittin/followers","following_url":"https://api.github.com/users/ahgittin/following{/other_user}","gists_url":"https://api.github.com/users/ahgittin/gists{/gist_id}","starred_url":"https://api.github.com/users/ahgittin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahgittin/subscriptions","organizations_url":"https://api.github.com/users/ahgittin/orgs","repos_url":"https://api.github.com/users/ahgittin/repos","events_url":"https://api.github.com/users/ahgittin/events{/privacy}","received_events_url":"https://api.github.com/users/ahgittin/received_events","type":"User","site_admin":false},"body":"```\r\nThe second method tells Brooklyn to discover VLAN information automatically:\r\nit will provision one VM first, and use the VLAN information from it when provisioning subsequent machines.\r\nThis ensures that all VMs are on the same subnet without requiring any manual VLAN referencing,\r\nmaking it very easy for end-users.\r\n```\r\n\r\n(also note extra backtick in line 199)","created_at":"2016-03-24T11:43:22Z","updated_at":"2016-03-24T11:43:22Z","html_url":"https://github.com/apache/brooklyn-docs/pull/31#discussion_r57305606","pull_request_url":"https://api.github.com/repos/apache/brooklyn-docs/pulls/31","_links":{"self":{"href":"https://api.github.com/repos/apache/brooklyn-docs/pulls/comments/57305606"},"html":{"href":"https://github.com/apache/brooklyn-docs/pull/31#discussion_r57305606"},"pull_request":{"href":"https://api.github.com/repos/apache/brooklyn-docs/pulls/31"}}},"pull_request":{"url":"https://api.github.com/repos/apache/brooklyn-docs/pulls/31","id":63420159,"html_url":"https://github.com/apache/brooklyn-docs/pull/31","diff_url":"https://github.com/apache/brooklyn-docs/pull/31.diff","patch_url":"https://github.com/apache/brooklyn-docs/pull/31.patch","issue_url":"https://api.github.com/repos/apache/brooklyn-docs/issues/31","number":31,"state":"open","locked":false,"title":"Describe SoftLayerSameVlanLocationCustomizer configuration","user":{"login":"grkvlt","id":214870,"avatar_url":"https://avatars.githubusercontent.com/u/214870?v=3","gravatar_id":"","url":"https://api.github.com/users/grkvlt","html_url":"https://github.com/grkvlt","followers_url":"https://api.github.com/users/grkvlt/followers","following_url":"https://api.github.com/users/grkvlt/following{/other_user}","gists_url":"https://api.github.com/users/grkvlt/gists{/gist_id}","starred_url":"https://api.github.com/users/grkvlt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grkvlt/subscriptions","organizations_url":"https://api.github.com/users/grkvlt/orgs","repos_url":"https://api.github.com/users/grkvlt/repos","events_url":"https://api.github.com/users/grkvlt/events{/privacy}","received_events_url":"https://api.github.com/users/grkvlt/received_events","type":"User","site_admin":false},"body":"Documentation for the changes made in https://github.com/apache/brooklyn-server/pull/53","created_at":"2016-03-18T18:50:47Z","updated_at":"2016-03-24T11:43:22Z","closed_at":null,"merged_at":null,"merge_commit_sha":"14ca166d0ac7f574bf2192e53e6ea1e50026b5f2","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/apache/brooklyn-docs/pulls/31/commits","review_comments_url":"https://api.github.com/repos/apache/brooklyn-docs/pulls/31/comments","review_comment_url":"https://api.github.com/repos/apache/brooklyn-docs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/apache/brooklyn-docs/issues/31/comments","statuses_url":"https://api.github.com/repos/apache/brooklyn-docs/statuses/48745cb216ba9a3b0fda7e43c32ee6fac2cceb5e","head":{"label":"grkvlt:softlayer-vlans","ref":"softlayer-vlans","sha":"48745cb216ba9a3b0fda7e43c32ee6fac2cceb5e","user":{"login":"grkvlt","id":214870,"avatar_url":"https://avatars.githubusercontent.com/u/214870?v=3","gravatar_id":"","url":"https://api.github.com/users/grkvlt","html_url":"https://github.com/grkvlt","followers_url":"https://api.github.com/users/grkvlt/followers","following_url":"https://api.github.com/users/grkvlt/following{/other_user}","gists_url":"https://api.github.com/users/grkvlt/gists{/gist_id}","starred_url":"https://api.github.com/users/grkvlt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grkvlt/subscriptions","organizations_url":"https://api.github.com/users/grkvlt/orgs","repos_url":"https://api.github.com/users/grkvlt/repos","events_url":"https://api.github.com/users/grkvlt/events{/privacy}","received_events_url":"https://api.github.com/users/grkvlt/received_events","type":"User","site_admin":false},"repo":{"id":50933546,"name":"brooklyn-docs","full_name":"grkvlt/brooklyn-docs","owner":{"login":"grkvlt","id":214870,"avatar_url":"https://avatars.githubusercontent.com/u/214870?v=3","gravatar_id":"","url":"https://api.github.com/users/grkvlt","html_url":"https://github.com/grkvlt","followers_url":"https://api.github.com/users/grkvlt/followers","following_url":"https://api.github.com/users/grkvlt/following{/other_user}","gists_url":"https://api.github.com/users/grkvlt/gists{/gist_id}","starred_url":"https://api.github.com/users/grkvlt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grkvlt/subscriptions","organizations_url":"https://api.github.com/users/grkvlt/orgs","repos_url":"https://api.github.com/users/grkvlt/repos","events_url":"https://api.github.com/users/grkvlt/events{/privacy}","received_events_url":"https://api.github.com/users/grkvlt/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/grkvlt/brooklyn-docs","description":"Mirror of Apache Brooklyn docs","fork":true,"url":"https://api.github.com/repos/grkvlt/brooklyn-docs","forks_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/forks","keys_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/teams","hooks_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/hooks","issue_events_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/issues/events{/number}","events_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/events","assignees_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/assignees{/user}","branches_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/branches{/branch}","tags_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/tags","blobs_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/statuses/{sha}","languages_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/languages","stargazers_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/stargazers","contributors_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/contributors","subscribers_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/subscribers","subscription_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/subscription","commits_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/contents/{+path}","compare_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/merges","archive_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/downloads","issues_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/issues{/number}","pulls_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/pulls{/number}","milestones_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/milestones{/number}","notifications_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/labels{/name}","releases_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/releases{/id}","deployments_url":"https://api.github.com/repos/grkvlt/brooklyn-docs/deployments","created_at":"2016-02-02T16:17:33Z","updated_at":"2016-02-02T16:17:34Z","pushed_at":"2016-03-23T17:37:26Z","git_url":"git://github.com/grkvlt/brooklyn-docs.git","ssh_url":"git@github.com:grkvlt/brooklyn-docs.git","clone_url":"https://github.com/grkvlt/brooklyn-docs.git","svn_url":"https://github.com/grkvlt/brooklyn-docs","homepage":null,"size":21690,"stargazers_count":0,"watchers_count":0,"language":"CSS","has_issues":false,"has_downloads":true,"has_wiki":false,"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":"apache:master","ref":"master","sha":"df024e3fa0f125f18289d432b8a611f9190e3d65","user":{"login":"apache","id":47359,"avatar_url":"https://avatars.githubusercontent.com/u/47359?v=3","gravatar_id":"","url":"https://api.github.com/users/apache","html_url":"https://github.com/apache","followers_url":"https://api.github.com/users/apache/followers","following_url":"https://api.github.com/users/apache/following{/other_user}","gists_url":"https://api.github.com/users/apache/gists{/gist_id}","starred_url":"https://api.github.com/users/apache/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apache/subscriptions","organizations_url":"https://api.github.com/users/apache/orgs","repos_url":"https://api.github.com/users/apache/repos","events_url":"https://api.github.com/users/apache/events{/privacy}","received_events_url":"https://api.github.com/users/apache/received_events","type":"Organization","site_admin":false},"repo":{"id":47246079,"name":"brooklyn-docs","full_name":"apache/brooklyn-docs","owner":{"login":"apache","id":47359,"avatar_url":"https://avatars.githubusercontent.com/u/47359?v=3","gravatar_id":"","url":"https://api.github.com/users/apache","html_url":"https://github.com/apache","followers_url":"https://api.github.com/users/apache/followers","following_url":"https://api.github.com/users/apache/following{/other_user}","gists_url":"https://api.github.com/users/apache/gists{/gist_id}","starred_url":"https://api.github.com/users/apache/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apache/subscriptions","organizations_url":"https://api.github.com/users/apache/orgs","repos_url":"https://api.github.com/users/apache/repos","events_url":"https://api.github.com/users/apache/events{/privacy}","received_events_url":"https://api.github.com/users/apache/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/apache/brooklyn-docs","description":"Mirror of Apache Brooklyn docs","fork":false,"url":"https://api.github.com/repos/apache/brooklyn-docs","forks_url":"https://api.github.com/repos/apache/brooklyn-docs/forks","keys_url":"https://api.github.com/repos/apache/brooklyn-docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/apache/brooklyn-docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/apache/brooklyn-docs/teams","hooks_url":"https://api.github.com/repos/apache/brooklyn-docs/hooks","issue_events_url":"https://api.github.com/repos/apache/brooklyn-docs/issues/events{/number}","events_url":"https://api.github.com/repos/apache/brooklyn-docs/events","assignees_url":"https://api.github.com/repos/apache/brooklyn-docs/assignees{/user}","branches_url":"https://api.github.com/repos/apache/brooklyn-docs/branches{/branch}","tags_url":"https://api.github.com/repos/apache/brooklyn-docs/tags","blobs_url":"https://api.github.com/repos/apache/brooklyn-docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/apache/brooklyn-docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/apache/brooklyn-docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/apache/brooklyn-docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/apache/brooklyn-docs/statuses/{sha}","languages_url":"https://api.github.com/repos/apache/brooklyn-docs/languages","stargazers_url":"https://api.github.com/repos/apache/brooklyn-docs/stargazers","contributors_url":"https://api.github.com/repos/apache/brooklyn-docs/contributors","subscribers_url":"https://api.github.com/repos/apache/brooklyn-docs/subscribers","subscription_url":"https://api.github.com/repos/apache/brooklyn-docs/subscription","commits_url":"https://api.github.com/repos/apache/brooklyn-docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/apache/brooklyn-docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/apache/brooklyn-docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/apache/brooklyn-docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/apache/brooklyn-docs/contents/{+path}","compare_url":"https://api.github.com/repos/apache/brooklyn-docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/apache/brooklyn-docs/merges","archive_url":"https://api.github.com/repos/apache/brooklyn-docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/apache/brooklyn-docs/downloads","issues_url":"https://api.github.com/repos/apache/brooklyn-docs/issues{/number}","pulls_url":"https://api.github.com/repos/apache/brooklyn-docs/pulls{/number}","milestones_url":"https://api.github.com/repos/apache/brooklyn-docs/milestones{/number}","notifications_url":"https://api.github.com/repos/apache/brooklyn-docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/apache/brooklyn-docs/labels{/name}","releases_url":"https://api.github.com/repos/apache/brooklyn-docs/releases{/id}","deployments_url":"https://api.github.com/repos/apache/brooklyn-docs/deployments","created_at":"2015-12-02T08:00:06Z","updated_at":"2016-02-24T16:20:57Z","pushed_at":"2016-03-24T11:37:54Z","git_url":"git://github.com/apache/brooklyn-docs.git","ssh_url":"git@github.com:apache/brooklyn-docs.git","clone_url":"https://github.com/apache/brooklyn-docs.git","svn_url":"https://github.com/apache/brooklyn-docs","homepage":null,"size":21689,"stargazers_count":1,"watchers_count":1,"language":"CSS","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":25,"mirror_url":"git://git.apache.org/brooklyn-docs.git","open_issues_count":4,"forks":25,"open_issues":4,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/apache/brooklyn-docs/pulls/31"},"html":{"href":"https://github.com/apache/brooklyn-docs/pull/31"},"issue":{"href":"https://api.github.com/repos/apache/brooklyn-docs/issues/31"},"comments":{"href":"https://api.github.com/repos/apache/brooklyn-docs/issues/31/comments"},"review_comments":{"href":"https://api.github.com/repos/apache/brooklyn-docs/pulls/31/comments"},"review_comment":{"href":"https://api.github.com/repos/apache/brooklyn-docs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/apache/brooklyn-docs/pulls/31/commits"},"statuses":{"href":"https://api.github.com/repos/apache/brooklyn-docs/statuses/48745cb216ba9a3b0fda7e43c32ee6fac2cceb5e"}}}}