]> git.immae.eu Git - github/fretlink/terraform-provider-statuscake.git/commitdiff
Created the initial scaffolding for the statuscake provider
authorstack72 <public@paulstack.co.uk>
Mon, 28 Sep 2015 10:39:32 +0000 (11:39 +0100)
committerstack72 <public@paulstack.co.uk>
Fri, 27 Nov 2015 15:03:13 +0000 (15:03 +0000)
provider.go [new file with mode: 0644]
provider_test.go [new file with mode: 0644]
resource_statuscaketest.go [new file with mode: 0644]

diff --git a/provider.go b/provider.go
new file mode 100644 (file)
index 0000000..7402e80
--- /dev/null
@@ -0,0 +1,39 @@
+package statuscake
+
+import (
+       "github.com/DreamItGetIT/statuscake"
+       "github.com/hashicorp/terraform/helper/schema"
+       "github.com/hashicorp/terraform/terraform"
+)
+
+func Provider() terraform.ResourceProvider {
+       return &schema.Provider{
+               Schema: map[string]*schema.Schema{
+                       "username": &schema.Schema{
+                               Type:        schema.TypeString,
+                               Required:    true,
+                               DefaultFunc: schema.EnvDefaultFunc("STATUSCAKE_USERNAME", nil),
+                               Description: "Username for StatusCake Account.",
+                       },
+                       "apikey": &schema.Schema{
+                               Type:        schema.TypeString,
+                               Required:    true,
+                               DefaultFunc: schema.EnvDefaultFunc("STATUSCAKE_APIKEY", nil),
+                               Description: "API Key for StatusCake",
+                       },
+               },
+
+               ResourcesMap: map[string]*schema.Resource{
+                       "statuscake_test": resourceStatusCakeTest(),
+               },
+
+               ConfigureFunc: providerConfigure,
+       }
+}
+
+func providerConfigure(d *schema.ResourceData) (interface{}, error) {
+       username := d.Get("username").(string)
+       apiKey := d.Get("apikey").(string)
+
+       return statuscake.New(apiKey, username), nil
+}
diff --git a/provider_test.go b/provider_test.go
new file mode 100644 (file)
index 0000000..83045d0
--- /dev/null
@@ -0,0 +1,38 @@
+package statuscake
+
+import (
+       "os"
+       "testing"
+
+       "github.com/hashicorp/terraform/helper/schema"
+       "github.com/hashicorp/terraform/terraform"
+)
+
+var testAccProviders map[string]terraform.ResourceProvider
+var testAccProvider *schema.Provider
+
+func init() {
+       testAccProvider = Provider().(*schema.Provider)
+       testAccProviders = map[string]terraform.ResourceProvider{
+               "statuscake": testAccProvider,
+       }
+}
+
+func TestProvider(t *testing.T) {
+       if err := Provider().(*schema.Provider).InternalValidate(); err != nil {
+               t.Fatalf("err: %s", err)
+       }
+}
+
+func TestProvider_impl(t *testing.T) {
+       var _ terraform.ResourceProvider = Provider()
+}
+
+func testAccPreCheck(t *testing.T) {
+       if v := os.Getenv("STATUSCAKE_USERNAME"); v == "" {
+               t.Fatal("STATUSCAKE_USERNAME must be set for acceptance tests")
+       }
+       if v := os.Getenv("STATUSCAKE_APIKEY"); v == "" {
+               t.Fatal("STATUSCAKE_APIKEY must be set for acceptance tests")
+       }
+}
diff --git a/resource_statuscaketest.go b/resource_statuscaketest.go
new file mode 100644 (file)
index 0000000..f34a97a
--- /dev/null
@@ -0,0 +1,28 @@
+package statuscake
+
+import "github.com/hashicorp/terraform/helper/schema"
+
+func resourceStatusCakeTest() *schema.Resource {
+       return &schema.Resource{
+               Create: CreateTest,
+               Update: UpdateTest,
+               Delete: DeleteTest,
+               Read:   ReadTest,
+       }
+}
+
+func CreateTest(d *schema.ResourceData, meta interface{}) error {
+       return nil
+}
+
+func UpdateTest(d *schema.ResourceData, meta interface{}) error {
+       return nil
+}
+
+func DeleteTest(d *schema.ResourceData, meta interface{}) error {
+       return nil
+}
+
+func ReadTest(d *schema.ResourceData, meta interface{}) error {
+       return nil
+}