github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/waf-premium/v1/helpers.go (about) 1 package v1 2 3 import ( 4 "fmt" 5 6 golangsdk "github.com/opentelekomcloud/gophertelekomcloud" 7 "github.com/opentelekomcloud/gophertelekomcloud/openstack/waf-premium/v1/instances" 8 ) 9 10 const ( 11 testKey = `-----BEGIN PRIVATE KEY----- 12 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 61 6Ty0X9L6AsYiuWgPiTkurNI9qz7lYwg= 62 -----END PRIVATE KEY-----` 63 testCert = `-----BEGIN CERTIFICATE----- 64 MIIFRzCCAy8CFBKwjdhuzVswxRC4CExG3q6kRXZoMA0GCSqGSIb3DQEBCwUAMGAx 65 CzAJBgNVBAYTAkVTMRAwDgYDVQQIDAdHUkFOQURBMRAwDgYDVQQHDAdHUkFOQURB 66 MRAwDgYDVQQKDAdERUZBVUxUMQwwCgYDVQQLDANFQ08xDTALBgNVBAMMBEhPU1Qw 67 HhcNMjMwNzI4MTExNTEyWhcNMjQwNzI3MTExNTEyWjBgMQswCQYDVQQGEwJFUzEQ 68 MA4GA1UECAwHR1JBTkFEQTEQMA4GA1UEBwwHR1JBTkFEQTEQMA4GA1UECgwHREVG 69 QVVMVDEMMAoGA1UECwwDRUNPMQ0wCwYDVQQDDARIT1NUMIICIjANBgkqhkiG9w0B 70 AQEFAAOCAg8AMIICCgKCAgEA4Lqz8JUbPJITjuigx0HXsRv6YWG2li1LZH8qxVTR 71 bdioAc8pZ7ZMogAE1hQP/uAmcMGustqjZYMJIBCrGPr1VN+AKho823leJrGh6Ibk 72 Nj/OFju1HoFKYUCT4GM9LtkmT1139jKAsp8n0Ayl3K//DuoMOfZFqogdcqF+kVmg 73 Q6iplqAqpgbmFUm9R73nMFJhOiI9K7d3p3JiEVeuRTc9mqwqKjVutP3fdKfIdrEt 74 TnoPfp9GfNMMQTMCTZ8Aowm5pLeL1bnZuKsloYU47hWJD9XdeDjonzsJH13xh8kc 75 4mTLpr+DhYNnVtvUCpBDA3WPhYrFQBubR/cfVvDRhsFsVOo7QMDYWfwt+mSD5ad+ 76 PQCkd1PpLghMqz+plz+h1OiSPIpWD6TGBly5SR79agUFWlOUh0n8zoqfoOJAohgn 77 SJvERv/i06U/eyFaMrwlum2m9qv4vhIrYGpJAtCRFQlrfW+yniYfGY1Cs5Bw4UnR 78 r2WZqtkLl3BR71135G5mie2K82EigV3118VHj8NCblhLocDV0jiWc9gnyefppCP6 79 IocGMi+Gy++bmHIPQP2yI4NvXx1atZEB8wH1YTIsDagDfX3ef9WkKftctgn8T2L8 80 re8phURGjCPMNeq4ybslXY4EfldOOFIUWshkZUViV0KycJIb6J4IuBpHT1tQATcM 81 25kCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEApAJOscxakTRp7ET7AY0CwaLbvgUO 82 2NZWbg/Pr+jrt55Sxo9exMtOAexxUSRCVcAMfz2DPfdv8TzW/eIMV84BN1RZivTO 83 g3LgbrbgwVe8q200GNoji8lQWePyBvUqMXaZ5ESN8K7aWiEphCoSp7W+2OvwNd1o 84 yY/ovKGEmpioqla64qxIRMO4JHJJXv3lTLh1jBrPFET6AyhQbv/urZwkm9rWNTG+ 85 fJ11/k8W1cHCdid72YL94TqQ3AIq5swSizERDXHck0jONkA88bBYExdQoqfE+X8n 86 rFSrpW4HGPDnE8/FBvir4JWOlEymifgAqmfCQZfkr/XTOircNwMLiAwUwqn7cMYc 87 kWCq8JgJXVpAegCPy/rzB1+M4FxVL4HMFLAiTVvkdK52e3bJ4HRCX5k48fKSj8RX 88 wWiWnK6YSShkplerCZ50ng+SvSiWzcqsJRqgupwFJKM3+iZ6zsyIpOLqZ/XgSiRg 89 F1NrTkx+2qdNqp/F0PUEJMJQA0ZukviDqvHefr07ZjFL7qBJb19cEV0sgvnA93b4 90 KirQdAKxHYWrZl+rTTmlHPsfvylMFXDef5X66USvRdcK3xDpeAiXwJRg+HeDGk8w 91 9DAfnoBiV1K/gi4dWW9GqIzzqk7HdyzmjRyJJRoYV3nRssOGlcjUeu5GJgrKHv/0 92 nGCTZwjrFytcgdo= 93 -----END CERTIFICATE-----` 94 ) 95 96 func waitForInstanceToBeCreated(client *golangsdk.ServiceClient, secs int, id string) error { 97 return golangsdk.WaitFor(secs, func() (bool, error) { 98 instance, err := instances.Get(client, id) 99 if err != nil { 100 return false, err 101 } 102 if instance.Status == 1 { 103 return true, nil 104 } 105 if instance.Status == 4 { 106 return false, fmt.Errorf("error creating instance") 107 } 108 109 return false, nil 110 }) 111 } 112 113 func waitForInstanceToBeDeleted(client *golangsdk.ServiceClient, secs int, id string) error { 114 return golangsdk.WaitFor(secs, func() (bool, error) { 115 _, err := instances.Get(client, id) 116 if err != nil { 117 if _, ok := err.(golangsdk.ErrDefault404); ok { 118 return true, nil 119 } 120 return false, fmt.Errorf("error retriving WAF instance status: %w", err) 121 } 122 return false, nil 123 }) 124 }