Skip to content
This repository was archived by the owner on Aug 31, 2021. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions acceptance/clients/clients.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import (
"os"
"strings"

"net/http"

"github.com/huaweicloud/golangsdk"
"github.com/huaweicloud/golangsdk/openstack"
)
Expand Down Expand Up @@ -122,6 +124,8 @@ func NewBlockStorageV1Client() (*golangsdk.ServiceClient, error) {
return nil, err
}

configureDebug(client)

return openstack.NewBlockStorageV1(client, golangsdk.EndpointOpts{
Region: os.Getenv("OS_REGION_NAME"),
})
Expand All @@ -141,6 +145,8 @@ func NewBlockStorageV2Client() (*golangsdk.ServiceClient, error) {
return nil, err
}

configureDebug(client)

return openstack.NewBlockStorageV2(client, golangsdk.EndpointOpts{
Region: os.Getenv("OS_REGION_NAME"),
})
Expand All @@ -160,6 +166,8 @@ func NewBlockStorageV3Client() (*golangsdk.ServiceClient, error) {
return nil, err
}

configureDebug(client)

return openstack.NewBlockStorageV3(client, golangsdk.EndpointOpts{
Region: os.Getenv("OS_REGION_NAME"),
})
Expand All @@ -179,6 +187,8 @@ func NewComputeV2Client() (*golangsdk.ServiceClient, error) {
return nil, err
}

configureDebug(client)

return openstack.NewComputeV2(client, golangsdk.EndpointOpts{
Region: os.Getenv("OS_REGION_NAME"),
})
Expand All @@ -198,6 +208,8 @@ func NewDBV1Client() (*golangsdk.ServiceClient, error) {
return nil, err
}

configureDebug(client)

return openstack.NewDBV1(client, golangsdk.EndpointOpts{
Region: os.Getenv("OS_REGION_NAME"),
})
Expand All @@ -217,6 +229,8 @@ func NewDNSV2Client() (*golangsdk.ServiceClient, error) {
return nil, err
}

configureDebug(client)

return openstack.NewDNSV2(client, golangsdk.EndpointOpts{
Region: os.Getenv("OS_REGION_NAME"),
})
Expand All @@ -236,6 +250,8 @@ func NewIdentityV2Client() (*golangsdk.ServiceClient, error) {
return nil, err
}

configureDebug(client)

return openstack.NewIdentityV2(client, golangsdk.EndpointOpts{
Region: os.Getenv("OS_REGION_NAME"),
})
Expand All @@ -255,6 +271,8 @@ func NewIdentityV2AdminClient() (*golangsdk.ServiceClient, error) {
return nil, err
}

configureDebug(client)

return openstack.NewIdentityV2(client, golangsdk.EndpointOpts{
Region: os.Getenv("OS_REGION_NAME"),
Availability: golangsdk.AvailabilityAdmin,
Expand All @@ -275,6 +293,8 @@ func NewIdentityV2UnauthenticatedClient() (*golangsdk.ServiceClient, error) {
return nil, err
}

configureDebug(client)

return openstack.NewIdentityV2(client, golangsdk.EndpointOpts{})
}

Expand All @@ -292,6 +312,8 @@ func NewIdentityV3Client() (*golangsdk.ServiceClient, error) {
return nil, err
}

configureDebug(client)

return openstack.NewIdentityV3(client, golangsdk.EndpointOpts{
Region: os.Getenv("OS_REGION_NAME"),
})
Expand All @@ -311,6 +333,8 @@ func NewIdentityV3UnauthenticatedClient() (*golangsdk.ServiceClient, error) {
return nil, err
}

configureDebug(client)

return openstack.NewIdentityV3(client, golangsdk.EndpointOpts{})
}

Expand All @@ -328,6 +352,8 @@ func NewImageServiceV2Client() (*golangsdk.ServiceClient, error) {
return nil, err
}

configureDebug(client)

return openstack.NewImageServiceV2(client, golangsdk.EndpointOpts{
Region: os.Getenv("OS_REGION_NAME"),
})
Expand All @@ -347,6 +373,8 @@ func NewNetworkV1Client() (*golangsdk.ServiceClient, error) {
return nil, err
}

configureDebug(client)

return openstack.NewNetworkV1(client, golangsdk.EndpointOpts{
Region: os.Getenv("OS_REGION_NAME"),
})
Expand All @@ -371,6 +399,8 @@ func NewPeerNetworkV1Client() (*golangsdk.ServiceClient, error) {
return nil, err
}

configureDebug(client)

return openstack.NewNetworkV1(client, golangsdk.EndpointOpts{
Region: os.Getenv("OS_REGION_NAME"),
})
Expand All @@ -390,6 +420,8 @@ func NewNetworkV2Client() (*golangsdk.ServiceClient, error) {
return nil, err
}

configureDebug(client)

return openstack.NewNetworkV2(client, golangsdk.EndpointOpts{
Region: os.Getenv("OS_REGION_NAME"),
})
Expand All @@ -414,6 +446,8 @@ func NewPeerNetworkV2Client() (*golangsdk.ServiceClient, error) {
return nil, err
}

configureDebug(client)

return openstack.NewNetworkV2(client, golangsdk.EndpointOpts{
Region: os.Getenv("OS_REGION_NAME"),
})
Expand All @@ -433,6 +467,8 @@ func NewObjectStorageV1Client() (*golangsdk.ServiceClient, error) {
return nil, err
}

configureDebug(client)

return openstack.NewObjectStorageV1(client, golangsdk.EndpointOpts{
Region: os.Getenv("OS_REGION_NAME"),
})
Expand All @@ -452,6 +488,8 @@ func NewSharedFileSystemV2Client() (*golangsdk.ServiceClient, error) {
return nil, err
}

configureDebug(client)

return openstack.NewSharedFileSystemV2(client, golangsdk.EndpointOpts{
Region: os.Getenv("OS_REGION_NAME"),
})
Expand All @@ -473,3 +511,15 @@ func UpdatePeerTenantDetails(ao *golangsdk.AuthOptions) error {
return fmt.Errorf("You're missing some important setup:\n OS_Peer_Tenant_ID or OS_Peer_Tenant_Name env variables must be provided.")
}
}

// configureDebug will configure the provider client to print the API
// requests and responses if OS_DEBUG is enabled.
func configureDebug(client *golangsdk.ProviderClient) {
if os.Getenv("OS_DEBUG") != "" {
client.HTTPClient = http.Client{
Transport: &LogRoundTripper{
Rt: &http.Transport{},
},
}
}
}
60 changes: 60 additions & 0 deletions acceptance/clients/conditions.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package clients

import (
"os"
"testing"
)

// RequireAdmin will restrict a test to only be run by admin users.
func RequireAdmin(t *testing.T) {
if os.Getenv("OS_USERNAME") != "admin" {
t.Skip("must be admin to run this test")
}
}

// RequireDNS will restrict a test to only be run in environments
// that support DNSaaS.
func RequireDNS(t *testing.T) {
if os.Getenv("OS_DNS_ENVIRONMENT") == "" {
t.Skip("this test requires DNSaaS")
}
}

// RequireGuestAgent will restrict a test to only be run in
// environments that support the QEMU guest agent.
func RequireGuestAgent(t *testing.T) {
if os.Getenv("OS_GUEST_AGENT") == "" {
t.Skip("this test requires support for qemu guest agent and to set OS_GUEST_AGENT to 1")
}
}

// RequireIdentityV2 will restrict a test to only be run in
// environments that support the Identity V2 API.
func RequireIdentityV2(t *testing.T) {
if os.Getenv("OS_IDENTITY_API_VERSION") != "2.0" {
t.Skip("this test requires support for the identity v2 API")
}
}

// RequireLiveMigration will restrict a test to only be run in
// environments that support live migration.
func RequireLiveMigration(t *testing.T) {
if os.Getenv("OS_LIVE_MIGRATE") == "" {
t.Skip("this test requires support for live migration and to set OS_LIVE_MIGRATE to 1")
}
}

// RequireLong will ensure long-running tests can run.
func RequireLong(t *testing.T) {
if testing.Short() {
t.Skip("skipping test in short mode")
}
}

// RequireNovaNetwork will restrict a test to only be run in
// environments that support nova-network.
func RequireNovaNetwork(t *testing.T) {
if os.Getenv("OS_NOVANET") == "" {
t.Skip("this test requires nova-network and to set OS_NOVANET to 1")
}
}
Loading