Skip to content

Commit

Permalink
Merge d3acca1 into 9b0581f
Browse files Browse the repository at this point in the history
  • Loading branch information
stephenfin committed Mar 21, 2024
2 parents 9b0581f + d3acca1 commit e15d1af
Show file tree
Hide file tree
Showing 20 changed files with 105 additions and 97 deletions.
2 changes: 1 addition & 1 deletion internal/acceptance/clients/clients.go
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ func NewBlockStorageV2NoAuthClient() (*gophercloud.ServiceClient, error) {
}

// NewBlockStorageV3NoAuthClient returns a noauth *ServiceClient for
// making calls to the OpenStack Block Storage v2 API. An error will be
// making calls to the OpenStack Block Storage v3 API. An error will be
// returned if client creation was not possible.
func NewBlockStorageV3NoAuthClient() (*gophercloud.ServiceClient, error) {
client, err := blockstorageNoAuth.NewClient(gophercloud.AuthOptions{
Expand Down
20 changes: 18 additions & 2 deletions internal/acceptance/clients/conditions.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,24 @@ func RequireNovaNetwork(t *testing.T) {
}
}

// RequireIronicHTTPBasic will restric a test to be only run in
// environments that have Ironic using http_basic.
// RequireCinderNoAuth will restrict a test to be only run in environments that
// have Cinder using noauth.
func RequireCinderNoAuth(t *testing.T) {
if os.Getenv("CINDER_ENDPOINT") == "" || os.Getenv("OS_USERNAME") == "" {
t.Skip("this test requires Cinder using noauth, set OS_USERNAME and CINDER_ENDPOINT")
}
}

// RequireIronicNoAuth will restrict a test to be only run in environments that
// have Cinder using noauth.
func RequireIronicNoAuth(t *testing.T) {
if os.Getenv("IRONIC_ENDPOINT") == "" || os.Getenv("OS_USERNAME") == "" {
t.Skip("this test requires IRONIC using noauth, set OS_USERNAME and IRONIC_ENDPOINT")
}
}

// RequireIronicHTTPBasic will restrict a test to be only run in environments
// that have Ironic using http_basic.
func RequireIronicHTTPBasic(t *testing.T) {
if os.Getenv("IRONIC_ENDPOINT") == "" || os.Getenv("OS_USERNAME") == "" || os.Getenv("OS_PASSWORD") == "" {
t.Skip("this test requires Ironic using http_basic, set OS_USERNAME, OS_PASSWORD and IRONIC_ENDPOINT")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import (

func TestAllocationsCreateDestroy(t *testing.T) {
clients.RequireLong(t)
clients.RequireIronicNoAuth(t)

client, err := clients.NewBareMetalV1NoAuthClient()
th.AssertNoErr(t, err)
Expand Down
3 changes: 3 additions & 0 deletions internal/acceptance/openstack/baremetal/noauth/nodes_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import (

func TestNodesCreateDestroy(t *testing.T) {
clients.RequireLong(t)
clients.RequireIronicNoAuth(t)

client, err := clients.NewBareMetalV1NoAuthClient()
th.AssertNoErr(t, err)
Expand Down Expand Up @@ -46,6 +47,7 @@ func TestNodesCreateDestroy(t *testing.T) {

func TestNodesUpdate(t *testing.T) {
clients.RequireLong(t)
clients.RequireIronicNoAuth(t)

client, err := clients.NewBareMetalV1NoAuthClient()
th.AssertNoErr(t, err)
Expand All @@ -70,6 +72,7 @@ func TestNodesUpdate(t *testing.T) {
func TestNodesRAIDConfig(t *testing.T) {
clients.SkipReleasesBelow(t, "stable/ussuri")
clients.RequireLong(t)
clients.RequireIronicNoAuth(t)

client, err := clients.NewBareMetalV1NoAuthClient()
th.AssertNoErr(t, err)
Expand Down
2 changes: 2 additions & 0 deletions internal/acceptance/openstack/baremetal/noauth/ports_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import (

func TestPortsCreateDestroy(t *testing.T) {
clients.RequireLong(t)
clients.RequireIronicNoAuth(t)

client, err := clients.NewBareMetalV1NoAuthClient()
th.AssertNoErr(t, err)
Expand Down Expand Up @@ -51,6 +52,7 @@ func TestPortsCreateDestroy(t *testing.T) {

func TestPortsUpdate(t *testing.T) {
clients.RequireLong(t)
clients.RequireIronicNoAuth(t)

client, err := clients.NewBareMetalV1NoAuthClient()
th.AssertNoErr(t, err)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ import (
)

func TestSnapshotsList(t *testing.T) {
clients.RequireCinderNoAuth(t)

client, err := clients.NewBlockStorageV3NoAuthClient()
if err != nil {
t.Fatalf("Unable to create a blockstorage client: %v", err)
Expand All @@ -34,6 +36,8 @@ func TestSnapshotsList(t *testing.T) {
}

func TestSnapshotsCreateDelete(t *testing.T) {
clients.RequireCinderNoAuth(t)

client, err := clients.NewBlockStorageV3NoAuthClient()
if err != nil {
t.Fatalf("Unable to create a blockstorage client: %v", err)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ import (
)

func TestVolumesList(t *testing.T) {
clients.RequireCinderNoAuth(t)

client, err := clients.NewBlockStorageV3NoAuthClient()
if err != nil {
t.Fatalf("Unable to create a blockstorage client: %v", err)
Expand All @@ -34,6 +36,8 @@ func TestVolumesList(t *testing.T) {
}

func TestVolumesCreateDestroy(t *testing.T) {
clients.RequireCinderNoAuth(t)

client, err := clients.NewBlockStorageV3NoAuthClient()
if err != nil {
t.Fatalf("Unable to create blockstorage client: %v", err)
Expand Down
18 changes: 18 additions & 0 deletions internal/acceptance/openstack/networking/v2/conditions.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package v2

import (
"context"
"testing"

"github.com/gophercloud/gophercloud/v2"
"github.com/gophercloud/gophercloud/v2/openstack/common/extensions"
)

// RequireNeutronExtension will restrict a test to be only run in environments
// with the requested Neutron extension present.
func RequireNeutronExtension(t *testing.T, client *gophercloud.ServiceClient, extension string) {
_, err := extensions.Get(context.TODO(), client, extension).Extract()
if err != nil {
t.Skipf("this test requires %s Neutron extension", extension)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import (
networking "github.com/gophercloud/gophercloud/v2/internal/acceptance/openstack/networking/v2"
"github.com/gophercloud/gophercloud/v2/internal/acceptance/openstack/networking/v2/extensions/layer3"
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
"github.com/gophercloud/gophercloud/v2/openstack/common/extensions"
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/dns"
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/layer3/floatingips"
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/networks"
Expand All @@ -27,11 +26,8 @@ func TestDNSPortCRUDL(t *testing.T) {
client, err := clients.NewNetworkV2Client()
th.AssertNoErr(t, err)

extension, err := extensions.Get(context.TODO(), client, "dns-integration").Extract()
if err != nil {
t.Skip("This test requires dns-integration Neutron extension")
}
tools.PrintResource(t, extension)
// Skip these tests if we don't have the required extension
networking.RequireNeutronExtension(t, client, "dns-integration")

// Create Network
networkDNSDomain := "local."
Expand Down Expand Up @@ -154,11 +150,8 @@ func TestDNSFloatingIPCRDL(t *testing.T) {
client, err := clients.NewNetworkV2Client()
th.AssertNoErr(t, err)

extension, err := extensions.Get(context.TODO(), client, "dns-integration").Extract()
if err != nil {
t.Skip("This test requires dns-integration Neutron extension")
}
tools.PrintResource(t, extension)
// Skip these tests if we don't have the required extension
networking.RequireNeutronExtension(t, client, "dns-integration")

choices, err := clients.AcceptanceTestChoicesFromEnv()
th.AssertNoErr(t, err)
Expand Down Expand Up @@ -216,11 +209,8 @@ func TestDNSNetwork(t *testing.T) {
client, err := clients.NewNetworkV2Client()
th.AssertNoErr(t, err)

extension, err := extensions.Get(context.TODO(), client, "dns-integration").Extract()
if err != nil {
t.Skip("This test requires dns-integration Neutron extension")
}
tools.PrintResource(t, extension)
// Skip these tests if we don't have the required extension
networking.RequireNeutronExtension(t, client, "dns-integration")

// Create Network
networkDNSDomain := "local."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"testing"

"github.com/gophercloud/gophercloud/v2/internal/acceptance/clients"
networking "github.com/gophercloud/gophercloud/v2/internal/acceptance/openstack/networking/v2"
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/fwaas_v2/groups"
th "github.com/gophercloud/gophercloud/v2/testhelper"
Expand All @@ -21,6 +22,9 @@ func TestGroupCRUD(t *testing.T) {
client, err := clients.NewNetworkV2Client()
th.AssertNoErr(t, err)

// Skip these tests if we don't have the required extension
networking.RequireNeutronExtension(t, client, "fwaas_v2")

createdGroup, err := CreateGroup(t, client)
th.AssertNoErr(t, err)
defer DeleteGroup(t, client, createdGroup.ID)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"testing"

"github.com/gophercloud/gophercloud/v2/internal/acceptance/clients"
networking "github.com/gophercloud/gophercloud/v2/internal/acceptance/openstack/networking/v2"
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/fwaas_v2/policies"
th "github.com/gophercloud/gophercloud/v2/testhelper"
Expand All @@ -21,6 +22,9 @@ func TestPolicyCRUD(t *testing.T) {
client, err := clients.NewNetworkV2Client()
th.AssertNoErr(t, err)

// Skip these tests if we don't have the required extension
networking.RequireNeutronExtension(t, client, "fwaas_v2")

// Create First Rule. This will be used as part of the Policy creation
rule, err := CreateRule(t, client)
th.AssertNoErr(t, err)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"testing"

"github.com/gophercloud/gophercloud/v2/internal/acceptance/clients"
networking "github.com/gophercloud/gophercloud/v2/internal/acceptance/openstack/networking/v2"
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/fwaas_v2/rules"
th "github.com/gophercloud/gophercloud/v2/testhelper"
Expand All @@ -23,6 +24,9 @@ func TestRuleCRUD(t *testing.T) {
client, err := clients.NewNetworkV2Client()
th.AssertNoErr(t, err)

// Skip these tests if we don't have the required extension
networking.RequireNeutronExtension(t, client, "fwaas_v2")

rule, err := CreateRule(t, client)
th.AssertNoErr(t, err)
defer DeleteRule(t, client, rule.ID)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,8 @@ import (
"testing"

"github.com/gophercloud/gophercloud/v2/internal/acceptance/clients"
networking "github.com/gophercloud/gophercloud/v2/internal/acceptance/openstack/networking/v2"
v2 "github.com/gophercloud/gophercloud/v2/internal/acceptance/openstack/networking/v2"
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
"github.com/gophercloud/gophercloud/v2/openstack/common/extensions"
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/agents"
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/layer3/routers"
th "github.com/gophercloud/gophercloud/v2/testhelper"
Expand All @@ -20,18 +19,16 @@ func TestLayer3RouterScheduling(t *testing.T) {
client, err := clients.NewNetworkV2Client()
th.AssertNoErr(t, err)

_, err = extensions.Get(context.TODO(), client, "l3_agent_scheduler").Extract()
if err != nil {
t.Skip("Extension l3_agent_scheduler not present")
}
// Skip these tests if we don't have the required extension
v2.RequireNeutronExtension(t, client, "l3_agent_scheduler")

network, err := networking.CreateNetwork(t, client)
network, err := v2.CreateNetwork(t, client)
th.AssertNoErr(t, err)
defer networking.DeleteNetwork(t, client, network.ID)
defer v2.DeleteNetwork(t, client, network.ID)

subnet, err := networking.CreateSubnet(t, client, network.ID)
subnet, err := v2.CreateSubnet(t, client, network.ID)
th.AssertNoErr(t, err)
defer networking.DeleteSubnet(t, client, subnet.ID)
defer v2.DeleteSubnet(t, client, subnet.ID)

router, err := CreateRouter(t, client, network.ID)
th.AssertNoErr(t, err)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,8 @@ func TestMTUNetworkCRUDL(t *testing.T) {
client, err := clients.NewNetworkV2Client()
th.AssertNoErr(t, err)

extension, err := extensions.Get(context.TODO(), client, "net-mtu").Extract()
if err != nil {
t.Skip("This test requires net-mtu Neutron extension")
}
tools.PrintResource(t, extension)
// Skip these tests if we don't have the required extension
networking.RequireNeutronExtension(t, client, "net-mtu")

mtuWritable, _ := extensions.Get(context.TODO(), client, "net-mtu-writable").Extract()
tools.PrintResource(t, mtuWritable)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import (
"testing"

"github.com/gophercloud/gophercloud/v2/internal/acceptance/clients"
v2 "github.com/gophercloud/gophercloud/v2/internal/acceptance/openstack/networking/v2"
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
"github.com/gophercloud/gophercloud/v2/openstack/common/extensions"
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/qos/policies"
th "github.com/gophercloud/gophercloud/v2/testhelper"
)
Expand All @@ -18,11 +18,8 @@ func TestPoliciesCRUD(t *testing.T) {
client, err := clients.NewNetworkV2Client()
th.AssertNoErr(t, err)

extension, err := extensions.Get(context.TODO(), client, "qos").Extract()
if err != nil {
t.Skip("This test requires qos Neutron extension")
}
tools.PrintResource(t, extension)
// Skip these tests if we don't have the required extension
v2.RequireNeutronExtension(t, client, "qos")

// Create a QoS policy.
policy, err := CreateQoSPolicy(t, client)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ import (
"testing"

"github.com/gophercloud/gophercloud/v2/internal/acceptance/clients"
v2 "github.com/gophercloud/gophercloud/v2/internal/acceptance/openstack/networking/v2"
accpolicies "github.com/gophercloud/gophercloud/v2/internal/acceptance/openstack/networking/v2/extensions/qos/policies"
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
"github.com/gophercloud/gophercloud/v2/openstack/common/extensions"
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/qos/policies"
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/qos/rules"
th "github.com/gophercloud/gophercloud/v2/testhelper"
Expand All @@ -17,11 +17,8 @@ func TestBandwidthLimitRulesCRUD(t *testing.T) {
client, err := clients.NewNetworkV2Client()
th.AssertNoErr(t, err)

extension, err := extensions.Get(context.TODO(), client, "qos").Extract()
if err != nil {
t.Skip("This test requires qos Neutron extension")
}
tools.PrintResource(t, extension)
// Skip these tests if we don't have the required extension
v2.RequireNeutronExtension(t, client, "qos")

// Create a QoS policy
policy, err := accpolicies.CreateQoSPolicy(t, client)
Expand Down Expand Up @@ -66,11 +63,8 @@ func TestDSCPMarkingRulesCRUD(t *testing.T) {
client, err := clients.NewNetworkV2Client()
th.AssertNoErr(t, err)

extension, err := extensions.Get(context.TODO(), client, "qos").Extract()
if err != nil {
t.Skip("This test requires qos Neutron extension")
}
tools.PrintResource(t, extension)
// Skip these tests if we don't have the required extension
v2.RequireNeutronExtension(t, client, "qos")

// Create a QoS policy
policy, err := accpolicies.CreateQoSPolicy(t, client)
Expand Down Expand Up @@ -115,11 +109,8 @@ func TestMinimumBandwidthRulesCRUD(t *testing.T) {
client, err := clients.NewNetworkV2Client()
th.AssertNoErr(t, err)

extension, err := extensions.Get(context.TODO(), client, "qos").Extract()
if err != nil {
t.Skip("This test requires qos Neutron extension")
}
tools.PrintResource(t, extension)
// Skip these tests if we don't have the required extension
v2.RequireNeutronExtension(t, client, "qos")

// Create a QoS policy
policy, err := accpolicies.CreateQoSPolicy(t, client)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import (
"testing"

"github.com/gophercloud/gophercloud/v2/internal/acceptance/clients"
networking "github.com/gophercloud/gophercloud/v2/internal/acceptance/openstack/networking/v2"
"github.com/gophercloud/gophercloud/v2/internal/acceptance/tools"
"github.com/gophercloud/gophercloud/v2/openstack/common/extensions"
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/qos/ruletypes"
)

Expand All @@ -17,11 +17,8 @@ func TestRuleTypes(t *testing.T) {
return
}

extension, err := extensions.Get(context.TODO(), client, "qos").Extract()
if err != nil {
t.Skip("This test requires qos Neutron extension")
}
tools.PrintResource(t, extension)
// Skip these tests if we don't have the required extension
networking.RequireNeutronExtension(t, client, "qos")

page, err := ruletypes.ListRuleTypes(client).AllPages(context.TODO())
if err != nil {
Expand Down

0 comments on commit e15d1af

Please sign in to comment.