2022-09-05 03:06:08 -04:00
|
|
|
/*
|
|
|
|
Copyright (c) Edgeless Systems GmbH
|
|
|
|
|
|
|
|
SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
*/
|
|
|
|
|
2022-03-22 11:03:15 -04:00
|
|
|
package client
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
|
|
|
|
"github.com/googleapis/gax-go/v2"
|
|
|
|
"google.golang.org/api/iterator"
|
|
|
|
computepb "google.golang.org/genproto/googleapis/cloud/compute/v1"
|
|
|
|
iampb "google.golang.org/genproto/googleapis/iam/v1"
|
|
|
|
"google.golang.org/protobuf/proto"
|
|
|
|
)
|
|
|
|
|
|
|
|
type stubOperation struct {
|
|
|
|
*computepb.Operation
|
|
|
|
}
|
|
|
|
|
|
|
|
func (o *stubOperation) Proto() *computepb.Operation {
|
|
|
|
return o.Operation
|
|
|
|
}
|
|
|
|
|
|
|
|
type stubInstanceAPI struct {
|
|
|
|
listIterator *stubInstanceIterator
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubInstanceAPI) Close() error {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubInstanceAPI) List(ctx context.Context, req *computepb.ListInstancesRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) InstanceIterator {
|
|
|
|
return a.listIterator
|
|
|
|
}
|
|
|
|
|
|
|
|
type stubInstanceIterator struct {
|
|
|
|
instances []*computepb.Instance
|
|
|
|
nextErr error
|
|
|
|
|
|
|
|
internalCounter int
|
|
|
|
}
|
|
|
|
|
|
|
|
func (i *stubInstanceIterator) Next() (*computepb.Instance, error) {
|
|
|
|
if i.nextErr != nil {
|
|
|
|
return nil, i.nextErr
|
|
|
|
}
|
|
|
|
if i.internalCounter >= len(i.instances) {
|
|
|
|
i.internalCounter = 0
|
|
|
|
return nil, iterator.Done
|
|
|
|
}
|
|
|
|
resp := i.instances[i.internalCounter]
|
|
|
|
i.internalCounter++
|
|
|
|
return resp, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
type stubOperationZoneAPI struct {
|
|
|
|
waitErr error
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubOperationZoneAPI) Close() error {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubOperationZoneAPI) Wait(ctx context.Context, req *computepb.WaitZoneOperationRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) (*computepb.Operation, error) {
|
|
|
|
if a.waitErr != nil {
|
|
|
|
return nil, a.waitErr
|
|
|
|
}
|
|
|
|
return &computepb.Operation{
|
|
|
|
Status: computepb.Operation_DONE.Enum(),
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
type stubOperationRegionAPI struct {
|
|
|
|
waitErr error
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubOperationRegionAPI) Close() error {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubOperationRegionAPI) Wait(ctx context.Context, req *computepb.WaitRegionOperationRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) (*computepb.Operation, error) {
|
|
|
|
if a.waitErr != nil {
|
|
|
|
return nil, a.waitErr
|
|
|
|
}
|
|
|
|
return &computepb.Operation{
|
|
|
|
Status: computepb.Operation_DONE.Enum(),
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
type stubOperationGlobalAPI struct {
|
|
|
|
waitErr error
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubOperationGlobalAPI) Close() error {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubOperationGlobalAPI) Wait(ctx context.Context, req *computepb.WaitGlobalOperationRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) (*computepb.Operation, error) {
|
|
|
|
if a.waitErr != nil {
|
|
|
|
return nil, a.waitErr
|
|
|
|
}
|
|
|
|
return &computepb.Operation{
|
|
|
|
Status: computepb.Operation_DONE.Enum(),
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
type stubFirewallsAPI struct {
|
|
|
|
deleteErr error
|
|
|
|
insertErr error
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubFirewallsAPI) Close() error {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubFirewallsAPI) Delete(ctx context.Context, req *computepb.DeleteFirewallRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) (Operation, error) {
|
|
|
|
if a.deleteErr != nil {
|
|
|
|
return nil, a.deleteErr
|
|
|
|
}
|
|
|
|
return &stubOperation{
|
|
|
|
&computepb.Operation{
|
|
|
|
Name: proto.String("name"),
|
|
|
|
},
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubFirewallsAPI) Insert(ctx context.Context, req *computepb.InsertFirewallRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) (Operation, error) {
|
|
|
|
if a.insertErr != nil {
|
|
|
|
return nil, a.insertErr
|
|
|
|
}
|
|
|
|
return &stubOperation{
|
|
|
|
&computepb.Operation{
|
|
|
|
Name: proto.String("name"),
|
|
|
|
},
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
type stubNetworksAPI struct {
|
|
|
|
insertErr error
|
|
|
|
deleteErr error
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubNetworksAPI) Close() error {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubNetworksAPI) Insert(ctx context.Context, req *computepb.InsertNetworkRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) (Operation, error) {
|
|
|
|
if a.insertErr != nil {
|
|
|
|
return nil, a.insertErr
|
|
|
|
}
|
|
|
|
return &stubOperation{
|
|
|
|
&computepb.Operation{
|
|
|
|
Name: proto.String("name"),
|
|
|
|
},
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubNetworksAPI) Delete(ctx context.Context, req *computepb.DeleteNetworkRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) (Operation, error) {
|
|
|
|
if a.deleteErr != nil {
|
|
|
|
return nil, a.deleteErr
|
|
|
|
}
|
|
|
|
return &stubOperation{
|
|
|
|
&computepb.Operation{
|
|
|
|
Name: proto.String("name"),
|
|
|
|
},
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
type stubSubnetworksAPI struct {
|
|
|
|
insertErr error
|
|
|
|
deleteErr error
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubSubnetworksAPI) Close() error {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubSubnetworksAPI) Insert(ctx context.Context, req *computepb.InsertSubnetworkRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) (Operation, error) {
|
|
|
|
if a.insertErr != nil {
|
|
|
|
return nil, a.insertErr
|
|
|
|
}
|
|
|
|
return &stubOperation{
|
|
|
|
&computepb.Operation{
|
|
|
|
Name: proto.String("name"),
|
|
|
|
Region: proto.String("region"),
|
|
|
|
},
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubSubnetworksAPI) Delete(ctx context.Context, req *computepb.DeleteSubnetworkRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) (Operation, error) {
|
|
|
|
if a.deleteErr != nil {
|
|
|
|
return nil, a.deleteErr
|
|
|
|
}
|
|
|
|
return &stubOperation{
|
|
|
|
&computepb.Operation{
|
|
|
|
Name: proto.String("name"),
|
|
|
|
Region: proto.String("region"),
|
|
|
|
},
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
2022-06-09 16:26:36 -04:00
|
|
|
type stubBackendServicesAPI struct {
|
|
|
|
insertErr error
|
|
|
|
deleteErr error
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubBackendServicesAPI) Close() error {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubBackendServicesAPI) Insert(ctx context.Context, req *computepb.InsertRegionBackendServiceRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) (Operation, error) {
|
|
|
|
if a.insertErr != nil {
|
|
|
|
return nil, a.insertErr
|
|
|
|
}
|
|
|
|
return &stubOperation{
|
|
|
|
&computepb.Operation{
|
|
|
|
Name: proto.String("name"),
|
|
|
|
Region: proto.String("region"),
|
|
|
|
},
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubBackendServicesAPI) Delete(ctx context.Context, req *computepb.DeleteRegionBackendServiceRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) (Operation, error) {
|
|
|
|
if a.deleteErr != nil {
|
|
|
|
return nil, a.deleteErr
|
|
|
|
}
|
|
|
|
return &stubOperation{
|
|
|
|
&computepb.Operation{
|
|
|
|
Name: proto.String("name"),
|
|
|
|
Region: proto.String("region"),
|
|
|
|
},
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
type stubForwardingRulesAPI struct {
|
|
|
|
insertErr error
|
|
|
|
deleteErr error
|
|
|
|
getErr error
|
|
|
|
setLabelErr error
|
|
|
|
forwardingRule *computepb.ForwardingRule
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubForwardingRulesAPI) Close() error {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubForwardingRulesAPI) Insert(ctx context.Context, req *computepb.InsertForwardingRuleRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) (Operation, error) {
|
|
|
|
if a.insertErr != nil {
|
|
|
|
return nil, a.insertErr
|
|
|
|
}
|
|
|
|
return &stubOperation{
|
|
|
|
&computepb.Operation{
|
|
|
|
Name: proto.String("name"),
|
|
|
|
Region: proto.String("region"),
|
|
|
|
},
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubForwardingRulesAPI) Delete(ctx context.Context, req *computepb.DeleteForwardingRuleRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) (Operation, error) {
|
|
|
|
if a.deleteErr != nil {
|
|
|
|
return nil, a.deleteErr
|
|
|
|
}
|
|
|
|
return &stubOperation{
|
|
|
|
&computepb.Operation{
|
|
|
|
Name: proto.String("name"),
|
|
|
|
Region: proto.String("region"),
|
|
|
|
},
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubForwardingRulesAPI) Get(ctx context.Context, req *computepb.GetForwardingRuleRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) (*computepb.ForwardingRule, error) {
|
|
|
|
if a.getErr != nil {
|
|
|
|
return nil, a.getErr
|
|
|
|
}
|
|
|
|
return a.forwardingRule, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubForwardingRulesAPI) SetLabels(ctx context.Context, req *computepb.SetLabelsForwardingRuleRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) (Operation, error) {
|
|
|
|
if a.deleteErr != nil {
|
|
|
|
return nil, a.setLabelErr
|
|
|
|
}
|
|
|
|
return &stubOperation{
|
|
|
|
&computepb.Operation{
|
|
|
|
Name: proto.String("name"),
|
|
|
|
Region: proto.String("region"),
|
|
|
|
},
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
type stubHealthChecksAPI struct {
|
|
|
|
insertErr error
|
|
|
|
deleteErr error
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubHealthChecksAPI) Close() error {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubHealthChecksAPI) Insert(ctx context.Context, req *computepb.InsertRegionHealthCheckRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) (Operation, error) {
|
|
|
|
if a.insertErr != nil {
|
|
|
|
return nil, a.insertErr
|
|
|
|
}
|
|
|
|
return &stubOperation{
|
|
|
|
&computepb.Operation{
|
|
|
|
Name: proto.String("name"),
|
|
|
|
Region: proto.String("region"),
|
|
|
|
},
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubHealthChecksAPI) Delete(ctx context.Context, req *computepb.DeleteRegionHealthCheckRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) (Operation, error) {
|
|
|
|
if a.deleteErr != nil {
|
|
|
|
return nil, a.deleteErr
|
|
|
|
}
|
|
|
|
return &stubOperation{
|
|
|
|
&computepb.Operation{
|
|
|
|
Name: proto.String("name"),
|
|
|
|
Region: proto.String("region"),
|
|
|
|
},
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
2022-03-22 11:03:15 -04:00
|
|
|
type stubInstanceTemplateAPI struct {
|
|
|
|
deleteErr error
|
|
|
|
insertErr error
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubInstanceTemplateAPI) Close() error {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubInstanceTemplateAPI) Delete(ctx context.Context, req *computepb.DeleteInstanceTemplateRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) (Operation, error) {
|
|
|
|
if a.deleteErr != nil {
|
|
|
|
return nil, a.deleteErr
|
|
|
|
}
|
|
|
|
return &stubOperation{
|
|
|
|
&computepb.Operation{
|
|
|
|
Name: proto.String("name"),
|
|
|
|
},
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubInstanceTemplateAPI) Insert(ctx context.Context, req *computepb.InsertInstanceTemplateRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) (Operation, error) {
|
|
|
|
if a.insertErr != nil {
|
|
|
|
return nil, a.insertErr
|
|
|
|
}
|
|
|
|
return &stubOperation{
|
|
|
|
&computepb.Operation{
|
|
|
|
Name: proto.String("name"),
|
|
|
|
},
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
type stubInstanceGroupManagersAPI struct {
|
|
|
|
listIterator *stubManagedInstanceIterator
|
|
|
|
|
|
|
|
deleteErr error
|
|
|
|
insertErr error
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubInstanceGroupManagersAPI) Close() error {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubInstanceGroupManagersAPI) Delete(ctx context.Context, req *computepb.DeleteInstanceGroupManagerRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) (Operation, error) {
|
|
|
|
if a.deleteErr != nil {
|
|
|
|
return nil, a.deleteErr
|
|
|
|
}
|
|
|
|
return &stubOperation{
|
|
|
|
&computepb.Operation{
|
|
|
|
Zone: proto.String("zone"),
|
|
|
|
Name: proto.String("name"),
|
|
|
|
},
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubInstanceGroupManagersAPI) Insert(ctx context.Context, req *computepb.InsertInstanceGroupManagerRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) (Operation, error) {
|
|
|
|
if a.insertErr != nil {
|
|
|
|
return nil, a.insertErr
|
|
|
|
}
|
|
|
|
return &stubOperation{
|
|
|
|
&computepb.Operation{
|
|
|
|
Zone: proto.String("zone"),
|
|
|
|
Name: proto.String("name"),
|
|
|
|
},
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubInstanceGroupManagersAPI) ListManagedInstances(ctx context.Context, req *computepb.ListManagedInstancesInstanceGroupManagersRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) ManagedInstanceIterator {
|
|
|
|
return a.listIterator
|
|
|
|
}
|
|
|
|
|
|
|
|
type stubProjectsAPI struct {
|
|
|
|
getPolicyErr error
|
|
|
|
setPolicyErr error
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubProjectsAPI) Close() error {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubProjectsAPI) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) {
|
|
|
|
if a.getPolicyErr != nil {
|
|
|
|
return nil, a.getPolicyErr
|
|
|
|
}
|
|
|
|
return &iampb.Policy{
|
|
|
|
Version: 3,
|
|
|
|
Bindings: []*iampb.Binding{
|
|
|
|
{
|
|
|
|
Role: "role",
|
|
|
|
Members: []string{
|
|
|
|
"member",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
Etag: []byte("etag"),
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubProjectsAPI) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) {
|
|
|
|
if a.setPolicyErr != nil {
|
|
|
|
return nil, a.setPolicyErr
|
|
|
|
}
|
|
|
|
return &iampb.Policy{
|
|
|
|
Version: 3,
|
|
|
|
Bindings: []*iampb.Binding{
|
|
|
|
{
|
|
|
|
Role: "role",
|
|
|
|
Members: []string{
|
|
|
|
"member",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
Etag: []byte("etag"),
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
type stubManagedInstanceIterator struct {
|
|
|
|
instances []*computepb.ManagedInstance
|
|
|
|
nextErr error
|
|
|
|
|
|
|
|
internalCounter int
|
|
|
|
}
|
|
|
|
|
|
|
|
func (i *stubManagedInstanceIterator) Next() (*computepb.ManagedInstance, error) {
|
|
|
|
if i.nextErr != nil {
|
|
|
|
return nil, i.nextErr
|
|
|
|
}
|
|
|
|
if i.internalCounter >= len(i.instances) {
|
|
|
|
i.internalCounter = 0
|
|
|
|
return nil, iterator.Done
|
|
|
|
}
|
|
|
|
resp := i.instances[i.internalCounter]
|
|
|
|
i.internalCounter++
|
|
|
|
return resp, nil
|
|
|
|
}
|
2022-08-01 10:51:34 -04:00
|
|
|
|
|
|
|
type stubAddressesAPI struct {
|
|
|
|
insertErr error
|
|
|
|
getAddr *string
|
|
|
|
getErr error
|
|
|
|
deleteErr error
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubAddressesAPI) Insert(context.Context, *computepb.InsertAddressRequest,
|
|
|
|
...gax.CallOption,
|
|
|
|
) (Operation, error) {
|
|
|
|
if a.insertErr != nil {
|
|
|
|
return nil, a.insertErr
|
|
|
|
}
|
|
|
|
return &stubOperation{
|
|
|
|
&computepb.Operation{
|
|
|
|
Name: proto.String("name"),
|
|
|
|
Region: proto.String("region"),
|
|
|
|
},
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubAddressesAPI) Get(ctx context.Context, req *computepb.GetAddressRequest,
|
|
|
|
opts ...gax.CallOption,
|
|
|
|
) (*computepb.Address, error) {
|
|
|
|
return &computepb.Address{Address: a.getAddr}, a.getErr
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubAddressesAPI) Delete(context.Context, *computepb.DeleteAddressRequest,
|
|
|
|
...gax.CallOption,
|
|
|
|
) (Operation, error) {
|
|
|
|
if a.deleteErr != nil {
|
|
|
|
return nil, a.deleteErr
|
|
|
|
}
|
|
|
|
return &stubOperation{
|
|
|
|
&computepb.Operation{
|
|
|
|
Name: proto.String("name"),
|
|
|
|
Region: proto.String("region"),
|
|
|
|
},
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a stubAddressesAPI) Close() error {
|
|
|
|
return nil
|
|
|
|
}
|