vpc_test.go 2.8 KB

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