diff --git a/examples/nsacl/resources.tf b/examples/nsacl/resources.tf index 97f516cdb..b42fdada0 100644 --- a/examples/nsacl/resources.tf +++ b/examples/nsacl/resources.tf @@ -36,3 +36,6 @@ resource "netscaler_nsacl" "acl5" { aclaction = "DENY" vlan = "2000" } + +resource "netscaler_nsacls" "allacls" { +} diff --git a/netscaler/provider.go b/netscaler/provider.go index fcac343d5..6771ad4fa 100644 --- a/netscaler/provider.go +++ b/netscaler/provider.go @@ -77,6 +77,7 @@ func providerResources() map[string]*schema.Resource { "netscaler_lbmonitor": resourceNetScalerLbmonitor(), "netscaler_servicegroup": resourceNetScalerServicegroup(), "netscaler_nsacl": resourceNetScalerNsacl(), + "netscaler_nsacls": resourceNetScalerNsacls(), } } diff --git a/netscaler/resource_nsacls.go b/netscaler/resource_nsacls.go new file mode 100644 index 000000000..5c7013416 --- /dev/null +++ b/netscaler/resource_nsacls.go @@ -0,0 +1,50 @@ +package netscaler + +import ( + "github.com/chiradeep/go-nitro/config/ns" + + "github.com/chiradeep/go-nitro/netscaler" + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/helper/schema" + + "log" +) + +func resourceNetScalerNsacls() *schema.Resource { + return &schema.Resource{ + SchemaVersion: 1, + Create: createNsaclsFunc, + Read: readNsaclsFunc, + Delete: deleteNsaclsFunc, + Schema: map[string]*schema.Schema{}, + } +} + +func createNsaclsFunc(d *schema.ResourceData, meta interface{}) error { + log.Printf("[DEBUG] netscaler-provider: In createNsaclsFunc") + client := meta.(*NetScalerNitroClient).client + nsacls := ns.Nsacls{} + + nsaclsName := resource.PrefixedUniqueId("tf-nsacls-") + err := client.ApplyResource(netscaler.Nsacls.Type(), &nsacls) + if err != nil { + return err + } + + d.SetId(nsaclsName) + + return nil +} + +func readNsaclsFunc(d *schema.ResourceData, meta interface{}) error { + log.Printf("[DEBUG] netscaler-provider: In readNsaclsFunc") + + return nil +} + +func deleteNsaclsFunc(d *schema.ResourceData, meta interface{}) error { + log.Printf("[DEBUG] netscaler-provider: In deleteNsaclsFunc") + + d.SetId("") + return nil +} diff --git a/netscaler/resource_nsacls_test.go b/netscaler/resource_nsacls_test.go new file mode 100644 index 000000000..dae07c985 --- /dev/null +++ b/netscaler/resource_nsacls_test.go @@ -0,0 +1,63 @@ +/* +Copyright 2016 Citrix Systems, Inc + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ +package netscaler + +import ( + "fmt" + "github.com/chiradeep/go-nitro/netscaler" + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/terraform" + "testing" +) + +func TestAccNsacls_basic(t *testing.T) { + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckNsaclsDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccNsacls_basic, + }, + }, + }) +} + +func testAccCheckNsaclsDestroy(s *terraform.State) error { + nsClient := testAccProvider.Meta().(*NetScalerNitroClient).client + + for _, rs := range s.RootModule().Resources { + if rs.Type != "netscaler_nsacls" { + continue + } + + if rs.Primary.ID == "" { + return fmt.Errorf("No name is set") + } + + } + + return nil +} + +const testAccNsacls_basic = ` + + +resource "netscaler_nsacls" "foo" { + + +} +`