Update openstack.MockCloud to use cloudmock clients

This commit is contained in:
Peter Rifel 2020-08-09 21:10:08 -05:00
parent 230d870ad6
commit a852a9d3e0
No known key found for this signature in database
GPG Key ID: BC6469E5B16DB2B6
2 changed files with 37 additions and 13 deletions

View File

@ -26,6 +26,11 @@ go_library(
importpath = "k8s.io/kops/upup/pkg/fi/cloudup/openstack", importpath = "k8s.io/kops/upup/pkg/fi/cloudup/openstack",
visibility = ["//visibility:public"], visibility = ["//visibility:public"],
deps = [ deps = [
"//cloudmock/openstack/mockblockstorage:go_default_library",
"//cloudmock/openstack/mockcompute:go_default_library",
"//cloudmock/openstack/mockdns:go_default_library",
"//cloudmock/openstack/mockloadbalancer:go_default_library",
"//cloudmock/openstack/mocknetworking:go_default_library",
"//dnsprovider/pkg/dnsprovider:go_default_library", "//dnsprovider/pkg/dnsprovider:go_default_library",
"//dnsprovider/pkg/dnsprovider/providers/openstack/designate:go_default_library", "//dnsprovider/pkg/dnsprovider/providers/openstack/designate:go_default_library",
"//pkg/apis/kops:go_default_library", "//pkg/apis/kops:go_default_library",

View File

@ -42,6 +42,11 @@ import (
"github.com/gophercloud/gophercloud/openstack/networking/v2/ports" "github.com/gophercloud/gophercloud/openstack/networking/v2/ports"
"github.com/gophercloud/gophercloud/openstack/networking/v2/subnets" "github.com/gophercloud/gophercloud/openstack/networking/v2/subnets"
v1 "k8s.io/api/core/v1" v1 "k8s.io/api/core/v1"
"k8s.io/kops/cloudmock/openstack/mockblockstorage"
"k8s.io/kops/cloudmock/openstack/mockcompute"
"k8s.io/kops/cloudmock/openstack/mockdns"
"k8s.io/kops/cloudmock/openstack/mockloadbalancer"
"k8s.io/kops/cloudmock/openstack/mocknetworking"
"k8s.io/kops/dnsprovider/pkg/dnsprovider" "k8s.io/kops/dnsprovider/pkg/dnsprovider"
dnsproviderdesignate "k8s.io/kops/dnsprovider/pkg/dnsprovider/providers/openstack/designate" dnsproviderdesignate "k8s.io/kops/dnsprovider/pkg/dnsprovider/providers/openstack/designate"
"k8s.io/kops/pkg/apis/kops" "k8s.io/kops/pkg/apis/kops"
@ -50,12 +55,12 @@ import (
) )
type MockCloud struct { type MockCloud struct {
MockCinderClient *gophercloud.ServiceClient MockCinderClient *mockblockstorage.MockClient
MockNeutronClient *gophercloud.ServiceClient MockNeutronClient *mocknetworking.MockClient
MockNovaClient *gophercloud.ServiceClient MockNovaClient *mockcompute.MockClient
MockDNSClient *gophercloud.ServiceClient MockDNSClient *mockdns.MockClient
MockLBClient *gophercloud.ServiceClient MockLBClient *mockloadbalancer.MockClient
MockGlanceClient *gophercloud.ServiceClient MockGlanceClient *mockcompute.MockClient
region string region string
tags map[string]string tags map[string]string
useOctavia bool useOctavia bool
@ -80,27 +85,41 @@ func BuildMockOpenstackCloud(region string) *MockCloud {
var _ fi.Cloud = (*MockCloud)(nil) var _ fi.Cloud = (*MockCloud)(nil)
func (c *MockCloud) ComputeClient() *gophercloud.ServiceClient { func (c *MockCloud) ComputeClient() *gophercloud.ServiceClient {
return c.MockNovaClient client := c.MockNovaClient.ServiceClient()
client.UserAgent.Prepend("compute")
return client
} }
func (c *MockCloud) BlockStorageClient() *gophercloud.ServiceClient { func (c *MockCloud) BlockStorageClient() *gophercloud.ServiceClient {
return c.MockCinderClient client := c.MockCinderClient.ServiceClient()
client.UserAgent.Prepend("blockstorage")
return client
} }
func (c *MockCloud) NetworkingClient() *gophercloud.ServiceClient { func (c *MockCloud) NetworkingClient() *gophercloud.ServiceClient {
return c.MockNeutronClient client := c.MockNeutronClient.ServiceClient()
client.UserAgent.Prepend("networking")
return client
} }
func (c *MockCloud) LoadBalancerClient() *gophercloud.ServiceClient { func (c *MockCloud) LoadBalancerClient() *gophercloud.ServiceClient {
return c.MockLBClient client := c.MockLBClient.ServiceClient()
client.UserAgent.Prepend("loadbalancer")
return client
} }
func (c *MockCloud) DNSClient() *gophercloud.ServiceClient { func (c *MockCloud) DNSClient() *gophercloud.ServiceClient {
return c.MockDNSClient client := c.MockDNSClient.ServiceClient()
client.UserAgent.Prepend("dns")
return client
} }
func (c *MockCloud) ImageClient() *gophercloud.ServiceClient { func (c *MockCloud) ImageClient() *gophercloud.ServiceClient {
return c.MockGlanceClient // Some compute endpoints implicitly call image endpoints
// so it is easiest to share the same mock client
client := c.MockNovaClient.ServiceClient()
client.UserAgent.Prepend("image")
return client
} }
func (c *MockCloud) DeleteGroup(g *cloudinstances.CloudInstanceGroup) error { func (c *MockCloud) DeleteGroup(g *cloudinstances.CloudInstanceGroup) error {
@ -127,7 +146,7 @@ func (c *MockCloud) DNS() (dnsprovider.Interface, error) {
if c.MockDNSClient == nil { if c.MockDNSClient == nil {
return nil, fmt.Errorf("MockDNS not set") return nil, fmt.Errorf("MockDNS not set")
} }
return dnsproviderdesignate.New(c.MockDNSClient), nil return dnsproviderdesignate.New(c.DNSClient()), nil
} }
func (c *MockCloud) FindVPCInfo(id string) (*fi.VPCInfo, error) { func (c *MockCloud) FindVPCInfo(id string) (*fi.VPCInfo, error) {