github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/networking/v2/extensions/lbaas_v2/helpers.go (about) 1 package lbaas_v2 2 3 import ( 4 "testing" 5 6 golangsdk "github.com/opentelekomcloud/gophertelekomcloud" 7 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients" 8 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/tools" 9 "github.com/opentelekomcloud/gophertelekomcloud/openstack/networking/v2/extensions/lbaas_v2/certificates" 10 "github.com/opentelekomcloud/gophertelekomcloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers" 11 "github.com/opentelekomcloud/gophertelekomcloud/openstack/networking/v2/extensions/lbaas_v2/pools" 12 th "github.com/opentelekomcloud/gophertelekomcloud/testhelper" 13 ) 14 15 func createLbaasCertificate(t *testing.T, client *golangsdk.ServiceClient) (*certificates.Certificate, error) { 16 certificateName := tools.RandomString("create-cert-", 8) 17 privateKey := `-----BEGIN RSA PRIVATE KEY----- 18 MIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x 19 qEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1 20 UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15 21 MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ 22 M3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5 23 13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA 24 DRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx 25 Nwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg 26 iMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/ 27 rh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN 28 1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H 29 yDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P 30 RoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA 31 vABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc 32 Uk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC 33 aKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK 34 Hdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf 35 75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs 36 uvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF 37 Up7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD 38 79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve 39 yHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4 40 2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2 41 ep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl 42 nEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1 43 -----END RSA PRIVATE KEY-----` 44 certificate := `-----BEGIN CERTIFICATE----- 45 MIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV 46 BAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw 47 CQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j 48 b20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4 49 eDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE 50 CwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB 51 IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN 52 2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld 53 iE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb 54 3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz 55 Q8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5 56 mf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID 57 AQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw 58 FoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B 59 AQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0 60 83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG 61 r4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY 62 c8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA 63 i34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic 64 i1YhgnQbn5E0hz55OLu5jvOkKQjPCW+8Kg== 65 -----END CERTIFICATE-----` 66 adminStateUp := true 67 68 createLbaasCertificateOpts := certificates.CreateOpts{ 69 AdminStateUp: &adminStateUp, 70 Name: certificateName, 71 Description: "some test description", 72 PrivateKey: privateKey, 73 Certificate: certificate, 74 } 75 lbaasCertificate, err := certificates.Create(client, createLbaasCertificateOpts).Extract() 76 th.AssertNoErr(t, err) 77 78 t.Logf("Created LbaasV2 certificate: %s", lbaasCertificate.ID) 79 80 return lbaasCertificate, nil 81 } 82 83 func deleteLbaasCertificate(t *testing.T, client *golangsdk.ServiceClient, lbaasCertificateId string) { 84 t.Logf("Attempting to delete LbaasV2 certificate: %s", lbaasCertificateId) 85 86 err := certificates.Delete(client, lbaasCertificateId).ExtractErr() 87 th.AssertNoErr(t, err) 88 89 t.Logf("LbaasV2 certificate is deleted: %s", lbaasCertificateId) 90 } 91 92 func updateLbaasCertificate(t *testing.T, client *golangsdk.ServiceClient, lbaasCertificateId string) error { 93 t.Logf("Attempting to update LbaasV2 certificate") 94 95 certificateNewName := tools.RandomString("update-cert-", 8) 96 97 updateCertificate := ` 98 -----BEGIN CERTIFICATE----- 99 MIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV 100 BAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw 101 CQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j 102 b20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4 103 eDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE 104 CwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB 105 IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN 106 2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld 107 iE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb 108 3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz 109 Q8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5 110 mf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID 111 AQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw 112 FoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B 113 AQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0 114 83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG 115 r4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY 116 c8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA 117 i34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic 118 i1YhgnQbn5E0hz55OLu5jvOkKQjPCW+9Aa== 119 -----END CERTIFICATE-----` 120 121 updateOpts := certificates.UpdateOpts{ 122 Name: certificateNewName, 123 Certificate: updateCertificate, 124 } 125 126 _, err := certificates.Update(client, lbaasCertificateId, updateOpts).Extract() 127 th.AssertNoErr(t, err) 128 129 t.Logf("LbaasV2 certificate successfully updated: %s", lbaasCertificateId) 130 return nil 131 } 132 133 func createLbaasPool(t *testing.T, client *golangsdk.ServiceClient, loadBalancerID string) (*pools.Pool, error) { 134 poolName := tools.RandomString("create-pool-", 3) 135 t.Logf("Attempting to create LbaasV2 pool") 136 137 createOpts := pools.CreateOpts{ 138 LBMethod: "ROUND_ROBIN", 139 Protocol: "TCP", 140 LoadbalancerID: loadBalancerID, 141 Name: poolName, 142 } 143 lbaasMonitor, err := pools.Create(client, createOpts).Extract() 144 th.AssertNoErr(t, err) 145 146 t.Logf("Created LbaasV2 pool: %s", lbaasMonitor.ID) 147 148 return lbaasMonitor, nil 149 } 150 151 func deleteLbaasPool(t *testing.T, client *golangsdk.ServiceClient, lbaasPoolID string) { 152 t.Logf("Attempting to delete LbaasV2 pool: %s", lbaasPoolID) 153 154 err := pools.Delete(client, lbaasPoolID).ExtractErr() 155 th.AssertNoErr(t, err) 156 157 t.Logf("LbaasV2 pool is deleted: %s", lbaasPoolID) 158 } 159 160 func createLbaasLoadBalancer(t *testing.T, client *golangsdk.ServiceClient) (*loadbalancers.LoadBalancer, error) { 161 loadBalancerName := tools.RandomString("create-lb-", 3) 162 t.Logf("Attempting to create LbaasV2 LoadBalancer") 163 164 subnetID := clients.EnvOS.GetEnv("SUBNET_ID") 165 if subnetID == "" { 166 t.Skip("OS_SUBNET_ID env var is missing but LB test requires using existing network") 167 } 168 169 createOpts := loadbalancers.CreateOpts{ 170 Name: loadBalancerName, 171 VipSubnetID: subnetID, 172 } 173 lbaasLoadBalancer, err := loadbalancers.Create(client, createOpts).Extract() 174 th.AssertNoErr(t, err) 175 176 t.Logf("Created LbaasV2 LoadBalancer: %s", lbaasLoadBalancer.ID) 177 178 return lbaasLoadBalancer, nil 179 } 180 181 func deleteLbaasLoadBalancer(t *testing.T, client *golangsdk.ServiceClient, lbaasLBID string) { 182 t.Logf("Attempting to delete LbaasV2 LoadBalancer: %s", lbaasLBID) 183 184 err := loadbalancers.Delete(client, lbaasLBID).ExtractErr() 185 th.AssertNoErr(t, err) 186 187 t.Logf("LbaasV2 LoadBalancer is deleted: %s", lbaasLBID) 188 }