{"action":"opened","number":7212,"pull_request":{"url":"https://api.github.com/repos/hashicorp/terraform/pulls/7212","id":74221999,"html_url":"https://github.com/hashicorp/terraform/pull/7212","diff_url":"https://github.com/hashicorp/terraform/pull/7212.diff","patch_url":"https://github.com/hashicorp/terraform/pull/7212.patch","issue_url":"https://api.github.com/repos/hashicorp/terraform/issues/7212","number":7212,"state":"open","locked":false,"title":"[WIP] New provider for Dimension Data Cloud Compute","user":{"login":"tintoy","id":1646284,"avatar_url":"https://avatars.githubusercontent.com/u/1646284?v=3","gravatar_id":"","url":"https://api.github.com/users/tintoy","html_url":"https://github.com/tintoy","followers_url":"https://api.github.com/users/tintoy/followers","following_url":"https://api.github.com/users/tintoy/following{/other_user}","gists_url":"https://api.github.com/users/tintoy/gists{/gist_id}","starred_url":"https://api.github.com/users/tintoy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tintoy/subscriptions","organizations_url":"https://api.github.com/users/tintoy/orgs","repos_url":"https://api.github.com/users/tintoy/repos","events_url":"https://api.github.com/users/tintoy/events{/privacy}","received_events_url":"https://api.github.com/users/tintoy/received_events","type":"User","site_admin":false},"body":"Hi.\r\n\r\nThis is a new Terraform provider that targets [Dimension Data's Managed Cloud Platform](http://cloud.dimensiondata.com/au/en/about/our-technology/cloudcontrol) [(CloudCompute API)](http://cloud.dimensiondata.com/au/en/services/public-cloud/api).\r\n\r\nCurrently supported resource types are:\r\n\r\n* `ddcloud_networkdomain` - A network domain (container for all cloud compute artefacts).\r\n* `ddcloud_vlan` - A Virtual LAN (VLAN) within a network domain.\r\n* `ddcloud_server` - A virtual machine.\r\n* `ddcloud_nat` - A Network Address Translation (NAT) rule that forwards traffic from a public IPv4 address to a server's private IPv4 address.\r\n* `ddcloud_firewallrule` - A firewall rule that controls access to an IP address associated with a network domain / VLAN.\r\n\r\nThe provider is already available as a [standalone plugin](https://github.com/DimensionDataResearch/dd-cloud-compute-terraform), but we'd like to get it built into Terraform (some of our clients use Atlas and I believe this is the only way that they could use the provider with it).\r\n\r\nIf you have the time, I'd appreciate someone casting an eye over the following areas:\r\n\r\n* [ ] Correct use of the Terraform plugin / provider API  \r\nI've examined the other providers and I believe our provider follows the same design patterns but I'd appreciate someone with domain expertise checking if we're making any egregious mistakes.\r\n* [ ] Acceptance tests  \r\nI've tried to follow the pattern (having looked at the examples in CONTRIBUTING.md as well as in various providers) and the tests currently pass but I'd appreciate a sanity check to make sure I've got the basic idea before going any further in writing them.\r\n* [ ] Documentation  \r\nI've added web site documentation for some (although not all) of the resource types for the ddcloud provider but would like someone to let me know if what I've created is correct before finishing it off.\r\n* [ ] Anything else I’ve missed  \r\nThere may be 1 or 2 aspects of implementing a provider that I have missed so if you spot anything I’m happy to take care of that, too.\r\n\r\nI'm relatively new to both Go and the Terraform provider API so please be gentle :)\r\n\r\nPS. Regarding acceptance tests, we can organise Compute API credentials to be used by the tests on an ongoing basis.\r\n","created_at":"2016-06-17T10:35:44Z","updated_at":"2016-06-17T10:35:44Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ab1a377380010a516503825668df5b385f3d60c0","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/hashicorp/terraform/pulls/7212/commits","review_comments_url":"https://api.github.com/repos/hashicorp/terraform/pulls/7212/comments","review_comment_url":"https://api.github.com/repos/hashicorp/terraform/pulls/comments{/number}","comments_url":"https://api.github.com/repos/hashicorp/terraform/issues/7212/comments","statuses_url":"https://api.github.com/repos/hashicorp/terraform/statuses/4b78b8f5bf4df69c7d5fa4f66a5c2a4672b5489e","head":{"label":"DimensionDataResearch:dd-research/ddcloud-provider","ref":"dd-research/ddcloud-provider","sha":"4b78b8f5bf4df69c7d5fa4f66a5c2a4672b5489e","user":{"login":"DimensionDataResearch","id":19212250,"avatar_url":"https://avatars.githubusercontent.com/u/19212250?v=3","gravatar_id":"","url":"https://api.github.com/users/DimensionDataResearch","html_url":"https://github.com/DimensionDataResearch","followers_url":"https://api.github.com/users/DimensionDataResearch/followers","following_url":"https://api.github.com/users/DimensionDataResearch/following{/other_user}","gists_url":"https://api.github.com/users/DimensionDataResearch/gists{/gist_id}","starred_url":"https://api.github.com/users/DimensionDataResearch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DimensionDataResearch/subscriptions","organizations_url":"https://api.github.com/users/DimensionDataResearch/orgs","repos_url":"https://api.github.com/users/DimensionDataResearch/repos","events_url":"https://api.github.com/users/DimensionDataResearch/events{/privacy}","received_events_url":"https://api.github.com/users/DimensionDataResearch/received_events","type":"Organization","site_admin":false},"repo":{"id":61275609,"name":"terraform","full_name":"DimensionDataResearch/terraform","owner":{"login":"DimensionDataResearch","id":19212250,"avatar_url":"https://avatars.githubusercontent.com/u/19212250?v=3","gravatar_id":"","url":"https://api.github.com/users/DimensionDataResearch","html_url":"https://github.com/DimensionDataResearch","followers_url":"https://api.github.com/users/DimensionDataResearch/followers","following_url":"https://api.github.com/users/DimensionDataResearch/following{/other_user}","gists_url":"https://api.github.com/users/DimensionDataResearch/gists{/gist_id}","starred_url":"https://api.github.com/users/DimensionDataResearch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DimensionDataResearch/subscriptions","organizations_url":"https://api.github.com/users/DimensionDataResearch/orgs","repos_url":"https://api.github.com/users/DimensionDataResearch/repos","events_url":"https://api.github.com/users/DimensionDataResearch/events{/privacy}","received_events_url":"https://api.github.com/users/DimensionDataResearch/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/DimensionDataResearch/terraform","description":"Terraform is a tool for building, changing, and combining infrastructure safely and efficiently.","fork":true,"url":"https://api.github.com/repos/DimensionDataResearch/terraform","forks_url":"https://api.github.com/repos/DimensionDataResearch/terraform/forks","keys_url":"https://api.github.com/repos/DimensionDataResearch/terraform/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DimensionDataResearch/terraform/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DimensionDataResearch/terraform/teams","hooks_url":"https://api.github.com/repos/DimensionDataResearch/terraform/hooks","issue_events_url":"https://api.github.com/repos/DimensionDataResearch/terraform/issues/events{/number}","events_url":"https://api.github.com/repos/DimensionDataResearch/terraform/events","assignees_url":"https://api.github.com/repos/DimensionDataResearch/terraform/assignees{/user}","branches_url":"https://api.github.com/repos/DimensionDataResearch/terraform/branches{/branch}","tags_url":"https://api.github.com/repos/DimensionDataResearch/terraform/tags","blobs_url":"https://api.github.com/repos/DimensionDataResearch/terraform/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DimensionDataResearch/terraform/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DimensionDataResearch/terraform/git/refs{/sha}","trees_url":"https://api.github.com/repos/DimensionDataResearch/terraform/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DimensionDataResearch/terraform/statuses/{sha}","languages_url":"https://api.github.com/repos/DimensionDataResearch/terraform/languages","stargazers_url":"https://api.github.com/repos/DimensionDataResearch/terraform/stargazers","contributors_url":"https://api.github.com/repos/DimensionDataResearch/terraform/contributors","subscribers_url":"https://api.github.com/repos/DimensionDataResearch/terraform/subscribers","subscription_url":"https://api.github.com/repos/DimensionDataResearch/terraform/subscription","commits_url":"https://api.github.com/repos/DimensionDataResearch/terraform/commits{/sha}","git_commits_url":"https://api.github.com/repos/DimensionDataResearch/terraform/git/commits{/sha}","comments_url":"https://api.github.com/repos/DimensionDataResearch/terraform/comments{/number}","issue_comment_url":"https://api.github.com/repos/DimensionDataResearch/terraform/issues/comments{/number}","contents_url":"https://api.github.com/repos/DimensionDataResearch/terraform/contents/{+path}","compare_url":"https://api.github.com/repos/DimensionDataResearch/terraform/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DimensionDataResearch/terraform/merges","archive_url":"https://api.github.com/repos/DimensionDataResearch/terraform/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DimensionDataResearch/terraform/downloads","issues_url":"https://api.github.com/repos/DimensionDataResearch/terraform/issues{/number}","pulls_url":"https://api.github.com/repos/DimensionDataResearch/terraform/pulls{/number}","milestones_url":"https://api.github.com/repos/DimensionDataResearch/terraform/milestones{/number}","notifications_url":"https://api.github.com/repos/DimensionDataResearch/terraform/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DimensionDataResearch/terraform/labels{/name}","releases_url":"https://api.github.com/repos/DimensionDataResearch/terraform/releases{/id}","deployments_url":"https://api.github.com/repos/DimensionDataResearch/terraform/deployments","created_at":"2016-06-16T08:27:24Z","updated_at":"2016-06-16T08:27:31Z","pushed_at":"2016-06-17T10:31:34Z","git_url":"git://github.com/DimensionDataResearch/terraform.git","ssh_url":"git@github.com:DimensionDataResearch/terraform.git","clone_url":"https://github.com/DimensionDataResearch/terraform.git","svn_url":"https://github.com/DimensionDataResearch/terraform","homepage":"https://www.terraform.io/","size":48056,"stargazers_count":0,"watchers_count":0,"language":"Go","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":"hashicorp:master","ref":"master","sha":"02627e507de6298ee888f4105c8e0ce3b5d1eac9","user":{"login":"hashicorp","id":761456,"avatar_url":"https://avatars.githubusercontent.com/u/761456?v=3","gravatar_id":"","url":"https://api.github.com/users/hashicorp","html_url":"https://github.com/hashicorp","followers_url":"https://api.github.com/users/hashicorp/followers","following_url":"https://api.github.com/users/hashicorp/following{/other_user}","gists_url":"https://api.github.com/users/hashicorp/gists{/gist_id}","starred_url":"https://api.github.com/users/hashicorp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hashicorp/subscriptions","organizations_url":"https://api.github.com/users/hashicorp/orgs","repos_url":"https://api.github.com/users/hashicorp/repos","events_url":"https://api.github.com/users/hashicorp/events{/privacy}","received_events_url":"https://api.github.com/users/hashicorp/received_events","type":"Organization","site_admin":false},"repo":{"id":17728164,"name":"terraform","full_name":"hashicorp/terraform","owner":{"login":"hashicorp","id":761456,"avatar_url":"https://avatars.githubusercontent.com/u/761456?v=3","gravatar_id":"","url":"https://api.github.com/users/hashicorp","html_url":"https://github.com/hashicorp","followers_url":"https://api.github.com/users/hashicorp/followers","following_url":"https://api.github.com/users/hashicorp/following{/other_user}","gists_url":"https://api.github.com/users/hashicorp/gists{/gist_id}","starred_url":"https://api.github.com/users/hashicorp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hashicorp/subscriptions","organizations_url":"https://api.github.com/users/hashicorp/orgs","repos_url":"https://api.github.com/users/hashicorp/repos","events_url":"https://api.github.com/users/hashicorp/events{/privacy}","received_events_url":"https://api.github.com/users/hashicorp/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/hashicorp/terraform","description":"Terraform is a tool for building, changing, and combining infrastructure safely and efficiently.","fork":false,"url":"https://api.github.com/repos/hashicorp/terraform","forks_url":"https://api.github.com/repos/hashicorp/terraform/forks","keys_url":"https://api.github.com/repos/hashicorp/terraform/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hashicorp/terraform/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hashicorp/terraform/teams","hooks_url":"https://api.github.com/repos/hashicorp/terraform/hooks","issue_events_url":"https://api.github.com/repos/hashicorp/terraform/issues/events{/number}","events_url":"https://api.github.com/repos/hashicorp/terraform/events","assignees_url":"https://api.github.com/repos/hashicorp/terraform/assignees{/user}","branches_url":"https://api.github.com/repos/hashicorp/terraform/branches{/branch}","tags_url":"https://api.github.com/repos/hashicorp/terraform/tags","blobs_url":"https://api.github.com/repos/hashicorp/terraform/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hashicorp/terraform/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hashicorp/terraform/git/refs{/sha}","trees_url":"https://api.github.com/repos/hashicorp/terraform/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hashicorp/terraform/statuses/{sha}","languages_url":"https://api.github.com/repos/hashicorp/terraform/languages","stargazers_url":"https://api.github.com/repos/hashicorp/terraform/stargazers","contributors_url":"https://api.github.com/repos/hashicorp/terraform/contributors","subscribers_url":"https://api.github.com/repos/hashicorp/terraform/subscribers","subscription_url":"https://api.github.com/repos/hashicorp/terraform/subscription","commits_url":"https://api.github.com/repos/hashicorp/terraform/commits{/sha}","git_commits_url":"https://api.github.com/repos/hashicorp/terraform/git/commits{/sha}","comments_url":"https://api.github.com/repos/hashicorp/terraform/comments{/number}","issue_comment_url":"https://api.github.com/repos/hashicorp/terraform/issues/comments{/number}","contents_url":"https://api.github.com/repos/hashicorp/terraform/contents/{+path}","compare_url":"https://api.github.com/repos/hashicorp/terraform/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hashicorp/terraform/merges","archive_url":"https://api.github.com/repos/hashicorp/terraform/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hashicorp/terraform/downloads","issues_url":"https://api.github.com/repos/hashicorp/terraform/issues{/number}","pulls_url":"https://api.github.com/repos/hashicorp/terraform/pulls{/number}","milestones_url":"https://api.github.com/repos/hashicorp/terraform/milestones{/number}","notifications_url":"https://api.github.com/repos/hashicorp/terraform/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hashicorp/terraform/labels{/name}","releases_url":"https://api.github.com/repos/hashicorp/terraform/releases{/id}","deployments_url":"https://api.github.com/repos/hashicorp/terraform/deployments","created_at":"2014-03-13T22:25:48Z","updated_at":"2016-06-17T10:20:10Z","pushed_at":"2016-06-17T10:35:45Z","git_url":"git://github.com/hashicorp/terraform.git","ssh_url":"git@github.com:hashicorp/terraform.git","clone_url":"https://github.com/hashicorp/terraform.git","svn_url":"https://github.com/hashicorp/terraform","homepage":"https://www.terraform.io/","size":85048,"stargazers_count":4954,"watchers_count":4954,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1520,"mirror_url":null,"open_issues_count":1408,"forks":1520,"open_issues":1408,"watchers":4954,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/hashicorp/terraform/pulls/7212"},"html":{"href":"https://github.com/hashicorp/terraform/pull/7212"},"issue":{"href":"https://api.github.com/repos/hashicorp/terraform/issues/7212"},"comments":{"href":"https://api.github.com/repos/hashicorp/terraform/issues/7212/comments"},"review_comments":{"href":"https://api.github.com/repos/hashicorp/terraform/pulls/7212/comments"},"review_comment":{"href":"https://api.github.com/repos/hashicorp/terraform/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/hashicorp/terraform/pulls/7212/commits"},"statuses":{"href":"https://api.github.com/repos/hashicorp/terraform/statuses/4b78b8f5bf4df69c7d5fa4f66a5c2a4672b5489e"}},"merged":false,"mergeable":true,"mergeable_state":"clean","merged_by":null,"comments":0,"review_comments":0,"commits":2,"additions":4995,"deletions":1,"changed_files":40}}
{"actor":{"display_login":"tintoy"}}