github.com/1and1/oneandone-cloudserver-sdk-go@v1.4.1/setup_test.go (about) 1 package oneandone 2 3 import ( 4 "encoding/json" 5 "fmt" 6 "os" 7 "sync" 8 "testing" 9 ) 10 11 var ( 12 api *API 13 sync_server sync.Once 14 test_server *Server 15 ) 16 17 func Init() { 18 fmt.Println("Initializing tests...") 19 token, err := getEnvironmentVar("ONEANDONE_TOKEN") 20 if err != nil { 21 fmt.Printf("The 1&1 cloud server api token must be set in the environment variable 'ONEANDONE_TOKEN'") 22 os.Exit(1) 23 } 24 25 SetToken(token) 26 27 apiEndpoint, err := getEnvironmentVar("ONEANDONE_ENDPOINT") 28 if err != nil { 29 // Use default endpoint 30 apiEndpoint = BaseUrl 31 } 32 33 api = New(token, apiEndpoint) 34 } 35 36 func getEnvironmentVar(name string) (string, error) { 37 osVar := os.Getenv(name) 38 if osVar == "" { 39 return "", fmt.Errorf("The environment variable '%s' is not set.", name) 40 } 41 return osVar, nil 42 } 43 44 func setEnvironmentVar(name string, value string) { 45 err := os.Setenv(name, value) 46 if err != nil { 47 fmt.Printf("The environment variable '%s' is not set.", name) 48 } 49 } 50 51 func printObject(in interface{}) { 52 bytes, _ := json.MarshalIndent(in, "", " ") 53 fmt.Printf("%v\n", string(bytes)) 54 } 55 56 func deploy_test_server(power_on bool) { 57 _, test_server, _ = create_test_server(power_on) 58 if power_on { 59 api.WaitForState(test_server, "POWERED_ON", 10, 90) 60 } else { 61 api.WaitForState(test_server, "POWERED_OFF", 10, 90) 62 } 63 } 64 65 func Cleanup() { 66 if server != nil { 67 api.DeleteServer(server.Id, false) 68 } 69 if test_server != nil { 70 api.DeleteServer(test_server.Id, false) 71 } 72 if test_image != nil { 73 api.DeleteImage(test_image.Id) 74 } 75 if test_fp != nil { 76 api.DeleteFirewallPolicy(test_fp.Id) 77 } 78 if test_lb != nil { 79 api.DeleteLoadBalancer(test_lb.Id) 80 } 81 if test_mp != nil { 82 api.DeleteMonitoringPolicy(test_mp.Id) 83 } 84 if test_pn != nil { 85 api.DeletePrivateNetwork(test_pn.Id) 86 } 87 if test_ip != nil { 88 api.DeletePublicIp(test_ip.Id) 89 } 90 if test_ss != nil { 91 api.DeleteSharedStorage(test_ss.Id) 92 } 93 if ser_lb != nil { 94 api.DeleteLoadBalancer(ser_lb.Id) 95 } 96 if image_serv != nil { 97 api.DeleteServer(image_serv.Id, false) 98 } 99 if test_vpn != nil { 100 api.DeleteVPN(test_vpn.Id) 101 } 102 if test_role != nil { 103 api.DeleteRole(test_role.Id) 104 } 105 } 106 107 func TestMain(m *testing.M) { 108 Init() 109 rc := m.Run() 110 Cleanup() 111 os.Exit(rc) 112 }