vpc_test.go 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. package integration
  2. import (
  3. "testing"
  4. "fmt"
  5. "github.com/aliyun/alibaba-cloud-sdk-go/services/vpc"
  6. "strconv"
  7. "time"
  8. "github.com/stretchr/testify/assert"
  9. )
  10. func TestVpcInstance(t *testing.T) {
  11. // init client
  12. config := getConfigFromEnv()
  13. vpcClient, err := vpc.NewClientWithAccessKey("cn-hangzhou", config.AccessKeyId, config.AccessKeySecret)
  14. assertErrorNil(t, err, "Failed to init client")
  15. fmt.Printf("Init client success\n")
  16. // create vpc
  17. vpcId := createVpcInstance(t, vpcClient)
  18. time.Sleep(5 * time.Second)
  19. // create switch
  20. vswitchId := createVswitchInstance(t, vpcClient, vpcId)
  21. time.Sleep(5 * time.Second)
  22. // delete vswitch
  23. deleteVSwitchInstance(t, vpcClient, vswitchId)
  24. // delete vpc
  25. deleteVpcInstance(t, vpcClient, vpcId)
  26. }
  27. func createVpcInstance(t *testing.T, client *vpc.Client) (vpcId string) {
  28. fmt.Print("creating vpc instance...")
  29. request := vpc.CreateCreateVpcRequest()
  30. request.VpcName = InstanceNamePrefix + strconv.FormatInt(time.Now().Unix(), 10)
  31. request.CidrBlock = "192.168.0.0/16"
  32. response, err := client.CreateVpc(request)
  33. assertErrorNil(t, err, "Failed to create vpc instance")
  34. assert.Equal(t, 200, response.GetHttpStatus(), response.GetHttpContentString())
  35. vpcId = response.VpcId
  36. fmt.Printf("success(%d)! vpcId = %s\n", response.GetHttpStatus(), vpcId)
  37. return
  38. }
  39. func createVswitchInstance(t *testing.T, client *vpc.Client, vpcId string) (vswitchId string) {
  40. fmt.Print("creating vswitch instance...")
  41. request := vpc.CreateCreateVSwitchRequest()
  42. request.VSwitchName = InstanceNamePrefix + strconv.FormatInt(time.Now().Unix(), 10)
  43. request.VpcId = vpcId
  44. request.ZoneId = "cn-hangzhou-b"
  45. request.CidrBlock = "192.168.3.0/24"
  46. response, err := client.CreateVSwitch(request)
  47. assertErrorNil(t, err, "Failed to create vswitch instance")
  48. assert.Equal(t, 200, response.GetHttpStatus(), response.GetHttpContentString())
  49. vswitchId = response.VSwitchId
  50. fmt.Printf("success(%d)! VSwitchId = %s\n", response.GetHttpStatus(), vpcId)
  51. return
  52. }
  53. func deleteVSwitchInstance(t *testing.T, client *vpc.Client, vswitchId string)() {
  54. fmt.Printf("deleting vswitch instance(%s)...", vswitchId)
  55. request := vpc.CreateDeleteVSwitchRequest()
  56. request.VSwitchId = vswitchId
  57. response, err := client.DeleteVSwitch(request)
  58. assertErrorNil(t, err, "Failed to delete vswitch instance")
  59. assert.Equal(t, 200, response.GetHttpStatus(), response.GetHttpContentString())
  60. fmt.Printf("success(%d)!\n", response.GetHttpStatus())
  61. return
  62. }
  63. func deleteVpcInstance(t *testing.T, client *vpc.Client, vpcId string){
  64. fmt.Printf("deleting vpc instance(%s)...", vpcId)
  65. request := vpc.CreateDeleteVpcRequest()
  66. request.VpcId = vpcId
  67. response, err := client.DeleteVpc(request)
  68. assertErrorNil(t, err, "Failed to delete vpc instance")
  69. assert.Equal(t, 200, response.GetHttpStatus(), response.GetHttpContentString())
  70. fmt.Printf("success(%d)!\n", response.GetHttpStatus())
  71. return
  72. }