diff --git a/spinnaker/api/application.go b/spinnaker/api/application.go index 6a5b389..cdfce9d 100644 --- a/spinnaker/api/application.go +++ b/spinnaker/api/application.go @@ -31,12 +31,16 @@ func GetApplication(client *gate.GatewayClient, applicationName string, dest int return nil } -func CreateApplication(client *gate.GatewayClient, applicationName, email string) error { +func CreateApplication(client *gate.GatewayClient, applicationName, email, + applicationDescription string, platformHealthOnly, platformHealthOnlyShowOverride bool) error { app := map[string]interface{}{ - "instancePort": 80, - "name": applicationName, - "email": email, + "instancePort": 80, + "name": applicationName, + "email": email, + "platformHealthOnly": platformHealthOnly, + "platformHealthOnlyShowOverride": platformHealthOnlyShowOverride, + "description": applicationDescription, } createAppTask := map[string]interface{}{ diff --git a/spinnaker/resource_application.go b/spinnaker/resource_application.go index c115adc..a08a97e 100644 --- a/spinnaker/resource_application.go +++ b/spinnaker/resource_application.go @@ -19,6 +19,21 @@ func resourceApplication() *schema.Resource { Type: schema.TypeString, Required: true, }, + "platform_health_only": { + Type: schema.TypeBool, + Optional: true, + Default: false, + }, + "platform_health_only_show_override": { + Type: schema.TypeBool, + Optional: true, + Default: false, + }, + "description": { + Type: schema.TypeString, + Optional: true, + Default: "", + }, }, Create: resourceApplicationCreate, Read: resourceApplicationRead, @@ -40,8 +55,11 @@ func resourceApplicationCreate(data *schema.ResourceData, meta interface{}) erro client := clientConfig.client application := data.Get("application").(string) email := data.Get("email").(string) + description := data.Get("description").(string) + platform_health_only := data.Get("platform_health_only").(bool) + platform_health_only_show_override := data.Get("platform_health_only_show_override").(bool) - if err := api.CreateApplication(client, application, email); err != nil { + if err := api.CreateApplication(client, application, email, description, platform_health_only, platform_health_only_show_override); err != nil { return err } diff --git a/spinnaker/resource_application_test.go b/spinnaker/resource_application_test.go index ed8945b..1f44300 100644 --- a/spinnaker/resource_application_test.go +++ b/spinnaker/resource_application_test.go @@ -24,6 +24,31 @@ func TestAccSpinnakerApplication_basic(t *testing.T) { testAccCheckApplicationExists(resourceName), resource.TestCheckResourceAttr(resourceName, "application", rName), resource.TestCheckResourceAttr(resourceName, "email", "acceptance@test.com"), + resource.TestCheckResourceAttr(resourceName, "description", ""), + resource.TestCheckResourceAttr(resourceName, "platformHealthOnly", "false"), + resource.TestCheckResourceAttr(resourceName, "platformHealthOnly", "false"), + ), + }, + }, + }) +} + +func TestAccSpinnakerApplication_nondefault(t *testing.T) { + resourceName := "spinnaker_application.test" + rName := acctest.RandomWithPrefix("tf-acc-test") + resource.ParallelTest(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + Steps: []resource.TestStep{ + { + Config: testAccSpinnakerApplication_basic(rName), + Check: resource.ComposeTestCheckFunc( + testAccCheckApplicationExists(resourceName), + resource.TestCheckResourceAttr(resourceName, "application", rName), + resource.TestCheckResourceAttr(resourceName, "email", "acceptance@test.com"), + resource.TestCheckResourceAttr(resourceName, "description", "My application"), + resource.TestCheckResourceAttr(resourceName, "platformHealthOnly", "true"), + resource.TestCheckResourceAttr(resourceName, "platformHealthOnlyShowOverride", "true"), ), }, }, @@ -70,3 +95,15 @@ resource "spinnaker_application" "test" { } `, rName) } + +func testAccSpinnakerApplication_nondefault(rName string) string { + return fmt.Sprintf(` +resource "spinnaker_application" "test" { + application = %q + email = "acceptance@test.com" + description = "My application" + platform_health_only = true + platform_health_only_show_override = true +} +`, rName) +}