@@ -101,6 +101,95 @@ func TestAccIBMIsVPNServerBasic(t *testing.T) {
101101 },
102102 })
103103}
104+ func TestAccIBMIsVPNServerBasicTags (t * testing.T ) {
105+ var vpnserver string
106+ if acc .ISCertificateCrn == "" {
107+ fmt .Println ("[ERROR] Set the environment variable IS_CERTIFICATE_CRN for testing ibm_is_vpn_server resource" )
108+ }
109+
110+ if acc .ISClientCaCrn == "" {
111+ fmt .Println ("[ERROR] Set the environment variable IS_CLIENT_CA_CRN for testing ibm_is_vpn_server resource" )
112+ }
113+ isCertificateCrn := acc .ISCertificateCrn
114+ isClientCaCrn := acc .ISClientCaCrn
115+ clientIPPool := "10.5.0.0/21"
116+ clientIdleTimeout := fmt .Sprintf ("%d" , acctest .RandIntRange (0 , 28800 ))
117+ enableSplitTunneling := "true"
118+ nameVpc := fmt .Sprintf ("test-vpc-tf-%d" , acctest .RandIntRange (10 , 100 ))
119+ nameSubnet1 := fmt .Sprintf ("test-subnet1-tf-%d" , acctest .RandIntRange (10 , 100 ))
120+ name := fmt .Sprintf ("tf-name%d" , acctest .RandIntRange (10 , 100 ))
121+ port := fmt .Sprintf ("%d" , acctest .RandIntRange (1 , 65535 ))
122+ protocol := "udp"
123+
124+ clientIPPoolUpdate := "10.6.0.0/21"
125+ clientIdleTimeoutUpdate := fmt .Sprintf ("%d" , acctest .RandIntRange (0 , 28800 ))
126+ enableSplitTunnelingUpdate := "false"
127+ nameUpdate := fmt .Sprintf ("tf-name%d" , acctest .RandIntRange (10 , 100 ))
128+ portUpdate := fmt .Sprintf ("%d" , acctest .RandIntRange (1 , 65535 ))
129+ protocolUpdate := "tcp"
130+
131+ resource .Test (t , resource.TestCase {
132+ PreCheck : func () { acc .TestAccPreCheck (t ) },
133+ Providers : acc .TestAccProviders ,
134+ CheckDestroy : testAccCheckIBMIsVPNServerDestroy ,
135+ Steps : []resource.TestStep {
136+ {
137+ Config : testAccCheckIBMIsVPNServerConfigBasicTags (nameVpc , nameSubnet1 , clientIPPool , clientIdleTimeout , enableSplitTunneling , name , port , protocol , isCertificateCrn , isClientCaCrn ),
138+ Check : resource .ComposeAggregateTestCheckFunc (
139+ testAccCheckIBMIsVPNServerExists ("ibm_is_vpn_server.is_vpn_server" , vpnserver ),
140+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "certificate_crn" ),
141+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "client_authentication.0.method" ),
142+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "client_auto_delete" ),
143+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "client_auto_delete_timeout" ),
144+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "client_dns_server_ips.#" ),
145+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "created_at" ),
146+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "crn" ),
147+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "hostname" ),
148+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "href" ),
149+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "health_state" ),
150+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "vpn_server" ),
151+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "lifecycle_state" ),
152+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "private_ips.0.address" ),
153+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "private_ips.0.href" ),
154+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "private_ips.0.id" ),
155+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "private_ips.0.name" ),
156+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "private_ips.0.resource_type" ),
157+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "resource_group" ),
158+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "security_groups.#" ),
159+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "resource_type" ),
160+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "subnets.#" ),
161+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "vpc.#" ),
162+ resource .TestCheckResourceAttr ("ibm_is_vpn_server.is_vpn_server" , "client_ip_pool" , clientIPPool ),
163+ resource .TestCheckResourceAttr ("ibm_is_vpn_server.is_vpn_server" , "client_idle_timeout" , clientIdleTimeout ),
164+ resource .TestCheckResourceAttr ("ibm_is_vpn_server.is_vpn_server" , "enable_split_tunneling" , enableSplitTunneling ),
165+ resource .TestCheckResourceAttr ("ibm_is_vpn_server.is_vpn_server" , "name" , name ),
166+ resource .TestCheckResourceAttr ("ibm_is_vpn_server.is_vpn_server" , "port" , port ),
167+ resource .TestCheckResourceAttr ("ibm_is_vpn_server.is_vpn_server" , "protocol" , protocol ),
168+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "tags.#" ),
169+ resource .TestCheckResourceAttr ("ibm_is_vpn_server.is_vpn_server" , "tags.#" , "2" ),
170+ ),
171+ },
172+ {
173+ Config : testAccCheckIBMIsVPNServerConfigBasicTags (nameVpc , nameSubnet1 , clientIPPoolUpdate , clientIdleTimeoutUpdate , enableSplitTunnelingUpdate , nameUpdate , portUpdate , protocolUpdate , isCertificateCrn , isClientCaCrn ),
174+ Check : resource .ComposeAggregateTestCheckFunc (
175+ resource .TestCheckResourceAttr ("ibm_is_vpn_server.is_vpn_server" , "client_ip_pool" , clientIPPoolUpdate ),
176+ resource .TestCheckResourceAttr ("ibm_is_vpn_server.is_vpn_server" , "client_idle_timeout" , clientIdleTimeoutUpdate ),
177+ resource .TestCheckResourceAttr ("ibm_is_vpn_server.is_vpn_server" , "enable_split_tunneling" , enableSplitTunnelingUpdate ),
178+ resource .TestCheckResourceAttr ("ibm_is_vpn_server.is_vpn_server" , "name" , nameUpdate ),
179+ resource .TestCheckResourceAttr ("ibm_is_vpn_server.is_vpn_server" , "port" , portUpdate ),
180+ resource .TestCheckResourceAttr ("ibm_is_vpn_server.is_vpn_server" , "protocol" , protocolUpdate ),
181+ resource .TestCheckResourceAttrSet ("ibm_is_vpn_server.is_vpn_server" , "tags.#" ),
182+ resource .TestCheckResourceAttr ("ibm_is_vpn_server.is_vpn_server" , "tags.#" , "2" ),
183+ ),
184+ },
185+ {
186+ ResourceName : "ibm_is_vpn_server.is_vpn_server" ,
187+ ImportState : true ,
188+ ImportStateVerify : true ,
189+ },
190+ },
191+ })
192+ }
104193
105194func testAccCheckIBMIsVPNServerConfigBasic (nameVpc string , nameSubnet1 string , clientIPPool string , clientIdleTimeout string , enableSplitTunneling string , vpnServerName string , port string , protocol string , isCertificateCrn string , isClientCaCrn string ) string {
106195 return fmt .Sprintf (`
@@ -132,6 +221,37 @@ func testAccCheckIBMIsVPNServerConfigBasic(nameVpc string, nameSubnet1 string, c
132221 }
133222 ` , nameVpc , nameSubnet1 , isCertificateCrn , isClientCaCrn , clientIPPool , clientIdleTimeout , enableSplitTunneling , vpnServerName , port , protocol )
134223}
224+ func testAccCheckIBMIsVPNServerConfigBasicTags (nameVpc string , nameSubnet1 string , clientIPPool string , clientIdleTimeout string , enableSplitTunneling string , vpnServerName string , port string , protocol string , isCertificateCrn string , isClientCaCrn string ) string {
225+ return fmt .Sprintf (`
226+ resource "ibm_is_vpc" "testacc_vpc" {
227+ name = "%s"
228+ }
229+
230+ resource "ibm_is_subnet" "testacc_subnet-1" {
231+ name = "%s"
232+ vpc = ibm_is_vpc.testacc_vpc.id
233+ zone = "us-south-1"
234+ ipv4_cidr_block = "10.240.0.0/24"
235+ }
236+
237+ resource "ibm_is_vpn_server" "is_vpn_server" {
238+ certificate_crn = "%s"
239+ client_authentication {
240+ method = "certificate"
241+ client_ca_crn = "%s"
242+ }
243+ client_ip_pool = "%s"
244+ subnets = [ibm_is_subnet.testacc_subnet-1.id]
245+ client_dns_server_ips = ["192.168.3.4"]
246+ client_idle_timeout = %s
247+ enable_split_tunneling = %s
248+ name = "%s"
249+ port = %s
250+ protocol = "%s"
251+ tags = [ "test:tags", "test:tags2" ]
252+ }
253+ ` , nameVpc , nameSubnet1 , isCertificateCrn , isClientCaCrn , clientIPPool , clientIdleTimeout , enableSplitTunneling , vpnServerName , port , protocol )
254+ }
135255
136256func testAccCheckIBMIsVPNServerExists (n string , obj string ) resource.TestCheckFunc {
137257
0 commit comments