mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 03:41:45 +00:00
Merge pull request #63989 from MrHohn/gce-security-policy
Automatic merge from submit-queue (batch tested with PRs 63569, 63918, 63980, 63295, 63989). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. GCE provider: add wrapper for security policy **What this PR does / why we need it**: Generated mock interface for beta backend service and security policy as well. **Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*: Fixes #NONE **Special notes for your reviewer**: /assign @nicksardo **Release note**: ```release-note NONE ```
This commit is contained in:
commit
77a08ee2d7
@ -109,4 +109,9 @@ limitations under the License.
|
|||||||
// func (gce *GCEInstanceGroups) MyMethod() {
|
// func (gce *GCEInstanceGroups) MyMethod() {
|
||||||
// // Custom implementation.
|
// // Custom implementation.
|
||||||
// }
|
// }
|
||||||
|
//
|
||||||
|
// Update generated codes
|
||||||
|
//
|
||||||
|
// Run hack/update-cloudprovider-gce.sh to update the generated codes.
|
||||||
|
//
|
||||||
package cloud
|
package cloud
|
||||||
|
@ -43,6 +43,7 @@ type Cloud interface {
|
|||||||
BetaAddresses() BetaAddresses
|
BetaAddresses() BetaAddresses
|
||||||
GlobalAddresses() GlobalAddresses
|
GlobalAddresses() GlobalAddresses
|
||||||
BackendServices() BackendServices
|
BackendServices() BackendServices
|
||||||
|
BetaBackendServices() BetaBackendServices
|
||||||
AlphaBackendServices() AlphaBackendServices
|
AlphaBackendServices() AlphaBackendServices
|
||||||
RegionBackendServices() RegionBackendServices
|
RegionBackendServices() RegionBackendServices
|
||||||
AlphaRegionBackendServices() AlphaRegionBackendServices
|
AlphaRegionBackendServices() AlphaRegionBackendServices
|
||||||
@ -65,6 +66,7 @@ type Cloud interface {
|
|||||||
Projects() Projects
|
Projects() Projects
|
||||||
Regions() Regions
|
Regions() Regions
|
||||||
Routes() Routes
|
Routes() Routes
|
||||||
|
BetaSecurityPolicies() BetaSecurityPolicies
|
||||||
SslCertificates() SslCertificates
|
SslCertificates() SslCertificates
|
||||||
TargetHttpProxies() TargetHttpProxies
|
TargetHttpProxies() TargetHttpProxies
|
||||||
TargetHttpsProxies() TargetHttpsProxies
|
TargetHttpsProxies() TargetHttpsProxies
|
||||||
@ -81,6 +83,7 @@ func NewGCE(s *Service) *GCE {
|
|||||||
gceBetaAddresses: &GCEBetaAddresses{s},
|
gceBetaAddresses: &GCEBetaAddresses{s},
|
||||||
gceGlobalAddresses: &GCEGlobalAddresses{s},
|
gceGlobalAddresses: &GCEGlobalAddresses{s},
|
||||||
gceBackendServices: &GCEBackendServices{s},
|
gceBackendServices: &GCEBackendServices{s},
|
||||||
|
gceBetaBackendServices: &GCEBetaBackendServices{s},
|
||||||
gceAlphaBackendServices: &GCEAlphaBackendServices{s},
|
gceAlphaBackendServices: &GCEAlphaBackendServices{s},
|
||||||
gceRegionBackendServices: &GCERegionBackendServices{s},
|
gceRegionBackendServices: &GCERegionBackendServices{s},
|
||||||
gceAlphaRegionBackendServices: &GCEAlphaRegionBackendServices{s},
|
gceAlphaRegionBackendServices: &GCEAlphaRegionBackendServices{s},
|
||||||
@ -103,6 +106,7 @@ func NewGCE(s *Service) *GCE {
|
|||||||
gceProjects: &GCEProjects{s},
|
gceProjects: &GCEProjects{s},
|
||||||
gceRegions: &GCERegions{s},
|
gceRegions: &GCERegions{s},
|
||||||
gceRoutes: &GCERoutes{s},
|
gceRoutes: &GCERoutes{s},
|
||||||
|
gceBetaSecurityPolicies: &GCEBetaSecurityPolicies{s},
|
||||||
gceSslCertificates: &GCESslCertificates{s},
|
gceSslCertificates: &GCESslCertificates{s},
|
||||||
gceTargetHttpProxies: &GCETargetHttpProxies{s},
|
gceTargetHttpProxies: &GCETargetHttpProxies{s},
|
||||||
gceTargetHttpsProxies: &GCETargetHttpsProxies{s},
|
gceTargetHttpsProxies: &GCETargetHttpsProxies{s},
|
||||||
@ -123,6 +127,7 @@ type GCE struct {
|
|||||||
gceBetaAddresses *GCEBetaAddresses
|
gceBetaAddresses *GCEBetaAddresses
|
||||||
gceGlobalAddresses *GCEGlobalAddresses
|
gceGlobalAddresses *GCEGlobalAddresses
|
||||||
gceBackendServices *GCEBackendServices
|
gceBackendServices *GCEBackendServices
|
||||||
|
gceBetaBackendServices *GCEBetaBackendServices
|
||||||
gceAlphaBackendServices *GCEAlphaBackendServices
|
gceAlphaBackendServices *GCEAlphaBackendServices
|
||||||
gceRegionBackendServices *GCERegionBackendServices
|
gceRegionBackendServices *GCERegionBackendServices
|
||||||
gceAlphaRegionBackendServices *GCEAlphaRegionBackendServices
|
gceAlphaRegionBackendServices *GCEAlphaRegionBackendServices
|
||||||
@ -145,6 +150,7 @@ type GCE struct {
|
|||||||
gceProjects *GCEProjects
|
gceProjects *GCEProjects
|
||||||
gceRegions *GCERegions
|
gceRegions *GCERegions
|
||||||
gceRoutes *GCERoutes
|
gceRoutes *GCERoutes
|
||||||
|
gceBetaSecurityPolicies *GCEBetaSecurityPolicies
|
||||||
gceSslCertificates *GCESslCertificates
|
gceSslCertificates *GCESslCertificates
|
||||||
gceTargetHttpProxies *GCETargetHttpProxies
|
gceTargetHttpProxies *GCETargetHttpProxies
|
||||||
gceTargetHttpsProxies *GCETargetHttpsProxies
|
gceTargetHttpsProxies *GCETargetHttpsProxies
|
||||||
@ -178,6 +184,11 @@ func (gce *GCE) BackendServices() BackendServices {
|
|||||||
return gce.gceBackendServices
|
return gce.gceBackendServices
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BetaBackendServices returns the interface for the beta BackendServices.
|
||||||
|
func (gce *GCE) BetaBackendServices() BetaBackendServices {
|
||||||
|
return gce.gceBetaBackendServices
|
||||||
|
}
|
||||||
|
|
||||||
// AlphaBackendServices returns the interface for the alpha BackendServices.
|
// AlphaBackendServices returns the interface for the alpha BackendServices.
|
||||||
func (gce *GCE) AlphaBackendServices() AlphaBackendServices {
|
func (gce *GCE) AlphaBackendServices() AlphaBackendServices {
|
||||||
return gce.gceAlphaBackendServices
|
return gce.gceAlphaBackendServices
|
||||||
@ -288,6 +299,11 @@ func (gce *GCE) Routes() Routes {
|
|||||||
return gce.gceRoutes
|
return gce.gceRoutes
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BetaSecurityPolicies returns the interface for the beta SecurityPolicies.
|
||||||
|
func (gce *GCE) BetaSecurityPolicies() BetaSecurityPolicies {
|
||||||
|
return gce.gceBetaSecurityPolicies
|
||||||
|
}
|
||||||
|
|
||||||
// SslCertificates returns the interface for the ga SslCertificates.
|
// SslCertificates returns the interface for the ga SslCertificates.
|
||||||
func (gce *GCE) SslCertificates() SslCertificates {
|
func (gce *GCE) SslCertificates() SslCertificates {
|
||||||
return gce.gceSslCertificates
|
return gce.gceSslCertificates
|
||||||
@ -338,6 +354,7 @@ func NewMockGCE(projectRouter ProjectRouter) *MockGCE {
|
|||||||
mockRegionDisksObjs := map[meta.Key]*MockRegionDisksObj{}
|
mockRegionDisksObjs := map[meta.Key]*MockRegionDisksObj{}
|
||||||
mockRegionsObjs := map[meta.Key]*MockRegionsObj{}
|
mockRegionsObjs := map[meta.Key]*MockRegionsObj{}
|
||||||
mockRoutesObjs := map[meta.Key]*MockRoutesObj{}
|
mockRoutesObjs := map[meta.Key]*MockRoutesObj{}
|
||||||
|
mockSecurityPoliciesObjs := map[meta.Key]*MockSecurityPoliciesObj{}
|
||||||
mockSslCertificatesObjs := map[meta.Key]*MockSslCertificatesObj{}
|
mockSslCertificatesObjs := map[meta.Key]*MockSslCertificatesObj{}
|
||||||
mockTargetHttpProxiesObjs := map[meta.Key]*MockTargetHttpProxiesObj{}
|
mockTargetHttpProxiesObjs := map[meta.Key]*MockTargetHttpProxiesObj{}
|
||||||
mockTargetHttpsProxiesObjs := map[meta.Key]*MockTargetHttpsProxiesObj{}
|
mockTargetHttpsProxiesObjs := map[meta.Key]*MockTargetHttpsProxiesObj{}
|
||||||
@ -351,6 +368,7 @@ func NewMockGCE(projectRouter ProjectRouter) *MockGCE {
|
|||||||
MockBetaAddresses: NewMockBetaAddresses(projectRouter, mockAddressesObjs),
|
MockBetaAddresses: NewMockBetaAddresses(projectRouter, mockAddressesObjs),
|
||||||
MockGlobalAddresses: NewMockGlobalAddresses(projectRouter, mockGlobalAddressesObjs),
|
MockGlobalAddresses: NewMockGlobalAddresses(projectRouter, mockGlobalAddressesObjs),
|
||||||
MockBackendServices: NewMockBackendServices(projectRouter, mockBackendServicesObjs),
|
MockBackendServices: NewMockBackendServices(projectRouter, mockBackendServicesObjs),
|
||||||
|
MockBetaBackendServices: NewMockBetaBackendServices(projectRouter, mockBackendServicesObjs),
|
||||||
MockAlphaBackendServices: NewMockAlphaBackendServices(projectRouter, mockBackendServicesObjs),
|
MockAlphaBackendServices: NewMockAlphaBackendServices(projectRouter, mockBackendServicesObjs),
|
||||||
MockRegionBackendServices: NewMockRegionBackendServices(projectRouter, mockRegionBackendServicesObjs),
|
MockRegionBackendServices: NewMockRegionBackendServices(projectRouter, mockRegionBackendServicesObjs),
|
||||||
MockAlphaRegionBackendServices: NewMockAlphaRegionBackendServices(projectRouter, mockRegionBackendServicesObjs),
|
MockAlphaRegionBackendServices: NewMockAlphaRegionBackendServices(projectRouter, mockRegionBackendServicesObjs),
|
||||||
@ -373,6 +391,7 @@ func NewMockGCE(projectRouter ProjectRouter) *MockGCE {
|
|||||||
MockProjects: NewMockProjects(projectRouter, mockProjectsObjs),
|
MockProjects: NewMockProjects(projectRouter, mockProjectsObjs),
|
||||||
MockRegions: NewMockRegions(projectRouter, mockRegionsObjs),
|
MockRegions: NewMockRegions(projectRouter, mockRegionsObjs),
|
||||||
MockRoutes: NewMockRoutes(projectRouter, mockRoutesObjs),
|
MockRoutes: NewMockRoutes(projectRouter, mockRoutesObjs),
|
||||||
|
MockBetaSecurityPolicies: NewMockBetaSecurityPolicies(projectRouter, mockSecurityPoliciesObjs),
|
||||||
MockSslCertificates: NewMockSslCertificates(projectRouter, mockSslCertificatesObjs),
|
MockSslCertificates: NewMockSslCertificates(projectRouter, mockSslCertificatesObjs),
|
||||||
MockTargetHttpProxies: NewMockTargetHttpProxies(projectRouter, mockTargetHttpProxiesObjs),
|
MockTargetHttpProxies: NewMockTargetHttpProxies(projectRouter, mockTargetHttpProxiesObjs),
|
||||||
MockTargetHttpsProxies: NewMockTargetHttpsProxies(projectRouter, mockTargetHttpsProxiesObjs),
|
MockTargetHttpsProxies: NewMockTargetHttpsProxies(projectRouter, mockTargetHttpsProxiesObjs),
|
||||||
@ -393,6 +412,7 @@ type MockGCE struct {
|
|||||||
MockBetaAddresses *MockBetaAddresses
|
MockBetaAddresses *MockBetaAddresses
|
||||||
MockGlobalAddresses *MockGlobalAddresses
|
MockGlobalAddresses *MockGlobalAddresses
|
||||||
MockBackendServices *MockBackendServices
|
MockBackendServices *MockBackendServices
|
||||||
|
MockBetaBackendServices *MockBetaBackendServices
|
||||||
MockAlphaBackendServices *MockAlphaBackendServices
|
MockAlphaBackendServices *MockAlphaBackendServices
|
||||||
MockRegionBackendServices *MockRegionBackendServices
|
MockRegionBackendServices *MockRegionBackendServices
|
||||||
MockAlphaRegionBackendServices *MockAlphaRegionBackendServices
|
MockAlphaRegionBackendServices *MockAlphaRegionBackendServices
|
||||||
@ -415,6 +435,7 @@ type MockGCE struct {
|
|||||||
MockProjects *MockProjects
|
MockProjects *MockProjects
|
||||||
MockRegions *MockRegions
|
MockRegions *MockRegions
|
||||||
MockRoutes *MockRoutes
|
MockRoutes *MockRoutes
|
||||||
|
MockBetaSecurityPolicies *MockBetaSecurityPolicies
|
||||||
MockSslCertificates *MockSslCertificates
|
MockSslCertificates *MockSslCertificates
|
||||||
MockTargetHttpProxies *MockTargetHttpProxies
|
MockTargetHttpProxies *MockTargetHttpProxies
|
||||||
MockTargetHttpsProxies *MockTargetHttpsProxies
|
MockTargetHttpsProxies *MockTargetHttpsProxies
|
||||||
@ -448,6 +469,11 @@ func (mock *MockGCE) BackendServices() BackendServices {
|
|||||||
return mock.MockBackendServices
|
return mock.MockBackendServices
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BetaBackendServices returns the interface for the beta BackendServices.
|
||||||
|
func (mock *MockGCE) BetaBackendServices() BetaBackendServices {
|
||||||
|
return mock.MockBetaBackendServices
|
||||||
|
}
|
||||||
|
|
||||||
// AlphaBackendServices returns the interface for the alpha BackendServices.
|
// AlphaBackendServices returns the interface for the alpha BackendServices.
|
||||||
func (mock *MockGCE) AlphaBackendServices() AlphaBackendServices {
|
func (mock *MockGCE) AlphaBackendServices() AlphaBackendServices {
|
||||||
return mock.MockAlphaBackendServices
|
return mock.MockAlphaBackendServices
|
||||||
@ -558,6 +584,11 @@ func (mock *MockGCE) Routes() Routes {
|
|||||||
return mock.MockRoutes
|
return mock.MockRoutes
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BetaSecurityPolicies returns the interface for the beta SecurityPolicies.
|
||||||
|
func (mock *MockGCE) BetaSecurityPolicies() BetaSecurityPolicies {
|
||||||
|
return mock.MockBetaSecurityPolicies
|
||||||
|
}
|
||||||
|
|
||||||
// SslCertificates returns the interface for the ga SslCertificates.
|
// SslCertificates returns the interface for the ga SslCertificates.
|
||||||
func (mock *MockGCE) SslCertificates() SslCertificates {
|
func (mock *MockGCE) SslCertificates() SslCertificates {
|
||||||
return mock.MockSslCertificates
|
return mock.MockSslCertificates
|
||||||
@ -654,6 +685,19 @@ func (m *MockBackendServicesObj) ToAlpha() *alpha.BackendService {
|
|||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ToBeta retrieves the given version of the object.
|
||||||
|
func (m *MockBackendServicesObj) ToBeta() *beta.BackendService {
|
||||||
|
if ret, ok := m.Obj.(*beta.BackendService); ok {
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
// Convert the object via JSON copying to the type that was requested.
|
||||||
|
ret := &beta.BackendService{}
|
||||||
|
if err := copyViaJSON(ret, m.Obj); err != nil {
|
||||||
|
glog.Errorf("Could not convert %T to *beta.BackendService via JSON: %v", m.Obj, err)
|
||||||
|
}
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
// ToGA retrieves the given version of the object.
|
// ToGA retrieves the given version of the object.
|
||||||
func (m *MockBackendServicesObj) ToGA() *ga.BackendService {
|
func (m *MockBackendServicesObj) ToGA() *ga.BackendService {
|
||||||
if ret, ok := m.Obj.(*ga.BackendService); ok {
|
if ret, ok := m.Obj.(*ga.BackendService); ok {
|
||||||
@ -1065,6 +1109,26 @@ func (m *MockRoutesObj) ToGA() *ga.Route {
|
|||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MockSecurityPoliciesObj is used to store the various object versions in the shared
|
||||||
|
// map of mocked objects. This allows for multiple API versions to co-exist and
|
||||||
|
// share the same "view" of the objects in the backend.
|
||||||
|
type MockSecurityPoliciesObj struct {
|
||||||
|
Obj interface{}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ToBeta retrieves the given version of the object.
|
||||||
|
func (m *MockSecurityPoliciesObj) ToBeta() *beta.SecurityPolicy {
|
||||||
|
if ret, ok := m.Obj.(*beta.SecurityPolicy); ok {
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
// Convert the object via JSON copying to the type that was requested.
|
||||||
|
ret := &beta.SecurityPolicy{}
|
||||||
|
if err := copyViaJSON(ret, m.Obj); err != nil {
|
||||||
|
glog.Errorf("Could not convert %T to *beta.SecurityPolicy via JSON: %v", m.Obj, err)
|
||||||
|
}
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
// MockSslCertificatesObj is used to store the various object versions in the shared
|
// MockSslCertificatesObj is used to store the various object versions in the shared
|
||||||
// map of mocked objects. This allows for multiple API versions to co-exist and
|
// map of mocked objects. This allows for multiple API versions to co-exist and
|
||||||
// share the same "view" of the objects in the backend.
|
// share the same "view" of the objects in the backend.
|
||||||
@ -2975,6 +3039,381 @@ func (g *GCEBackendServices) Update(ctx context.Context, key *meta.Key, arg0 *ga
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BetaBackendServices is an interface that allows for mocking of BackendServices.
|
||||||
|
type BetaBackendServices interface {
|
||||||
|
Get(ctx context.Context, key *meta.Key) (*beta.BackendService, error)
|
||||||
|
List(ctx context.Context, fl *filter.F) ([]*beta.BackendService, error)
|
||||||
|
Insert(ctx context.Context, key *meta.Key, obj *beta.BackendService) error
|
||||||
|
Delete(ctx context.Context, key *meta.Key) error
|
||||||
|
SetSecurityPolicy(context.Context, *meta.Key, *beta.SecurityPolicyReference) error
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewMockBetaBackendServices returns a new mock for BackendServices.
|
||||||
|
func NewMockBetaBackendServices(pr ProjectRouter, objs map[meta.Key]*MockBackendServicesObj) *MockBetaBackendServices {
|
||||||
|
mock := &MockBetaBackendServices{
|
||||||
|
ProjectRouter: pr,
|
||||||
|
|
||||||
|
Objects: objs,
|
||||||
|
GetError: map[meta.Key]error{},
|
||||||
|
InsertError: map[meta.Key]error{},
|
||||||
|
DeleteError: map[meta.Key]error{},
|
||||||
|
}
|
||||||
|
return mock
|
||||||
|
}
|
||||||
|
|
||||||
|
// MockBetaBackendServices is the mock for BackendServices.
|
||||||
|
type MockBetaBackendServices struct {
|
||||||
|
Lock sync.Mutex
|
||||||
|
|
||||||
|
ProjectRouter ProjectRouter
|
||||||
|
|
||||||
|
// Objects maintained by the mock.
|
||||||
|
Objects map[meta.Key]*MockBackendServicesObj
|
||||||
|
|
||||||
|
// If an entry exists for the given key and operation, then the error
|
||||||
|
// will be returned instead of the operation.
|
||||||
|
GetError map[meta.Key]error
|
||||||
|
ListError *error
|
||||||
|
InsertError map[meta.Key]error
|
||||||
|
DeleteError map[meta.Key]error
|
||||||
|
|
||||||
|
// xxxHook allow you to intercept the standard processing of the mock in
|
||||||
|
// order to add your own logic. Return (true, _, _) to prevent the normal
|
||||||
|
// execution flow of the mock. Return (false, nil, nil) to continue with
|
||||||
|
// normal mock behavior/ after the hook function executes.
|
||||||
|
GetHook func(ctx context.Context, key *meta.Key, m *MockBetaBackendServices) (bool, *beta.BackendService, error)
|
||||||
|
ListHook func(ctx context.Context, fl *filter.F, m *MockBetaBackendServices) (bool, []*beta.BackendService, error)
|
||||||
|
InsertHook func(ctx context.Context, key *meta.Key, obj *beta.BackendService, m *MockBetaBackendServices) (bool, error)
|
||||||
|
DeleteHook func(ctx context.Context, key *meta.Key, m *MockBetaBackendServices) (bool, error)
|
||||||
|
SetSecurityPolicyHook func(context.Context, *meta.Key, *beta.SecurityPolicyReference, *MockBetaBackendServices) error
|
||||||
|
|
||||||
|
// X is extra state that can be used as part of the mock. Generated code
|
||||||
|
// will not use this field.
|
||||||
|
X interface{}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get returns the object from the mock.
|
||||||
|
func (m *MockBetaBackendServices) Get(ctx context.Context, key *meta.Key) (*beta.BackendService, error) {
|
||||||
|
if m.GetHook != nil {
|
||||||
|
if intercept, obj, err := m.GetHook(ctx, key, m); intercept {
|
||||||
|
glog.V(5).Infof("MockBetaBackendServices.Get(%v, %s) = %+v, %v", ctx, key, obj, err)
|
||||||
|
return obj, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !key.Valid() {
|
||||||
|
return nil, fmt.Errorf("invalid GCE key (%+v)", key)
|
||||||
|
}
|
||||||
|
|
||||||
|
m.Lock.Lock()
|
||||||
|
defer m.Lock.Unlock()
|
||||||
|
|
||||||
|
if err, ok := m.GetError[*key]; ok {
|
||||||
|
glog.V(5).Infof("MockBetaBackendServices.Get(%v, %s) = nil, %v", ctx, key, err)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if obj, ok := m.Objects[*key]; ok {
|
||||||
|
typedObj := obj.ToBeta()
|
||||||
|
glog.V(5).Infof("MockBetaBackendServices.Get(%v, %s) = %+v, nil", ctx, key, typedObj)
|
||||||
|
return typedObj, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
err := &googleapi.Error{
|
||||||
|
Code: http.StatusNotFound,
|
||||||
|
Message: fmt.Sprintf("MockBetaBackendServices %v not found", key),
|
||||||
|
}
|
||||||
|
glog.V(5).Infof("MockBetaBackendServices.Get(%v, %s) = nil, %v", ctx, key, err)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// List all of the objects in the mock.
|
||||||
|
func (m *MockBetaBackendServices) List(ctx context.Context, fl *filter.F) ([]*beta.BackendService, error) {
|
||||||
|
if m.ListHook != nil {
|
||||||
|
if intercept, objs, err := m.ListHook(ctx, fl, m); intercept {
|
||||||
|
glog.V(5).Infof("MockBetaBackendServices.List(%v, %v) = [%v items], %v", ctx, fl, len(objs), err)
|
||||||
|
return objs, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
m.Lock.Lock()
|
||||||
|
defer m.Lock.Unlock()
|
||||||
|
|
||||||
|
if m.ListError != nil {
|
||||||
|
err := *m.ListError
|
||||||
|
glog.V(5).Infof("MockBetaBackendServices.List(%v, %v) = nil, %v", ctx, fl, err)
|
||||||
|
|
||||||
|
return nil, *m.ListError
|
||||||
|
}
|
||||||
|
|
||||||
|
var objs []*beta.BackendService
|
||||||
|
for _, obj := range m.Objects {
|
||||||
|
if !fl.Match(obj.ToBeta()) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
objs = append(objs, obj.ToBeta())
|
||||||
|
}
|
||||||
|
|
||||||
|
glog.V(5).Infof("MockBetaBackendServices.List(%v, %v) = [%v items], nil", ctx, fl, len(objs))
|
||||||
|
return objs, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Insert is a mock for inserting/creating a new object.
|
||||||
|
func (m *MockBetaBackendServices) Insert(ctx context.Context, key *meta.Key, obj *beta.BackendService) error {
|
||||||
|
if m.InsertHook != nil {
|
||||||
|
if intercept, err := m.InsertHook(ctx, key, obj, m); intercept {
|
||||||
|
glog.V(5).Infof("MockBetaBackendServices.Insert(%v, %v, %+v) = %v", ctx, key, obj, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !key.Valid() {
|
||||||
|
return fmt.Errorf("invalid GCE key (%+v)", key)
|
||||||
|
}
|
||||||
|
|
||||||
|
m.Lock.Lock()
|
||||||
|
defer m.Lock.Unlock()
|
||||||
|
|
||||||
|
if err, ok := m.InsertError[*key]; ok {
|
||||||
|
glog.V(5).Infof("MockBetaBackendServices.Insert(%v, %v, %+v) = %v", ctx, key, obj, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if _, ok := m.Objects[*key]; ok {
|
||||||
|
err := &googleapi.Error{
|
||||||
|
Code: http.StatusConflict,
|
||||||
|
Message: fmt.Sprintf("MockBetaBackendServices %v exists", key),
|
||||||
|
}
|
||||||
|
glog.V(5).Infof("MockBetaBackendServices.Insert(%v, %v, %+v) = %v", ctx, key, obj, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
obj.Name = key.Name
|
||||||
|
projectID := m.ProjectRouter.ProjectID(ctx, "beta", "backendServices")
|
||||||
|
obj.SelfLink = SelfLink(meta.VersionBeta, projectID, "backendServices", key)
|
||||||
|
|
||||||
|
m.Objects[*key] = &MockBackendServicesObj{obj}
|
||||||
|
glog.V(5).Infof("MockBetaBackendServices.Insert(%v, %v, %+v) = nil", ctx, key, obj)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete is a mock for deleting the object.
|
||||||
|
func (m *MockBetaBackendServices) Delete(ctx context.Context, key *meta.Key) error {
|
||||||
|
if m.DeleteHook != nil {
|
||||||
|
if intercept, err := m.DeleteHook(ctx, key, m); intercept {
|
||||||
|
glog.V(5).Infof("MockBetaBackendServices.Delete(%v, %v) = %v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !key.Valid() {
|
||||||
|
return fmt.Errorf("invalid GCE key (%+v)", key)
|
||||||
|
}
|
||||||
|
|
||||||
|
m.Lock.Lock()
|
||||||
|
defer m.Lock.Unlock()
|
||||||
|
|
||||||
|
if err, ok := m.DeleteError[*key]; ok {
|
||||||
|
glog.V(5).Infof("MockBetaBackendServices.Delete(%v, %v) = %v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if _, ok := m.Objects[*key]; !ok {
|
||||||
|
err := &googleapi.Error{
|
||||||
|
Code: http.StatusNotFound,
|
||||||
|
Message: fmt.Sprintf("MockBetaBackendServices %v not found", key),
|
||||||
|
}
|
||||||
|
glog.V(5).Infof("MockBetaBackendServices.Delete(%v, %v) = %v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
delete(m.Objects, *key)
|
||||||
|
glog.V(5).Infof("MockBetaBackendServices.Delete(%v, %v) = nil", ctx, key)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Obj wraps the object for use in the mock.
|
||||||
|
func (m *MockBetaBackendServices) Obj(o *beta.BackendService) *MockBackendServicesObj {
|
||||||
|
return &MockBackendServicesObj{o}
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetSecurityPolicy is a mock for the corresponding method.
|
||||||
|
func (m *MockBetaBackendServices) SetSecurityPolicy(ctx context.Context, key *meta.Key, arg0 *beta.SecurityPolicyReference) error {
|
||||||
|
if m.SetSecurityPolicyHook != nil {
|
||||||
|
return m.SetSecurityPolicyHook(ctx, key, arg0, m)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GCEBetaBackendServices is a simplifying adapter for the GCE BackendServices.
|
||||||
|
type GCEBetaBackendServices struct {
|
||||||
|
s *Service
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the BackendService named by key.
|
||||||
|
func (g *GCEBetaBackendServices) Get(ctx context.Context, key *meta.Key) (*beta.BackendService, error) {
|
||||||
|
glog.V(5).Infof("GCEBetaBackendServices.Get(%v, %v): called", ctx, key)
|
||||||
|
|
||||||
|
if !key.Valid() {
|
||||||
|
glog.V(2).Infof("GCEBetaBackendServices.Get(%v, %v): key is invalid (%#v)", ctx, key, key)
|
||||||
|
return nil, fmt.Errorf("invalid GCE key (%#v)", key)
|
||||||
|
}
|
||||||
|
projectID := g.s.ProjectRouter.ProjectID(ctx, "beta", "BackendServices")
|
||||||
|
rk := &RateLimitKey{
|
||||||
|
ProjectID: projectID,
|
||||||
|
Operation: "Get",
|
||||||
|
Version: meta.Version("beta"),
|
||||||
|
Service: "BackendServices",
|
||||||
|
}
|
||||||
|
glog.V(5).Infof("GCEBetaBackendServices.Get(%v, %v): projectID = %v, rk = %+v", ctx, key, projectID, rk)
|
||||||
|
if err := g.s.RateLimiter.Accept(ctx, rk); err != nil {
|
||||||
|
glog.V(4).Infof("GCEBetaBackendServices.Get(%v, %v): RateLimiter error: %v", ctx, key, err)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
call := g.s.Beta.BackendServices.Get(projectID, key.Name)
|
||||||
|
call.Context(ctx)
|
||||||
|
v, err := call.Do()
|
||||||
|
glog.V(4).Infof("GCEBetaBackendServices.Get(%v, %v) = %+v, %v", ctx, key, v, err)
|
||||||
|
return v, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// List all BackendService objects.
|
||||||
|
func (g *GCEBetaBackendServices) List(ctx context.Context, fl *filter.F) ([]*beta.BackendService, error) {
|
||||||
|
glog.V(5).Infof("GCEBetaBackendServices.List(%v, %v) called", ctx, fl)
|
||||||
|
projectID := g.s.ProjectRouter.ProjectID(ctx, "beta", "BackendServices")
|
||||||
|
rk := &RateLimitKey{
|
||||||
|
ProjectID: projectID,
|
||||||
|
Operation: "List",
|
||||||
|
Version: meta.Version("beta"),
|
||||||
|
Service: "BackendServices",
|
||||||
|
}
|
||||||
|
if err := g.s.RateLimiter.Accept(ctx, rk); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
glog.V(5).Infof("GCEBetaBackendServices.List(%v, %v): projectID = %v, rk = %+v", ctx, fl, projectID, rk)
|
||||||
|
call := g.s.Beta.BackendServices.List(projectID)
|
||||||
|
if fl != filter.None {
|
||||||
|
call.Filter(fl.String())
|
||||||
|
}
|
||||||
|
var all []*beta.BackendService
|
||||||
|
f := func(l *beta.BackendServiceList) error {
|
||||||
|
glog.V(5).Infof("GCEBetaBackendServices.List(%v, ..., %v): page %+v", ctx, fl, l)
|
||||||
|
all = append(all, l.Items...)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if err := call.Pages(ctx, f); err != nil {
|
||||||
|
glog.V(4).Infof("GCEBetaBackendServices.List(%v, ..., %v) = %v, %v", ctx, fl, nil, err)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if glog.V(4) {
|
||||||
|
glog.V(4).Infof("GCEBetaBackendServices.List(%v, ..., %v) = [%v items], %v", ctx, fl, len(all), nil)
|
||||||
|
} else if glog.V(5) {
|
||||||
|
var asStr []string
|
||||||
|
for _, o := range all {
|
||||||
|
asStr = append(asStr, fmt.Sprintf("%+v", o))
|
||||||
|
}
|
||||||
|
glog.V(5).Infof("GCEBetaBackendServices.List(%v, ..., %v) = %v, %v", ctx, fl, asStr, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
return all, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Insert BackendService with key of value obj.
|
||||||
|
func (g *GCEBetaBackendServices) Insert(ctx context.Context, key *meta.Key, obj *beta.BackendService) error {
|
||||||
|
glog.V(5).Infof("GCEBetaBackendServices.Insert(%v, %v, %+v): called", ctx, key, obj)
|
||||||
|
if !key.Valid() {
|
||||||
|
glog.V(2).Infof("GCEBetaBackendServices.Insert(%v, %v, ...): key is invalid (%#v)", ctx, key, key)
|
||||||
|
return fmt.Errorf("invalid GCE key (%+v)", key)
|
||||||
|
}
|
||||||
|
projectID := g.s.ProjectRouter.ProjectID(ctx, "beta", "BackendServices")
|
||||||
|
rk := &RateLimitKey{
|
||||||
|
ProjectID: projectID,
|
||||||
|
Operation: "Insert",
|
||||||
|
Version: meta.Version("beta"),
|
||||||
|
Service: "BackendServices",
|
||||||
|
}
|
||||||
|
glog.V(5).Infof("GCEBetaBackendServices.Insert(%v, %v, ...): projectID = %v, rk = %+v", ctx, key, projectID, rk)
|
||||||
|
if err := g.s.RateLimiter.Accept(ctx, rk); err != nil {
|
||||||
|
glog.V(4).Infof("GCEBetaBackendServices.Insert(%v, %v, ...): RateLimiter error: %v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
obj.Name = key.Name
|
||||||
|
call := g.s.Beta.BackendServices.Insert(projectID, obj)
|
||||||
|
call.Context(ctx)
|
||||||
|
|
||||||
|
op, err := call.Do()
|
||||||
|
if err != nil {
|
||||||
|
glog.V(4).Infof("GCEBetaBackendServices.Insert(%v, %v, ...) = %+v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = g.s.WaitForCompletion(ctx, op)
|
||||||
|
glog.V(4).Infof("GCEBetaBackendServices.Insert(%v, %v, %+v) = %+v", ctx, key, obj, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete the BackendService referenced by key.
|
||||||
|
func (g *GCEBetaBackendServices) Delete(ctx context.Context, key *meta.Key) error {
|
||||||
|
glog.V(5).Infof("GCEBetaBackendServices.Delete(%v, %v): called", ctx, key)
|
||||||
|
if !key.Valid() {
|
||||||
|
glog.V(2).Infof("GCEBetaBackendServices.Delete(%v, %v): key is invalid (%#v)", ctx, key, key)
|
||||||
|
return fmt.Errorf("invalid GCE key (%+v)", key)
|
||||||
|
}
|
||||||
|
projectID := g.s.ProjectRouter.ProjectID(ctx, "beta", "BackendServices")
|
||||||
|
rk := &RateLimitKey{
|
||||||
|
ProjectID: projectID,
|
||||||
|
Operation: "Delete",
|
||||||
|
Version: meta.Version("beta"),
|
||||||
|
Service: "BackendServices",
|
||||||
|
}
|
||||||
|
glog.V(5).Infof("GCEBetaBackendServices.Delete(%v, %v): projectID = %v, rk = %+v", ctx, key, projectID, rk)
|
||||||
|
if err := g.s.RateLimiter.Accept(ctx, rk); err != nil {
|
||||||
|
glog.V(4).Infof("GCEBetaBackendServices.Delete(%v, %v): RateLimiter error: %v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
call := g.s.Beta.BackendServices.Delete(projectID, key.Name)
|
||||||
|
|
||||||
|
call.Context(ctx)
|
||||||
|
|
||||||
|
op, err := call.Do()
|
||||||
|
if err != nil {
|
||||||
|
glog.V(4).Infof("GCEBetaBackendServices.Delete(%v, %v) = %v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = g.s.WaitForCompletion(ctx, op)
|
||||||
|
glog.V(4).Infof("GCEBetaBackendServices.Delete(%v, %v) = %v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetSecurityPolicy is a method on GCEBetaBackendServices.
|
||||||
|
func (g *GCEBetaBackendServices) SetSecurityPolicy(ctx context.Context, key *meta.Key, arg0 *beta.SecurityPolicyReference) error {
|
||||||
|
glog.V(5).Infof("GCEBetaBackendServices.SetSecurityPolicy(%v, %v, ...): called", ctx, key)
|
||||||
|
|
||||||
|
if !key.Valid() {
|
||||||
|
glog.V(2).Infof("GCEBetaBackendServices.SetSecurityPolicy(%v, %v, ...): key is invalid (%#v)", ctx, key, key)
|
||||||
|
return fmt.Errorf("invalid GCE key (%+v)", key)
|
||||||
|
}
|
||||||
|
projectID := g.s.ProjectRouter.ProjectID(ctx, "beta", "BackendServices")
|
||||||
|
rk := &RateLimitKey{
|
||||||
|
ProjectID: projectID,
|
||||||
|
Operation: "SetSecurityPolicy",
|
||||||
|
Version: meta.Version("beta"),
|
||||||
|
Service: "BackendServices",
|
||||||
|
}
|
||||||
|
glog.V(5).Infof("GCEBetaBackendServices.SetSecurityPolicy(%v, %v, ...): projectID = %v, rk = %+v", ctx, key, projectID, rk)
|
||||||
|
|
||||||
|
if err := g.s.RateLimiter.Accept(ctx, rk); err != nil {
|
||||||
|
glog.V(4).Infof("GCEBetaBackendServices.SetSecurityPolicy(%v, %v, ...): RateLimiter error: %v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
call := g.s.Beta.BackendServices.SetSecurityPolicy(projectID, key.Name, arg0)
|
||||||
|
call.Context(ctx)
|
||||||
|
op, err := call.Do()
|
||||||
|
if err != nil {
|
||||||
|
glog.V(4).Infof("GCEBetaBackendServices.SetSecurityPolicy(%v, %v, ...) = %+v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
err = g.s.WaitForCompletion(ctx, op)
|
||||||
|
glog.V(4).Infof("GCEBetaBackendServices.SetSecurityPolicy(%v, %v, ...) = %+v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// AlphaBackendServices is an interface that allows for mocking of BackendServices.
|
// AlphaBackendServices is an interface that allows for mocking of BackendServices.
|
||||||
type AlphaBackendServices interface {
|
type AlphaBackendServices interface {
|
||||||
Get(ctx context.Context, key *meta.Key) (*alpha.BackendService, error)
|
Get(ctx context.Context, key *meta.Key) (*alpha.BackendService, error)
|
||||||
@ -11090,6 +11529,338 @@ func (g *GCERoutes) Delete(ctx context.Context, key *meta.Key) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BetaSecurityPolicies is an interface that allows for mocking of SecurityPolicies.
|
||||||
|
type BetaSecurityPolicies interface {
|
||||||
|
Get(ctx context.Context, key *meta.Key) (*beta.SecurityPolicy, error)
|
||||||
|
List(ctx context.Context, fl *filter.F) ([]*beta.SecurityPolicy, error)
|
||||||
|
Insert(ctx context.Context, key *meta.Key, obj *beta.SecurityPolicy) error
|
||||||
|
Delete(ctx context.Context, key *meta.Key) error
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewMockBetaSecurityPolicies returns a new mock for SecurityPolicies.
|
||||||
|
func NewMockBetaSecurityPolicies(pr ProjectRouter, objs map[meta.Key]*MockSecurityPoliciesObj) *MockBetaSecurityPolicies {
|
||||||
|
mock := &MockBetaSecurityPolicies{
|
||||||
|
ProjectRouter: pr,
|
||||||
|
|
||||||
|
Objects: objs,
|
||||||
|
GetError: map[meta.Key]error{},
|
||||||
|
InsertError: map[meta.Key]error{},
|
||||||
|
DeleteError: map[meta.Key]error{},
|
||||||
|
}
|
||||||
|
return mock
|
||||||
|
}
|
||||||
|
|
||||||
|
// MockBetaSecurityPolicies is the mock for SecurityPolicies.
|
||||||
|
type MockBetaSecurityPolicies struct {
|
||||||
|
Lock sync.Mutex
|
||||||
|
|
||||||
|
ProjectRouter ProjectRouter
|
||||||
|
|
||||||
|
// Objects maintained by the mock.
|
||||||
|
Objects map[meta.Key]*MockSecurityPoliciesObj
|
||||||
|
|
||||||
|
// If an entry exists for the given key and operation, then the error
|
||||||
|
// will be returned instead of the operation.
|
||||||
|
GetError map[meta.Key]error
|
||||||
|
ListError *error
|
||||||
|
InsertError map[meta.Key]error
|
||||||
|
DeleteError map[meta.Key]error
|
||||||
|
|
||||||
|
// xxxHook allow you to intercept the standard processing of the mock in
|
||||||
|
// order to add your own logic. Return (true, _, _) to prevent the normal
|
||||||
|
// execution flow of the mock. Return (false, nil, nil) to continue with
|
||||||
|
// normal mock behavior/ after the hook function executes.
|
||||||
|
GetHook func(ctx context.Context, key *meta.Key, m *MockBetaSecurityPolicies) (bool, *beta.SecurityPolicy, error)
|
||||||
|
ListHook func(ctx context.Context, fl *filter.F, m *MockBetaSecurityPolicies) (bool, []*beta.SecurityPolicy, error)
|
||||||
|
InsertHook func(ctx context.Context, key *meta.Key, obj *beta.SecurityPolicy, m *MockBetaSecurityPolicies) (bool, error)
|
||||||
|
DeleteHook func(ctx context.Context, key *meta.Key, m *MockBetaSecurityPolicies) (bool, error)
|
||||||
|
|
||||||
|
// X is extra state that can be used as part of the mock. Generated code
|
||||||
|
// will not use this field.
|
||||||
|
X interface{}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get returns the object from the mock.
|
||||||
|
func (m *MockBetaSecurityPolicies) Get(ctx context.Context, key *meta.Key) (*beta.SecurityPolicy, error) {
|
||||||
|
if m.GetHook != nil {
|
||||||
|
if intercept, obj, err := m.GetHook(ctx, key, m); intercept {
|
||||||
|
glog.V(5).Infof("MockBetaSecurityPolicies.Get(%v, %s) = %+v, %v", ctx, key, obj, err)
|
||||||
|
return obj, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !key.Valid() {
|
||||||
|
return nil, fmt.Errorf("invalid GCE key (%+v)", key)
|
||||||
|
}
|
||||||
|
|
||||||
|
m.Lock.Lock()
|
||||||
|
defer m.Lock.Unlock()
|
||||||
|
|
||||||
|
if err, ok := m.GetError[*key]; ok {
|
||||||
|
glog.V(5).Infof("MockBetaSecurityPolicies.Get(%v, %s) = nil, %v", ctx, key, err)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if obj, ok := m.Objects[*key]; ok {
|
||||||
|
typedObj := obj.ToBeta()
|
||||||
|
glog.V(5).Infof("MockBetaSecurityPolicies.Get(%v, %s) = %+v, nil", ctx, key, typedObj)
|
||||||
|
return typedObj, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
err := &googleapi.Error{
|
||||||
|
Code: http.StatusNotFound,
|
||||||
|
Message: fmt.Sprintf("MockBetaSecurityPolicies %v not found", key),
|
||||||
|
}
|
||||||
|
glog.V(5).Infof("MockBetaSecurityPolicies.Get(%v, %s) = nil, %v", ctx, key, err)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// List all of the objects in the mock.
|
||||||
|
func (m *MockBetaSecurityPolicies) List(ctx context.Context, fl *filter.F) ([]*beta.SecurityPolicy, error) {
|
||||||
|
if m.ListHook != nil {
|
||||||
|
if intercept, objs, err := m.ListHook(ctx, fl, m); intercept {
|
||||||
|
glog.V(5).Infof("MockBetaSecurityPolicies.List(%v, %v) = [%v items], %v", ctx, fl, len(objs), err)
|
||||||
|
return objs, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
m.Lock.Lock()
|
||||||
|
defer m.Lock.Unlock()
|
||||||
|
|
||||||
|
if m.ListError != nil {
|
||||||
|
err := *m.ListError
|
||||||
|
glog.V(5).Infof("MockBetaSecurityPolicies.List(%v, %v) = nil, %v", ctx, fl, err)
|
||||||
|
|
||||||
|
return nil, *m.ListError
|
||||||
|
}
|
||||||
|
|
||||||
|
var objs []*beta.SecurityPolicy
|
||||||
|
for _, obj := range m.Objects {
|
||||||
|
if !fl.Match(obj.ToBeta()) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
objs = append(objs, obj.ToBeta())
|
||||||
|
}
|
||||||
|
|
||||||
|
glog.V(5).Infof("MockBetaSecurityPolicies.List(%v, %v) = [%v items], nil", ctx, fl, len(objs))
|
||||||
|
return objs, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Insert is a mock for inserting/creating a new object.
|
||||||
|
func (m *MockBetaSecurityPolicies) Insert(ctx context.Context, key *meta.Key, obj *beta.SecurityPolicy) error {
|
||||||
|
if m.InsertHook != nil {
|
||||||
|
if intercept, err := m.InsertHook(ctx, key, obj, m); intercept {
|
||||||
|
glog.V(5).Infof("MockBetaSecurityPolicies.Insert(%v, %v, %+v) = %v", ctx, key, obj, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !key.Valid() {
|
||||||
|
return fmt.Errorf("invalid GCE key (%+v)", key)
|
||||||
|
}
|
||||||
|
|
||||||
|
m.Lock.Lock()
|
||||||
|
defer m.Lock.Unlock()
|
||||||
|
|
||||||
|
if err, ok := m.InsertError[*key]; ok {
|
||||||
|
glog.V(5).Infof("MockBetaSecurityPolicies.Insert(%v, %v, %+v) = %v", ctx, key, obj, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if _, ok := m.Objects[*key]; ok {
|
||||||
|
err := &googleapi.Error{
|
||||||
|
Code: http.StatusConflict,
|
||||||
|
Message: fmt.Sprintf("MockBetaSecurityPolicies %v exists", key),
|
||||||
|
}
|
||||||
|
glog.V(5).Infof("MockBetaSecurityPolicies.Insert(%v, %v, %+v) = %v", ctx, key, obj, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
obj.Name = key.Name
|
||||||
|
projectID := m.ProjectRouter.ProjectID(ctx, "beta", "securityPolicies")
|
||||||
|
obj.SelfLink = SelfLink(meta.VersionBeta, projectID, "securityPolicies", key)
|
||||||
|
|
||||||
|
m.Objects[*key] = &MockSecurityPoliciesObj{obj}
|
||||||
|
glog.V(5).Infof("MockBetaSecurityPolicies.Insert(%v, %v, %+v) = nil", ctx, key, obj)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete is a mock for deleting the object.
|
||||||
|
func (m *MockBetaSecurityPolicies) Delete(ctx context.Context, key *meta.Key) error {
|
||||||
|
if m.DeleteHook != nil {
|
||||||
|
if intercept, err := m.DeleteHook(ctx, key, m); intercept {
|
||||||
|
glog.V(5).Infof("MockBetaSecurityPolicies.Delete(%v, %v) = %v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !key.Valid() {
|
||||||
|
return fmt.Errorf("invalid GCE key (%+v)", key)
|
||||||
|
}
|
||||||
|
|
||||||
|
m.Lock.Lock()
|
||||||
|
defer m.Lock.Unlock()
|
||||||
|
|
||||||
|
if err, ok := m.DeleteError[*key]; ok {
|
||||||
|
glog.V(5).Infof("MockBetaSecurityPolicies.Delete(%v, %v) = %v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if _, ok := m.Objects[*key]; !ok {
|
||||||
|
err := &googleapi.Error{
|
||||||
|
Code: http.StatusNotFound,
|
||||||
|
Message: fmt.Sprintf("MockBetaSecurityPolicies %v not found", key),
|
||||||
|
}
|
||||||
|
glog.V(5).Infof("MockBetaSecurityPolicies.Delete(%v, %v) = %v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
delete(m.Objects, *key)
|
||||||
|
glog.V(5).Infof("MockBetaSecurityPolicies.Delete(%v, %v) = nil", ctx, key)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Obj wraps the object for use in the mock.
|
||||||
|
func (m *MockBetaSecurityPolicies) Obj(o *beta.SecurityPolicy) *MockSecurityPoliciesObj {
|
||||||
|
return &MockSecurityPoliciesObj{o}
|
||||||
|
}
|
||||||
|
|
||||||
|
// GCEBetaSecurityPolicies is a simplifying adapter for the GCE SecurityPolicies.
|
||||||
|
type GCEBetaSecurityPolicies struct {
|
||||||
|
s *Service
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the SecurityPolicy named by key.
|
||||||
|
func (g *GCEBetaSecurityPolicies) Get(ctx context.Context, key *meta.Key) (*beta.SecurityPolicy, error) {
|
||||||
|
glog.V(5).Infof("GCEBetaSecurityPolicies.Get(%v, %v): called", ctx, key)
|
||||||
|
|
||||||
|
if !key.Valid() {
|
||||||
|
glog.V(2).Infof("GCEBetaSecurityPolicies.Get(%v, %v): key is invalid (%#v)", ctx, key, key)
|
||||||
|
return nil, fmt.Errorf("invalid GCE key (%#v)", key)
|
||||||
|
}
|
||||||
|
projectID := g.s.ProjectRouter.ProjectID(ctx, "beta", "SecurityPolicies")
|
||||||
|
rk := &RateLimitKey{
|
||||||
|
ProjectID: projectID,
|
||||||
|
Operation: "Get",
|
||||||
|
Version: meta.Version("beta"),
|
||||||
|
Service: "SecurityPolicies",
|
||||||
|
}
|
||||||
|
glog.V(5).Infof("GCEBetaSecurityPolicies.Get(%v, %v): projectID = %v, rk = %+v", ctx, key, projectID, rk)
|
||||||
|
if err := g.s.RateLimiter.Accept(ctx, rk); err != nil {
|
||||||
|
glog.V(4).Infof("GCEBetaSecurityPolicies.Get(%v, %v): RateLimiter error: %v", ctx, key, err)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
call := g.s.Beta.SecurityPolicies.Get(projectID, key.Name)
|
||||||
|
call.Context(ctx)
|
||||||
|
v, err := call.Do()
|
||||||
|
glog.V(4).Infof("GCEBetaSecurityPolicies.Get(%v, %v) = %+v, %v", ctx, key, v, err)
|
||||||
|
return v, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// List all SecurityPolicy objects.
|
||||||
|
func (g *GCEBetaSecurityPolicies) List(ctx context.Context, fl *filter.F) ([]*beta.SecurityPolicy, error) {
|
||||||
|
glog.V(5).Infof("GCEBetaSecurityPolicies.List(%v, %v) called", ctx, fl)
|
||||||
|
projectID := g.s.ProjectRouter.ProjectID(ctx, "beta", "SecurityPolicies")
|
||||||
|
rk := &RateLimitKey{
|
||||||
|
ProjectID: projectID,
|
||||||
|
Operation: "List",
|
||||||
|
Version: meta.Version("beta"),
|
||||||
|
Service: "SecurityPolicies",
|
||||||
|
}
|
||||||
|
if err := g.s.RateLimiter.Accept(ctx, rk); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
glog.V(5).Infof("GCEBetaSecurityPolicies.List(%v, %v): projectID = %v, rk = %+v", ctx, fl, projectID, rk)
|
||||||
|
call := g.s.Beta.SecurityPolicies.List(projectID)
|
||||||
|
if fl != filter.None {
|
||||||
|
call.Filter(fl.String())
|
||||||
|
}
|
||||||
|
var all []*beta.SecurityPolicy
|
||||||
|
f := func(l *beta.SecurityPolicyList) error {
|
||||||
|
glog.V(5).Infof("GCEBetaSecurityPolicies.List(%v, ..., %v): page %+v", ctx, fl, l)
|
||||||
|
all = append(all, l.Items...)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if err := call.Pages(ctx, f); err != nil {
|
||||||
|
glog.V(4).Infof("GCEBetaSecurityPolicies.List(%v, ..., %v) = %v, %v", ctx, fl, nil, err)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if glog.V(4) {
|
||||||
|
glog.V(4).Infof("GCEBetaSecurityPolicies.List(%v, ..., %v) = [%v items], %v", ctx, fl, len(all), nil)
|
||||||
|
} else if glog.V(5) {
|
||||||
|
var asStr []string
|
||||||
|
for _, o := range all {
|
||||||
|
asStr = append(asStr, fmt.Sprintf("%+v", o))
|
||||||
|
}
|
||||||
|
glog.V(5).Infof("GCEBetaSecurityPolicies.List(%v, ..., %v) = %v, %v", ctx, fl, asStr, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
return all, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Insert SecurityPolicy with key of value obj.
|
||||||
|
func (g *GCEBetaSecurityPolicies) Insert(ctx context.Context, key *meta.Key, obj *beta.SecurityPolicy) error {
|
||||||
|
glog.V(5).Infof("GCEBetaSecurityPolicies.Insert(%v, %v, %+v): called", ctx, key, obj)
|
||||||
|
if !key.Valid() {
|
||||||
|
glog.V(2).Infof("GCEBetaSecurityPolicies.Insert(%v, %v, ...): key is invalid (%#v)", ctx, key, key)
|
||||||
|
return fmt.Errorf("invalid GCE key (%+v)", key)
|
||||||
|
}
|
||||||
|
projectID := g.s.ProjectRouter.ProjectID(ctx, "beta", "SecurityPolicies")
|
||||||
|
rk := &RateLimitKey{
|
||||||
|
ProjectID: projectID,
|
||||||
|
Operation: "Insert",
|
||||||
|
Version: meta.Version("beta"),
|
||||||
|
Service: "SecurityPolicies",
|
||||||
|
}
|
||||||
|
glog.V(5).Infof("GCEBetaSecurityPolicies.Insert(%v, %v, ...): projectID = %v, rk = %+v", ctx, key, projectID, rk)
|
||||||
|
if err := g.s.RateLimiter.Accept(ctx, rk); err != nil {
|
||||||
|
glog.V(4).Infof("GCEBetaSecurityPolicies.Insert(%v, %v, ...): RateLimiter error: %v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
obj.Name = key.Name
|
||||||
|
call := g.s.Beta.SecurityPolicies.Insert(projectID, obj)
|
||||||
|
call.Context(ctx)
|
||||||
|
|
||||||
|
op, err := call.Do()
|
||||||
|
if err != nil {
|
||||||
|
glog.V(4).Infof("GCEBetaSecurityPolicies.Insert(%v, %v, ...) = %+v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = g.s.WaitForCompletion(ctx, op)
|
||||||
|
glog.V(4).Infof("GCEBetaSecurityPolicies.Insert(%v, %v, %+v) = %+v", ctx, key, obj, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete the SecurityPolicy referenced by key.
|
||||||
|
func (g *GCEBetaSecurityPolicies) Delete(ctx context.Context, key *meta.Key) error {
|
||||||
|
glog.V(5).Infof("GCEBetaSecurityPolicies.Delete(%v, %v): called", ctx, key)
|
||||||
|
if !key.Valid() {
|
||||||
|
glog.V(2).Infof("GCEBetaSecurityPolicies.Delete(%v, %v): key is invalid (%#v)", ctx, key, key)
|
||||||
|
return fmt.Errorf("invalid GCE key (%+v)", key)
|
||||||
|
}
|
||||||
|
projectID := g.s.ProjectRouter.ProjectID(ctx, "beta", "SecurityPolicies")
|
||||||
|
rk := &RateLimitKey{
|
||||||
|
ProjectID: projectID,
|
||||||
|
Operation: "Delete",
|
||||||
|
Version: meta.Version("beta"),
|
||||||
|
Service: "SecurityPolicies",
|
||||||
|
}
|
||||||
|
glog.V(5).Infof("GCEBetaSecurityPolicies.Delete(%v, %v): projectID = %v, rk = %+v", ctx, key, projectID, rk)
|
||||||
|
if err := g.s.RateLimiter.Accept(ctx, rk); err != nil {
|
||||||
|
glog.V(4).Infof("GCEBetaSecurityPolicies.Delete(%v, %v): RateLimiter error: %v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
call := g.s.Beta.SecurityPolicies.Delete(projectID, key.Name)
|
||||||
|
|
||||||
|
call.Context(ctx)
|
||||||
|
|
||||||
|
op, err := call.Do()
|
||||||
|
if err != nil {
|
||||||
|
glog.V(4).Infof("GCEBetaSecurityPolicies.Delete(%v, %v) = %v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = g.s.WaitForCompletion(ctx, op)
|
||||||
|
glog.V(4).Infof("GCEBetaSecurityPolicies.Delete(%v, %v) = %v", ctx, key, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// SslCertificates is an interface that allows for mocking of SslCertificates.
|
// SslCertificates is an interface that allows for mocking of SslCertificates.
|
||||||
type SslCertificates interface {
|
type SslCertificates interface {
|
||||||
Get(ctx context.Context, key *meta.Key) (*ga.SslCertificate, error)
|
Get(ctx context.Context, key *meta.Key) (*ga.SslCertificate, error)
|
||||||
@ -13304,6 +14075,12 @@ func NewRoutesResourceID(project, name string) *ResourceID {
|
|||||||
return &ResourceID{project, "routes", key}
|
return &ResourceID{project, "routes", key}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NewSecurityPoliciesResourceID creates a ResourceID for the SecurityPolicies resource.
|
||||||
|
func NewSecurityPoliciesResourceID(project, name string) *ResourceID {
|
||||||
|
key := meta.GlobalKey(name)
|
||||||
|
return &ResourceID{project, "securityPolicies", key}
|
||||||
|
}
|
||||||
|
|
||||||
// NewSslCertificatesResourceID creates a ResourceID for the SslCertificates resource.
|
// NewSslCertificatesResourceID creates a ResourceID for the SslCertificates resource.
|
||||||
func NewSslCertificatesResourceID(project, name string) *ResourceID {
|
func NewSslCertificatesResourceID(project, name string) *ResourceID {
|
||||||
key := meta.GlobalKey(name)
|
key := meta.GlobalKey(name)
|
||||||
|
@ -179,6 +179,8 @@ func TestBackendServicesGroup(t *testing.T) {
|
|||||||
var key *meta.Key
|
var key *meta.Key
|
||||||
keyAlpha := meta.GlobalKey("key-alpha")
|
keyAlpha := meta.GlobalKey("key-alpha")
|
||||||
key = keyAlpha
|
key = keyAlpha
|
||||||
|
keyBeta := meta.GlobalKey("key-beta")
|
||||||
|
key = keyBeta
|
||||||
keyGA := meta.GlobalKey("key-ga")
|
keyGA := meta.GlobalKey("key-ga")
|
||||||
key = keyGA
|
key = keyGA
|
||||||
// Ignore unused variables.
|
// Ignore unused variables.
|
||||||
@ -188,6 +190,9 @@ func TestBackendServicesGroup(t *testing.T) {
|
|||||||
if _, err := mock.AlphaBackendServices().Get(ctx, key); err == nil {
|
if _, err := mock.AlphaBackendServices().Get(ctx, key); err == nil {
|
||||||
t.Errorf("AlphaBackendServices().Get(%v, %v) = _, nil; want error", ctx, key)
|
t.Errorf("AlphaBackendServices().Get(%v, %v) = _, nil; want error", ctx, key)
|
||||||
}
|
}
|
||||||
|
if _, err := mock.BetaBackendServices().Get(ctx, key); err == nil {
|
||||||
|
t.Errorf("BetaBackendServices().Get(%v, %v) = _, nil; want error", ctx, key)
|
||||||
|
}
|
||||||
if _, err := mock.BackendServices().Get(ctx, key); err == nil {
|
if _, err := mock.BackendServices().Get(ctx, key); err == nil {
|
||||||
t.Errorf("BackendServices().Get(%v, %v) = _, nil; want error", ctx, key)
|
t.Errorf("BackendServices().Get(%v, %v) = _, nil; want error", ctx, key)
|
||||||
}
|
}
|
||||||
@ -199,6 +204,12 @@ func TestBackendServicesGroup(t *testing.T) {
|
|||||||
t.Errorf("AlphaBackendServices().Insert(%v, %v, %v) = %v; want nil", ctx, keyAlpha, obj, err)
|
t.Errorf("AlphaBackendServices().Insert(%v, %v, %v) = %v; want nil", ctx, keyAlpha, obj, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
obj := &beta.BackendService{}
|
||||||
|
if err := mock.BetaBackendServices().Insert(ctx, keyBeta, obj); err != nil {
|
||||||
|
t.Errorf("BetaBackendServices().Insert(%v, %v, %v) = %v; want nil", ctx, keyBeta, obj, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
{
|
{
|
||||||
obj := &ga.BackendService{}
|
obj := &ga.BackendService{}
|
||||||
if err := mock.BackendServices().Insert(ctx, keyGA, obj); err != nil {
|
if err := mock.BackendServices().Insert(ctx, keyGA, obj); err != nil {
|
||||||
@ -210,15 +221,20 @@ func TestBackendServicesGroup(t *testing.T) {
|
|||||||
if obj, err := mock.AlphaBackendServices().Get(ctx, key); err != nil {
|
if obj, err := mock.AlphaBackendServices().Get(ctx, key); err != nil {
|
||||||
t.Errorf("AlphaBackendServices().Get(%v, %v) = %v, %v; want nil", ctx, key, obj, err)
|
t.Errorf("AlphaBackendServices().Get(%v, %v) = %v, %v; want nil", ctx, key, obj, err)
|
||||||
}
|
}
|
||||||
|
if obj, err := mock.BetaBackendServices().Get(ctx, key); err != nil {
|
||||||
|
t.Errorf("BetaBackendServices().Get(%v, %v) = %v, %v; want nil", ctx, key, obj, err)
|
||||||
|
}
|
||||||
if obj, err := mock.BackendServices().Get(ctx, key); err != nil {
|
if obj, err := mock.BackendServices().Get(ctx, key); err != nil {
|
||||||
t.Errorf("BackendServices().Get(%v, %v) = %v, %v; want nil", ctx, key, obj, err)
|
t.Errorf("BackendServices().Get(%v, %v) = %v, %v; want nil", ctx, key, obj, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// List.
|
// List.
|
||||||
mock.MockAlphaBackendServices.Objects[*keyAlpha] = mock.MockAlphaBackendServices.Obj(&alpha.BackendService{Name: keyAlpha.Name})
|
mock.MockAlphaBackendServices.Objects[*keyAlpha] = mock.MockAlphaBackendServices.Obj(&alpha.BackendService{Name: keyAlpha.Name})
|
||||||
|
mock.MockBetaBackendServices.Objects[*keyBeta] = mock.MockBetaBackendServices.Obj(&beta.BackendService{Name: keyBeta.Name})
|
||||||
mock.MockBackendServices.Objects[*keyGA] = mock.MockBackendServices.Obj(&ga.BackendService{Name: keyGA.Name})
|
mock.MockBackendServices.Objects[*keyGA] = mock.MockBackendServices.Obj(&ga.BackendService{Name: keyGA.Name})
|
||||||
want := map[string]bool{
|
want := map[string]bool{
|
||||||
"key-alpha": true,
|
"key-alpha": true,
|
||||||
|
"key-beta": true,
|
||||||
"key-ga": true,
|
"key-ga": true,
|
||||||
}
|
}
|
||||||
_ = want // ignore unused variables.
|
_ = want // ignore unused variables.
|
||||||
@ -236,6 +252,20 @@ func TestBackendServicesGroup(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
objs, err := mock.BetaBackendServices().List(ctx, filter.None)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("BetaBackendServices().List(%v, %v, %v) = %v, %v; want _, nil", ctx, location, filter.None, objs, err)
|
||||||
|
} else {
|
||||||
|
got := map[string]bool{}
|
||||||
|
for _, obj := range objs {
|
||||||
|
got[obj.Name] = true
|
||||||
|
}
|
||||||
|
if !reflect.DeepEqual(got, want) {
|
||||||
|
t.Errorf("AlphaBackendServices().List(); got %+v, want %+v", got, want)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
{
|
{
|
||||||
objs, err := mock.BackendServices().List(ctx, filter.None)
|
objs, err := mock.BackendServices().List(ctx, filter.None)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -255,6 +285,9 @@ func TestBackendServicesGroup(t *testing.T) {
|
|||||||
if err := mock.AlphaBackendServices().Delete(ctx, keyAlpha); err != nil {
|
if err := mock.AlphaBackendServices().Delete(ctx, keyAlpha); err != nil {
|
||||||
t.Errorf("AlphaBackendServices().Delete(%v, %v) = %v; want nil", ctx, keyAlpha, err)
|
t.Errorf("AlphaBackendServices().Delete(%v, %v) = %v; want nil", ctx, keyAlpha, err)
|
||||||
}
|
}
|
||||||
|
if err := mock.BetaBackendServices().Delete(ctx, keyBeta); err != nil {
|
||||||
|
t.Errorf("BetaBackendServices().Delete(%v, %v) = %v; want nil", ctx, keyBeta, err)
|
||||||
|
}
|
||||||
if err := mock.BackendServices().Delete(ctx, keyGA); err != nil {
|
if err := mock.BackendServices().Delete(ctx, keyGA); err != nil {
|
||||||
t.Errorf("BackendServices().Delete(%v, %v) = %v; want nil", ctx, keyGA, err)
|
t.Errorf("BackendServices().Delete(%v, %v) = %v; want nil", ctx, keyGA, err)
|
||||||
}
|
}
|
||||||
@ -263,6 +296,9 @@ func TestBackendServicesGroup(t *testing.T) {
|
|||||||
if err := mock.AlphaBackendServices().Delete(ctx, keyAlpha); err == nil {
|
if err := mock.AlphaBackendServices().Delete(ctx, keyAlpha); err == nil {
|
||||||
t.Errorf("AlphaBackendServices().Delete(%v, %v) = nil; want error", ctx, keyAlpha)
|
t.Errorf("AlphaBackendServices().Delete(%v, %v) = nil; want error", ctx, keyAlpha)
|
||||||
}
|
}
|
||||||
|
if err := mock.BetaBackendServices().Delete(ctx, keyBeta); err == nil {
|
||||||
|
t.Errorf("BetaBackendServices().Delete(%v, %v) = nil; want error", ctx, keyBeta)
|
||||||
|
}
|
||||||
if err := mock.BackendServices().Delete(ctx, keyGA); err == nil {
|
if err := mock.BackendServices().Delete(ctx, keyGA); err == nil {
|
||||||
t.Errorf("BackendServices().Delete(%v, %v) = nil; want error", ctx, keyGA)
|
t.Errorf("BackendServices().Delete(%v, %v) = nil; want error", ctx, keyGA)
|
||||||
}
|
}
|
||||||
@ -1445,6 +1481,69 @@ func TestRoutesGroup(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSecurityPoliciesGroup(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
ctx := context.Background()
|
||||||
|
pr := &SingleProjectRouter{"mock-project"}
|
||||||
|
mock := NewMockGCE(pr)
|
||||||
|
|
||||||
|
var key *meta.Key
|
||||||
|
keyBeta := meta.GlobalKey("key-beta")
|
||||||
|
key = keyBeta
|
||||||
|
// Ignore unused variables.
|
||||||
|
_, _, _ = ctx, mock, key
|
||||||
|
|
||||||
|
// Get not found.
|
||||||
|
if _, err := mock.BetaSecurityPolicies().Get(ctx, key); err == nil {
|
||||||
|
t.Errorf("BetaSecurityPolicies().Get(%v, %v) = _, nil; want error", ctx, key)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Insert.
|
||||||
|
{
|
||||||
|
obj := &beta.SecurityPolicy{}
|
||||||
|
if err := mock.BetaSecurityPolicies().Insert(ctx, keyBeta, obj); err != nil {
|
||||||
|
t.Errorf("BetaSecurityPolicies().Insert(%v, %v, %v) = %v; want nil", ctx, keyBeta, obj, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get across versions.
|
||||||
|
if obj, err := mock.BetaSecurityPolicies().Get(ctx, key); err != nil {
|
||||||
|
t.Errorf("BetaSecurityPolicies().Get(%v, %v) = %v, %v; want nil", ctx, key, obj, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// List.
|
||||||
|
mock.MockBetaSecurityPolicies.Objects[*keyBeta] = mock.MockBetaSecurityPolicies.Obj(&beta.SecurityPolicy{Name: keyBeta.Name})
|
||||||
|
want := map[string]bool{
|
||||||
|
"key-beta": true,
|
||||||
|
}
|
||||||
|
_ = want // ignore unused variables.
|
||||||
|
{
|
||||||
|
objs, err := mock.BetaSecurityPolicies().List(ctx, filter.None)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("BetaSecurityPolicies().List(%v, %v, %v) = %v, %v; want _, nil", ctx, location, filter.None, objs, err)
|
||||||
|
} else {
|
||||||
|
got := map[string]bool{}
|
||||||
|
for _, obj := range objs {
|
||||||
|
got[obj.Name] = true
|
||||||
|
}
|
||||||
|
if !reflect.DeepEqual(got, want) {
|
||||||
|
t.Errorf("AlphaSecurityPolicies().List(); got %+v, want %+v", got, want)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete across versions.
|
||||||
|
if err := mock.BetaSecurityPolicies().Delete(ctx, keyBeta); err != nil {
|
||||||
|
t.Errorf("BetaSecurityPolicies().Delete(%v, %v) = %v; want nil", ctx, keyBeta, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete not found.
|
||||||
|
if err := mock.BetaSecurityPolicies().Delete(ctx, keyBeta); err == nil {
|
||||||
|
t.Errorf("BetaSecurityPolicies().Delete(%v, %v) = nil; want error", ctx, keyBeta)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestSslCertificatesGroup(t *testing.T) {
|
func TestSslCertificatesGroup(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
@ -1830,6 +1929,7 @@ func TestResourceIDConversion(t *testing.T) {
|
|||||||
NewRegionDisksResourceID("some-project", "us-central1", "my-disks-resource"),
|
NewRegionDisksResourceID("some-project", "us-central1", "my-disks-resource"),
|
||||||
NewRegionsResourceID("some-project", "my-regions-resource"),
|
NewRegionsResourceID("some-project", "my-regions-resource"),
|
||||||
NewRoutesResourceID("some-project", "my-routes-resource"),
|
NewRoutesResourceID("some-project", "my-routes-resource"),
|
||||||
|
NewSecurityPoliciesResourceID("some-project", "my-securityPolicies-resource"),
|
||||||
NewSslCertificatesResourceID("some-project", "my-sslCertificates-resource"),
|
NewSslCertificatesResourceID("some-project", "my-sslCertificates-resource"),
|
||||||
NewTargetHttpProxiesResourceID("some-project", "my-targetHttpProxies-resource"),
|
NewTargetHttpProxiesResourceID("some-project", "my-targetHttpProxies-resource"),
|
||||||
NewTargetHttpsProxiesResourceID("some-project", "my-targetHttpsProxies-resource"),
|
NewTargetHttpsProxiesResourceID("some-project", "my-targetHttpsProxies-resource"),
|
||||||
|
@ -107,6 +107,17 @@ var AllServices = []*ServiceInfo{
|
|||||||
"Update",
|
"Update",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
Object: "BackendService",
|
||||||
|
Service: "BackendServices",
|
||||||
|
Resource: "backendServices",
|
||||||
|
version: VersionBeta,
|
||||||
|
keyType: Global,
|
||||||
|
serviceType: reflect.TypeOf(&beta.BackendServicesService{}),
|
||||||
|
additionalMethods: []string{
|
||||||
|
"SetSecurityPolicy",
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
Object: "BackendService",
|
Object: "BackendService",
|
||||||
Service: "BackendServices",
|
Service: "BackendServices",
|
||||||
@ -327,6 +338,14 @@ var AllServices = []*ServiceInfo{
|
|||||||
keyType: Global,
|
keyType: Global,
|
||||||
serviceType: reflect.TypeOf(&ga.RoutesService{}),
|
serviceType: reflect.TypeOf(&ga.RoutesService{}),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
Object: "SecurityPolicy",
|
||||||
|
Service: "SecurityPolicies",
|
||||||
|
Resource: "securityPolicies",
|
||||||
|
version: VersionBeta,
|
||||||
|
keyType: Global,
|
||||||
|
serviceType: reflect.TypeOf(&beta.SecurityPoliciesService{}),
|
||||||
|
},
|
||||||
{
|
{
|
||||||
Object: "SslCertificate",
|
Object: "SslCertificate",
|
||||||
Service: "SslCertificates",
|
Service: "SslCertificates",
|
||||||
|
@ -20,6 +20,7 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
|
|
||||||
computealpha "google.golang.org/api/compute/v0.alpha"
|
computealpha "google.golang.org/api/compute/v0.alpha"
|
||||||
|
computebeta "google.golang.org/api/compute/v0.beta"
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter"
|
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter"
|
||||||
@ -139,3 +140,10 @@ func (gce *GCECloud) GetRegionalBackendServiceHealth(name, region string, instan
|
|||||||
v, err := gce.c.RegionBackendServices().GetHealth(context.Background(), meta.RegionalKey(name, region), ref)
|
v, err := gce.c.RegionBackendServices().GetHealth(context.Background(), meta.RegionalKey(name, region), ref)
|
||||||
return v, mc.Observe(err)
|
return v, mc.Observe(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetSecurityPolicyForBetaGlobalBackendService sets the given
|
||||||
|
// SecurityPolicyReference for the BackendService identified by the given name.
|
||||||
|
func (gce *GCECloud) SetSecurityPolicyForBetaGlobalBackendService(backendServiceName string, securityPolicyReference *computebeta.SecurityPolicyReference) error {
|
||||||
|
mc := newBackendServiceMetricContextWithVersion("set_security_policy", "", computeBetaVersion)
|
||||||
|
return mc.Observe(gce.c.BetaBackendServices().SetSecurityPolicy(context.Background(), meta.GlobalKey(backendServiceName), securityPolicyReference))
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user