diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 2ad7ade7..fc0eb83c 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,9 +1,6 @@ --- name: Bug report about: Report a bug in the cloud-provider-stackit -title: "" -labels: bug -assignees: "" --- ## Description @@ -30,6 +27,8 @@ _Please describe the behavior which you would expect from the cloud-provider-sta - Kubernetes version: - Version of the cloud-provider-stackit: -**Additional information** +## Additional information _Feel free to add any additional information here._ + +/kind bug diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 2addb4bb..93e1dead 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -1,9 +1,6 @@ --- name: Feature request about: Suggest an idea for the cloud-provider-stackit -title: "" -labels: enhancement -assignees: "" --- ## Problem description @@ -21,3 +18,5 @@ _A clear and concise description of any alternative solutions or features you've ## Additional information _Feel free to add any additional information here._ + +/kind enhancement diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 7b11750b..bfa6d258 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -8,6 +8,17 @@ Tide will not merge your PR, if it is missing a `kind/*` label. "/kind" identifiers: api-change|bug|cleanup|discussion|enhancement|epic|impediment|poc|post-mortem|question|regression|task|technical-debt|test --> +/kind + + + +/cherry-pick release-v1.34 +/cherry-pick release-v1.35 +/cherry-pick release-v1.36 + **What this PR does / why we need it**: **Special notes for your reviewer**: diff --git a/.github/release.yaml b/.github/release.yaml index 812e325d..a10be358 100644 --- a/.github/release.yaml +++ b/.github/release.yaml @@ -12,6 +12,9 @@ changelog: - title: ๐Ÿ› Bug Fixes labels: - kind/bug + - title: ๐Ÿš€ Dependency Updates + labels: + - kind/upgrade - title: โ„น๏ธ Other Changes labels: - "*" diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 66e253b1..7b55a30d 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -5,15 +5,15 @@ 'github>stackitcloud/ske-ci-infra//config/renovate/ske.json5', ], additionalReviewers: [ - 'hown3d', - 'nschad', + 'team:ske-infrastructure', ], baseBranchPatterns: [ 'main', + 'release-v1.36', + 'release-v1.35', 'release-v1.34', 'release-v1.33', 'release-v1.32', - 'release-v1.31', ], customManagers: [ { @@ -76,14 +76,14 @@ ], automerge: false, }, - { + { matchPackageNames: [ '/^k8s.io/', ], matchBaseBranches: [ - 'release-v1.34', + 'release-v1.36', ], - allowedVersions: '<0.35.0', + allowedVersions: '<0.37.0', automerge: false, }, { @@ -91,9 +91,9 @@ '/^k8s.io/', ], matchBaseBranches: [ - 'release-v1.33', + 'release-v1.35', ], - allowedVersions: '<0.34.0', + allowedVersions: '<0.36.0', automerge: false, }, { @@ -101,9 +101,19 @@ '/^k8s.io/', ], matchBaseBranches: [ - 'release-v1.32', + 'release-v1.34', ], - allowedVersions: '<0.33.0', + allowedVersions: '<0.35.0', + automerge: false, + }, + { + matchPackageNames: [ + '/^k8s.io/', + ], + matchBaseBranches: [ + 'release-v1.33', + ], + allowedVersions: '<0.34.0', automerge: false, }, { @@ -111,9 +121,9 @@ '/^k8s.io/', ], matchBaseBranches: [ - 'release-v1.31', + 'release-v1.32', ], - allowedVersions: '<0.32.0', + allowedVersions: '<0.33.0', automerge: false, }, { @@ -135,5 +145,15 @@ 'skip-review', ], }, + { + groupName: 'apko packages', + matchManagers: [ + 'custom.regex', + ], + matchFileNames: [ + 'images/*/apko.yaml', + '**/apko-base-image.yaml', + ], + }, ], } diff --git a/.golangci.yaml b/.golangci.yaml index a3b4aa6e..90e8a700 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -20,10 +20,10 @@ linters: - importas - ineffassign - misspell + - modernize - nakedret - noctx - nolintlint - - prealloc - revive - rowserrcheck - staticcheck @@ -42,6 +42,9 @@ linters: goconst: min-len: 2 min-occurrences: 5 + ignore-string-values: + - 'true' + - 'false' gocritic: disabled-checks: - dupImport @@ -118,6 +121,9 @@ linters: - revive text: 'var-naming: avoid meaningless package names' path: 'pkg/csi/util/*' + - linters: + - revive + text: 'var-naming: avoid package names that conflict with Go standard library package names' paths: - third_party$ - builtin$ @@ -131,4 +137,4 @@ formatters: paths: - third_party$ - builtin$ - - examples$ \ No newline at end of file + - examples$ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7c67c099..102d3488 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,7 +13,6 @@ For major changes, API changes or features please open a [Discussion](https://gi > > Use **Issues** if you have a clear plan how to implement to propose how you would do the change. - To contribute any code to this repository, just do the following: 1. Make sure you have Go's latest version installed @@ -21,7 +20,7 @@ To contribute any code to this repository, just do the following: 3. Make your changes > Please follow the [seven rules of great Git commit messages](https://chris.beams.io/posts/git-commit/#seven-rules) > and make sure to keep your commits clean and atomic. - > Your PR won't be squashed before merging so the commits should tell a story. + > Your PR will be squashed before merging so the commits can and should tell a story. > > Add documentation and tests for your addition if needed. 4. Run `make verify` to ensure your code is ready to be merged diff --git a/LICENSE b/LICENSE index fb278297..785bf8a1 100644 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2022 Schwarz IT + Copyright 2022 Schwarz IT KG Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/Makefile b/Makefile index 4ef85c84..0466e1e5 100644 --- a/Makefile +++ b/Makefile @@ -121,27 +121,26 @@ verify-image-stackit-csi-plugin: LOCAL = true verify-image-stackit-csi-plugin: APKO_EXTRA_PACKAGES = busybox verify-image-stackit-csi-plugin: image-stackit-csi-plugin @echo "verifying binaries in image" - @docker run -v ./tools/csi-deps-check.sh:/tools/csi-deps-check.sh --entrypoint=/tools/csi-deps-check.sh $(REGISTRY)/stackit-csi-plugin:$(VERSION) + @docker run -v ./tools/csi-deps-check.sh:/tools/csi-deps-check.sh --entrypoint=/tools/csi-deps-check.sh $(REGISTRY)/$(REPO)/stackit-csi-plugin-dev:$(VERSION) # generate mock types for the following services (space-separated list) -MOCK_SERVICES := iaas loadbalancer - .PHONY: mocks mocks: $(MOCKGEN) # clean mocks @find . -name '*_mock.go' -delete || true - # generate mocks - @go mod download - @for service in $(MOCK_SERVICES); do \ - INTERFACES=`go doc -all github.com/stackitcloud/stackit-sdk-go/services/$$service | grep '^type Api.* interface' | sed -n 's/^type \(.*\) interface.*/\1/p' | paste -sd,`,DefaultApi; \ - $(MOCKGEN) -destination ./pkg/mock/$$service/$$service.go -package $$service github.com/stackitcloud/stackit-sdk-go/services/$$service $$INTERFACES; \ - done - @$(MOCKGEN) -destination ./pkg/stackit/iaas_mock.go -package stackit ./pkg/stackit IaasClient - @$(MOCKGEN) -destination ./pkg/stackit/loadbalancer_mock.go -package stackit ./pkg/stackit LoadbalancerClient - @$(MOCKGEN) -destination ./pkg/stackit/server_mock.go -package stackit ./pkg/stackit NodeClient + + # API mocks + @$(MOCKGEN) -destination ./pkg/mock/loadbalancer/loadbalancer.go -package loadbalancer github.com/stackitcloud/stackit-sdk-go/services/loadbalancer/v2api DefaultAPI + @$(MOCKGEN) -destination ./pkg/mock/iaas/iaas.go -package iaas github.com/stackitcloud/stackit-sdk-go/services/iaas/v2api DefaultAPI + + # client mocks @$(MOCKGEN) -destination ./pkg/stackit/metadata/metadata_mock.go -package metadata ./pkg/stackit/metadata IMetadata @$(MOCKGEN) -destination ./pkg/csi/util/mount/mount_mock.go -package mount ./pkg/csi/util/mount IMount + @$(MOCKGEN) -destination ./pkg/stackit/client/mock/iaas_mock.go -typed -package client ./pkg/stackit/client IaaSClient + @$(MOCKGEN) -destination ./pkg/stackit/client/mock/loadbalancer_mock.go -typed -package client ./pkg/stackit/client LoadBalancingClient + @$(MOCKGEN) -destination ./pkg/stackit/client/mock/mock.go -package client ./pkg/stackit/client Factory + .PHONY: generate generate: mocks go generate ./... diff --git a/OWNERS_ALIASES b/OWNERS_ALIASES index 97de1df7..5d63715f 100644 --- a/OWNERS_ALIASES +++ b/OWNERS_ALIASES @@ -16,6 +16,7 @@ aliases: - mstueer - OlegVanHorst - jamand + - breuerfelix cloud-provider-stackit-approvers: - dergeberl - JuliusSte @@ -32,3 +33,4 @@ aliases: - mstueer - OlegVanHorst - jamand + - breuerfelix diff --git a/README.md b/README.md index ef9952e6..d98c2064 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,13 @@ [![GitHub License](https://img.shields.io/github/license/stackitcloud/stackit-sdk-go)](https://www.apache.org/licenses/LICENSE-2.0) -This repository contains varous components for running Kubernetes on STACKIT. +This repository contains varous components for running Kubernetes on STACKIT. This provider allows your Kubernetes cluster to integrate directly with STACKIT APIs. ## Features + This repository hosts the following components: + - Cloud Controller Manager (CCM) - STACKIT CSI driver - Kubernetes Resources for the Manager @@ -14,30 +16,16 @@ This repository hosts the following components: Does not include: -- readyz and healthz +- `readyz` and `healthz` - Kubernetes Client with self authorization by `inClusterConfig` -## Operations - -- Required: STACKIT-specific settings have to be set using a cloud config via `--cloud-config=config.yaml`. - -```yaml -# config.yaml -projectId: -networkId: -region: eu01 -``` - -- Required: STACKIT authentication for SDK - - To authenticate against the STACKIT API follow [STACKIT SDK authentication](https://github.com/stackitcloud/stackit-sdk-go#authentication). The cloud controller manager supports all authentication methods that are supported by the SDK. -- Service metrics are available at `https://:10258/metrics`. To allow unauthorized access add `--authorization-always-allow-paths=/metrics`. -- Load Balancer metrics can be sent to a remote write endpoint (e.g. STACKIT observability). To use this feature all the following environment variables need to be set: - - `STACKIT_REMOTEWRITE_ENDPOINT` the remote write push URL to send the metrics to - - `STACKIT_REMOTEWRITE_USER` the basic auth username - - `STACKIT_REMOTEWRITE_PASSWORD` the basic auth password - - If none of these environment variables are set, this feature is ignored and no Load Balancer metrics are sent. - ## User Documentation -- [Load Balancer](docs/load-balancer.md) -- [CSI Driver](docs/csi-driver.md) +- Usage + - [Load Balancer](docs/load-balancer.md) + - [CSI Driver](docs/csi-driver.md) +- Administration + - [Deployment](docs/deployment.md) +- Development + - [Testing](docs/testing.md) + - [Release Procedure](docs/release-procedure.md) diff --git a/cmd/cloud-controller-manager/main.go b/cmd/cloud-controller-manager/main.go index ead7d30b..647cd567 100644 --- a/cmd/cloud-controller-manager/main.go +++ b/cmd/cloud-controller-manager/main.go @@ -17,6 +17,7 @@ import ( "k8s.io/cloud-provider/options" cliflag "k8s.io/component-base/cli/flag" "k8s.io/component-base/logs" + "k8s.io/component-base/metrics/legacyregistry" _ "k8s.io/component-base/metrics/prometheus/clientgo" _ "k8s.io/component-base/metrics/prometheus/version" "k8s.io/klog/v2" @@ -33,10 +34,16 @@ var ( metricsAddressFlag *string ) +func init() { + // RawMustRegister is marked as deprecated because this bypasses the metric stability framework. But we want to + // use the same metrics in different repos, so it does not make sense to only use different types in this repo. + legacyregistry.RawMustRegister(metrics.NewExporter()) +} + func main() { ccmOptions, err := options.NewCloudControllerManagerOptions() if err != nil { - klog.Fatalf("unable to initialize command options: %v", err) + klog.Fatalf("Unable to initialize command options: %v", err) } fmt.Println("starting Controller") @@ -49,8 +56,8 @@ func main() { ctx, cancel := signal.NotifyContext(context.Background(), syscall.SIGTERM, syscall.SIGINT) defer cancel() - // setup metrics - metricsAddressFlag = additionalFlags.FlagSet("metrics").String("metrics-address", defaultMetricsAddress, "set the prometheus metrics endpoint") + // TODO: remove this later. Not removed yet because it is breaking to remove it. + metricsAddressFlag = additionalFlags.FlagSet("metrics").String("metrics-address", defaultMetricsAddress, "set the prometheus metrics endpoint. Deprecated, do not use! Use --secure-port for metrics.") command := app.NewCloudControllerManagerCommand(ccmOptions, cloudInitializer(ctx), controllerInitializers, controllerAliases, additionalFlags, wait.NeverStop) pflag.CommandLine.SetNormalizeFunc(cliflag.WordSepNormalizeFunc) @@ -91,7 +98,7 @@ func cloudInitializer(ctx context.Context) func(config *cloudcontrollerconfig.Co if !cloud.HasClusterID() { if config.ComponentConfig.KubeCloudShared.AllowUntaggedCloud { - klog.Warning("detected a cluster without a ClusterID. A ClusterID will be required in the future. Please tag your cluster to avoid any future issues") + klog.Warning("Detected a cluster without a ClusterID. A ClusterID will be required in the future. Please tag your cluster to avoid any future issues") } else { klog.Fatalf( "no ClusterID found. A ClusterID is required for the cloud provider to function properly. " + diff --git a/cmd/stackit-csi-plugin/apko-base-image.yaml b/cmd/stackit-csi-plugin/apko-base-image.yaml index b698d371..f61a6b7d 100644 --- a/cmd/stackit-csi-plugin/apko-base-image.yaml +++ b/cmd/stackit-csi-plugin/apko-base-image.yaml @@ -4,20 +4,22 @@ contents: repositories: - https://packages.wolfi.dev/os packages: + - busybox # required by fsck.xfs as it is a sh script - ca-certificates - - blkid - - blockdev - - e2fsprogs - - e2fsprogs-extra - - lsblk - - mount - - umount - - btrfs-progs - - udev - - util-linux-misc # contains fsck - - xfsprogs - - xfsprogs-extra # contains xfs_io - - findmnt + - blkid=~2.42.2 + - blockdev=~2.42.2 + - btrfs-progs=~7.1 + - e2fsprogs=~1.47.4 + - e2fsprogs-extra=~1.47.4 + - lsblk=~2.42.2 + - mount=~2.42.2 + - umount=~2.42.2 + - udev=~261.2 + - util-linux-misc=~2.42.2 # contains fsck + - xfsprogs=~7.1.1 + - xfsprogs-core=~7.1.1 + - xfsprogs-extra=~7.1.1 # contains xfs_io + - findmnt=~2.42.2 accounts: run-as: root diff --git a/cmd/stackit-csi-plugin/main.go b/cmd/stackit-csi-plugin/main.go index d952bd60..9a22d3e3 100644 --- a/cmd/stackit-csi-plugin/main.go +++ b/cmd/stackit-csi-plugin/main.go @@ -1,29 +1,37 @@ package main import ( + "context" "fmt" "os" + "os/signal" + "syscall" + "github.com/prometheus/client_golang/prometheus" "github.com/spf13/cobra" "github.com/spf13/pflag" - "k8s.io/component-base/cli" - "k8s.io/klog/v2" - "github.com/stackitcloud/cloud-provider-stackit/pkg/csi" "github.com/stackitcloud/cloud-provider-stackit/pkg/csi/blockstorage" "github.com/stackitcloud/cloud-provider-stackit/pkg/csi/util/mount" - "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit" + "github.com/stackitcloud/cloud-provider-stackit/pkg/metrics" + stackitclient "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/client" "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/metadata" "github.com/stackitcloud/cloud-provider-stackit/pkg/version" + sdkconfig "github.com/stackitcloud/stackit-sdk-go/core/config" + "k8s.io/component-base/cli" + "k8s.io/klog/v2" ) var ( - endpoint string - cloudConfig string - cluster string - httpEndpoint string - provideControllerService bool - provideNodeService bool + endpoint string + cloudConfig string + cluster string + metricsAddress string + provideControllerService bool + provideNodeService bool + legacyStorageMode bool + legacyVolumeCreation bool + deleteVolumesInErrorState bool ) func main() { @@ -31,7 +39,10 @@ func main() { Use: "stackit-csi-plugin", Short: "STACKIT block-storage CSI plugin", Run: func(_ *cobra.Command, _ []string) { - handle() + ctx, cancel := signal.NotifyContext(context.Background(), syscall.SIGTERM, syscall.SIGINT) + defer cancel() + + handle(ctx) }, PersistentPreRunE: func(cmd *cobra.Command, _ []string) error { f := cmd.Flags() @@ -64,7 +75,7 @@ func main() { cmd.Flags().StringVar(&cloudConfig, "cloud-config", "", "CSI driver cloud config. This option can be given multiple times") cmd.PersistentFlags().StringVar(&cluster, "cluster", "", "The identifier of the cluster that the plugin is running in.") - cmd.PersistentFlags().StringVar(&httpEndpoint, "http-endpoint", "", + cmd.PersistentFlags().StringVar(&metricsAddress, "metrics-address", "", "The TCP network address where the HTTP server for providing metrics for diagnostics, will listen (example: `:8080`)."+ "The default is empty string, which means the server is disabled.") @@ -72,46 +83,76 @@ func main() { "If set to true then the CSI driver does provide the controller service (default: true)") cmd.PersistentFlags().BoolVar(&provideNodeService, "provide-node-service", true, "If set to true then the CSI driver does provide the node service (default: true)") + cmd.PersistentFlags().BoolVar(&legacyStorageMode, "legacy-storage-mode", false, + "Configures the CSI to listen to the legacy storage driverName cinder.csi.openstack.org instead") + cmd.PersistentFlags().BoolVar(&legacyVolumeCreation, "legacy-volume-creation", true, "Enable or disable support for creating volumes with the old driverName (cinder.csi.openstack.org)") + cmd.PersistentFlags().BoolVar(&deleteVolumesInErrorState, "delete-volumes-in-error", false, "Delete volumes in error state when creating") - stackit.AddExtraFlags(pflag.CommandLine) + stackitclient.AddExtraFlags(pflag.CommandLine) code := cli.Run(cmd) os.Exit(code) } -func handle() { +func handle(ctx context.Context) { + if metricsAddress != "" { + metricsExporter := metrics.NewExporter() + prometheus.MustRegister(metricsExporter) + go func() { + if err := metrics.Run(ctx, metricsAddress); err != nil { + klog.Fatalf("Run metrics returned an error: %v", err) + } + }() + } // Initialize cloud - d := blockstorage.NewDriver(&blockstorage.DriverOpts{ + driverOpts := &blockstorage.DriverOpts{ Endpoint: endpoint, ClusterID: cluster, PVCLister: csi.GetPVCLister(), - }) + } + + if legacyStorageMode { + driverOpts.LegacyDriverName = true + } + + if !legacyVolumeCreation { + driverOpts.BlockVolumeCreation = true + } + + if deleteVolumesInErrorState { + driverOpts.DeleteVolumesInErrorState = true + } + + d := blockstorage.NewDriver(driverOpts) if provideControllerService { var err error - cfg, err := stackit.GetConfigFromFile(cloudConfig) + cfg, err := stackitclient.GetConfigFromFile(cloudConfig) if err != nil { klog.Fatal(err) } - iaasClient, err := stackit.CreateIaaSClient(&cfg) - if err != nil { - klog.Fatalf("Failed to create IaaS client: %v", err) + iaasOpts := []sdkconfig.ConfigurationOption{ + sdkconfig.WithHTTPClient(metrics.NewHTTPClient("stackit-csi-plugin")), + } + + if cfg.Global.APIEndpoints.IaasAPI != "" { + iaasOpts = append(iaasOpts, sdkconfig.WithEndpoint(cfg.Global.APIEndpoints.IaasAPI)) } - stackitProvider, err := stackit.CreateSTACKITProvider(iaasClient, &cfg) + iaasClient, err := stackitclient.New(cfg.Global.Region, cfg.Global.ProjectID).IaaS(iaasOpts) if err != nil { klog.Fatalf("Failed to create STACKIT provider: %v", err) } - d.SetupControllerService(stackitProvider) + d.SetupControllerService(iaasClient) } if provideNodeService { // Initialize mount mountProvider := mount.GetMountProvider() - cfg, err := stackit.GetConfigFromFile(cloudConfig) + cfg, err := stackitclient.GetConfigFromFile(cloudConfig) if err != nil { klog.Fatal(err) } diff --git a/deploy/cloud-controller-manager/deployment.yaml b/deploy/cloud-controller-manager/deployment.yaml index 879c7c1e..b0eb51e7 100644 --- a/deploy/cloud-controller-manager/deployment.yaml +++ b/deploy/cloud-controller-manager/deployment.yaml @@ -17,11 +17,15 @@ spec: labels: app: stackit-cloud-controller-manager spec: + tolerations: + - key: node.cloudprovider.kubernetes.io/uninitialized + operator: Exists + effect: NoSchedule serviceAccountName: stackit-cloud-controller-manager terminationGracePeriodSeconds: 30 containers: - name: stackit-cloud-controller-manager - image: ghcr.io/stackitcloud/cloud-provider-stackit/cloud-controller-manager:release-v1.34 + image: ghcr.io/stackitcloud/cloud-provider-stackit/cloud-controller-manager:v1.34 args: - "--cloud-provider=stackit" - "--webhook-secure-port=0" @@ -39,13 +43,8 @@ spec: value: /etc/serviceaccount/sa_key.json ports: - containerPort: 10258 - hostPort: 10258 name: https protocol: TCP - - containerPort: 9090 - hostPort: 9090 - name: metrics - protocol: TCP resources: limits: cpu: "0.5" diff --git a/deploy/cloud-controller-manager/service.yaml b/deploy/cloud-controller-manager/service.yaml index cadf0dff..c1e34cfc 100644 --- a/deploy/cloud-controller-manager/service.yaml +++ b/deploy/cloud-controller-manager/service.yaml @@ -9,12 +9,8 @@ spec: selector: app: stackit-cloud-controller-manager ports: - - name: main - port: 80 - targetPort: 8888 - protocol: TCP - - name: metrics - port: 8080 - targetPort: metrics + - name: https + port: 10258 + targetPort: https protocol: TCP type: ClusterIP diff --git a/deploy/csi-plugin/controllerplugin.yaml b/deploy/csi-plugin/controllerplugin.yaml index 37978e22..57259b63 100644 --- a/deploy/csi-plugin/controllerplugin.yaml +++ b/deploy/csi-plugin/controllerplugin.yaml @@ -25,7 +25,7 @@ spec: serviceAccount: csi-stackit-controller-sa containers: - name: csi-attacher - image: registry.k8s.io/sig-storage/csi-attacher:v4.10.0 + image: registry.k8s.io/sig-storage/csi-attacher:v4.11.0 args: - "--csi-address=$(ADDRESS)" - "--timeout=3m" @@ -39,7 +39,7 @@ spec: - name: socket-dir mountPath: /var/lib/csi/sockets/pluginproxy/ - name: csi-provisioner - image: registry.k8s.io/sig-storage/csi-provisioner:v5.3.0 + image: registry.k8s.io/sig-storage/csi-provisioner:v6.1.1 args: - "--csi-address=$(ADDRESS)" - "--timeout=3m" @@ -55,7 +55,7 @@ spec: - name: socket-dir mountPath: /var/lib/csi/sockets/pluginproxy/ - name: csi-snapshotter - image: registry.k8s.io/sig-storage/csi-snapshotter:v8.3.0 + image: registry.k8s.io/sig-storage/csi-snapshotter:v8.5.0 args: - "--csi-address=$(ADDRESS)" - "--timeout=3m" @@ -69,7 +69,7 @@ spec: - mountPath: /var/lib/csi/sockets/pluginproxy/ name: socket-dir - name: csi-resizer - image: registry.k8s.io/sig-storage/csi-resizer:v1.14.0 + image: registry.k8s.io/sig-storage/csi-resizer:v2.1.0 args: - "--csi-address=$(ADDRESS)" - "--timeout=3m" @@ -83,7 +83,7 @@ spec: - name: socket-dir mountPath: /var/lib/csi/sockets/pluginproxy/ - name: liveness-probe - image: registry.k8s.io/sig-storage/livenessprobe:v2.17.0 + image: registry.k8s.io/sig-storage/livenessprobe:v2.18.0 args: - "--csi-address=$(ADDRESS)" env: @@ -93,7 +93,7 @@ spec: - mountPath: /var/lib/csi/sockets/pluginproxy/ name: socket-dir - name: stackit-csi-plugin - image: ghcr.io/stackitcloud/cloud-provider-stackit/stackit-csi-plugin:release-v1.34 + image: ghcr.io/stackitcloud/cloud-provider-stackit/stackit-csi-plugin:v1.34 args: - /bin/stackit-csi-plugin - "--endpoint=$(CSI_ENDPOINT)" @@ -105,7 +105,7 @@ spec: - name: CSI_ENDPOINT value: unix://csi/csi.sock - name: CLOUD_CONFIG - value: /etc/config/cloud.conf + value: /etc/config/cloud.yaml - name: CLUSTER_NAME value: kubernetes - name: STACKIT_SERVICE_ACCOUNT_KEY_PATH diff --git a/deploy/csi-plugin/nodeplugin.yaml b/deploy/csi-plugin/nodeplugin.yaml index f4f1be17..bd9db54b 100644 --- a/deploy/csi-plugin/nodeplugin.yaml +++ b/deploy/csi-plugin/nodeplugin.yaml @@ -21,7 +21,7 @@ spec: hostNetwork: true containers: - name: node-driver-registrar - image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.15.0 + image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.16.0 args: - "--csi-address=$(ADDRESS)" - "--kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)" @@ -41,7 +41,7 @@ spec: - name: registration-dir mountPath: /registration - name: liveness-probe - image: registry.k8s.io/sig-storage/livenessprobe:v2.17.0 + image: registry.k8s.io/sig-storage/livenessprobe:v2.18.0 args: - --csi-address=/csi/csi.sock volumeMounts: @@ -53,7 +53,7 @@ spec: capabilities: add: ["SYS_ADMIN"] allowPrivilegeEscalation: true - image: ghcr.io/stackitcloud/cloud-provider-stackit/stackit-csi-plugin:release-v1.34 + image: ghcr.io/stackitcloud/cloud-provider-stackit/stackit-csi-plugin:v1.34 args: - /bin/stackit-csi-plugin - "--endpoint=$(CSI_ENDPOINT)" @@ -64,7 +64,7 @@ spec: - name: CSI_ENDPOINT value: unix://csi/csi.sock - name: CLOUD_CONFIG - value: /etc/config/cloud.conf + value: /etc/config/cloud.yaml imagePullPolicy: "IfNotPresent" ports: - containerPort: 9808 diff --git a/docs/cloud-controller-manager.md b/docs/cloud-controller-manager.md new file mode 100644 index 00000000..454a37af --- /dev/null +++ b/docs/cloud-controller-manager.md @@ -0,0 +1,23 @@ +# Cloud controller manager + +## Overview + +The cloud controller manager implements the [Kubernetes cloud-controller-manager contract](https://kubernetes.io/docs/concepts/architecture/cloud-controller/#functions-of-the-ccm). + +### Node controller + +The node controller is responsible for updating Node objects when new servers are created in STACKIT infrastructure by obtaining information about the servers. + +For more information check the [Kubernetes documentation](https://kubernetes.io/docs/concepts/architecture/cloud-controller/#node-controller). + +#### Multi Network + +If a server has NICs connected to multiple networks, you can designate the primary network for [Node Addresses](https://kubernetes.io/docs/reference/node/node-status/#addresses) by setting the default network in the config: + +```yaml +instance: + # either network name or id + defaultNetwork: "foo" +``` + +This ensures the IP address for that network's NIC is listed first in the [Node status](https://kubernetes.io/docs/reference/node/node-status/#addresses). diff --git a/docs/csi-driver.md b/docs/csi-driver.md index ee448454..08af1586 100644 --- a/docs/csi-driver.md +++ b/docs/csi-driver.md @@ -27,6 +27,15 @@ The CSI driver enables dynamic provisioning and management of persistent volumes ## Basic Usage +### Supported Filesystems + +We currently support the following file systems: + +- ext3 +- ext4 (default) +- xfs +- [EXPERIMENTAL] btrfs. Use at your own risk! + ### Create a StorageClass ```YAML diff --git a/docs/deployment.md b/docs/deployment.md index 74e0cdd4..6a8a747d 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -140,9 +140,15 @@ Example cloud configuration: ```yaml # cloud.yaml -projectId: your-project-id -networkId: your-network-id -region: eu01 +global: + projectId: your-project-id + region: eu01 +loadBalancer: + networkId: your-network-id +``` + +```bash +kubectl create configmap -n kube-system stackit-cloud-secret --from-files=cloud.yaml ``` ### Parameters diff --git a/docs/load-balancer.md b/docs/load-balancer.md index e0f5da45..8dfc3dc9 100644 --- a/docs/load-balancer.md +++ b/docs/load-balancer.md @@ -49,7 +49,6 @@ Values for boolean annotations are parsed according to [ParseBool](https://pkg.g | lb.stackit.cloud/service-plan-id | p10 | Defines the [plan ID](https://docs.api.eu01.stackit.cloud/documentation/load-balancer/version/v1#tag/Load-Balancer/operation/APIService_CreateLoadBalancer) when creating a load balancer. Allowed values are: p10, p50, p250 and p750 | | lb.stackit.cloud/ip-mode-proxy | false | If true, the load balancer will be reported to Kubernetes as a proxy (in the service status). This causes connections to the load balancer IP that come from within the cluster to be routed to through the load balancer, rather than directly to the `kube-proxy`. Requires Kubernetes v1.30. The annotation has no effect on earlier versions. Recommended in combination with the TCP proxy protocol. | | lb.stackit.cloud/session-persistence-with-source-ip | false | When set to true, all connections from the same source IP are consistently routed to the same target. This setting changes the load balancing algorithm to Maglev. Note, this only works reliably when `externalTrafficPolicy: Local` is set on the Service, and each node has exactly one backing pod. Otherwise, session persistence may break. | -| lb.stackit.cloud/listener-network | _none_ | When set, defines the network in which the load balancer should listen. If not set, the SKE network is used for listening. The value must be a network ID, not a subnet. The annotation can neither be changed nor be added or removed after service creation. | ### Supported yawol Annotations diff --git a/docs/migration/configuration.md b/docs/migration/configuration.md new file mode 100644 index 00000000..7d340bfa --- /dev/null +++ b/docs/migration/configuration.md @@ -0,0 +1,98 @@ +# Migration Guide: CCM and CSI Configuration to Unified YAML Format + +## Introduction + +This guide provides step-by-step instructions for migrating from the legacy Cloud Controller Manager (CCM) and Container Storage Interface (CSI) configurations to the new unified YAML-based configuration format. + +## Overview + +The migration involves: + +- Updating CCM and CSI configurations to use the new unified YAML format +- Mapping legacy configuration keys to new schema +- Ensuring compatibility with the latest version of the STACKIT Kubernetes integration + +**Note**: While the new format uses a unified structure, CCM and CSI configurations remain in separate files but follow the same YAML schema. + +## Removed Configuration Options + +The following configuration options have been removed in the new format: + +### CCM + +- `nonStackitClassNames` - No longer supported + +### CSI + +- `node-volume-attach-limit` - No longer configurable + +## Old Configuration Reference + +### CCM Configuration + +```yaml +# cloudprovider.yaml +projectId: my-stackit-project-id +networkId: my-stackit-network-id +region: eu01 +nonStackitClassNames: my-non-stackit-class +extraLabels: + key1: value1 + key2: value2 +metadata: + searchOrder: "configDrive,metadataService" + requestTimeout: "5s" +loadBalancerApi: + url: https://loadbalancer.example.com +``` + +### CSI Configuration + +```ini +# cloudprovider.conf +[Global] +project-id = "my-stackit-project-id" +iaas-api-url = "https://iaas.example.com" +[Metadata] +search-order = "configDrive,metadataService" +request-timeout = "5s" +[BlockStorage] +node-volume-attach-limit = 20 +rescan-on-resize = true +``` + +## New Configuration Reference + +### CCM Configuration + +```yaml +# cloudprovider.yaml +global: + projectId: my-stackit-project-id + region: eu01 +metadata: + searchOrder: "configDrive,metadataService" + requestTimeout: "5s" +loadBalancer: + api: https://loadbalancer.example.com + networkId: my-stackit-network-id + extraLabels: + key1: value1 + key2: value2 +instance: {} + # defaultNetwork: # used for multi-network nodes +``` + +### CSI Configuration + +```yaml +# cloudprovider.conf +global: + projectId: my-stackit-project-id + iaasApi: https://iaas.example.com +metadata: + searchOrder: "configDrive,metadataService" + requestTimeout: "5s" +blockStorage: + rescanOnResize: true +``` diff --git a/docs/release-procedure.md b/docs/release-procedure.md index 8ccab3de..dfcf38db 100644 --- a/docs/release-procedure.md +++ b/docs/release-procedure.md @@ -6,6 +6,8 @@ - [General Information](#general-information) - [Automated Release Process (Primary Method)](#automated-release-process-primary-method) - [Manual Release Process (Fallback Method)](#manual-release-process-fallback-method) +- [Releasing a New Kubernetes Version](#releasing-a-new-kubernetes-version) +- [Remove an Old Kubernetes Version](#remove-an-old-kubernetes-version) ## Overview @@ -19,8 +21,6 @@ This document outlines the standard procedure for creating new releases of the C - `PATCH` is incremented for each subsequent release within the same Kubernetes version - **CI/CD System:** All release and image builds are managed by our **Prow CI** infrastructure. ---- - ## Automated Release Process (Primary Method) The primary release method is automated using a tool called `release-tool`. This process is designed to be straightforward and require minimal manual intervention. @@ -30,31 +30,42 @@ The primary release method is automated using a tool called `release-tool`. This Publishing the release automatically creates the corresponding Git tag (e.g., `v1.33.1`), which triggers a separate Prow job to build the final container images and attach them to the GitHub release. ---- - ## Manual Release Process (Fallback Method) -If the `release-tool` or its associated Prow job fails, you can manually trigger a release by creating and pushing a Git tag from the appropriate release branch. +If the `release-tool` or its associated Prow job fails, use the GitHub web UI to create and publish a release: + +1. Go to the repository on GitHub and click **Releases** on the right side, then click **Draft new release**. + +2. Open the **Select tag** dropdown and choose **Create new tag** at the bottom. Enter the new tag name (for example `v2.1.0`) and pick the correct `release-` as target branch, then confirm. + +3. Click **Generate release notes** to let GitHub populate the changelog. + +4. In the release description, add a line `Released by @` to indicate the publisher. -1. **Check out the release branch:** Ensure you have the latest changes from the correct release branch. +5. Click **Publish release** to create the release. - ```bash - git checkout release-v1.33.x - git pull origin release-v1.33.x - ``` +Publishing a new release triggers the same Prow release job that builds and publishes the final container images. -2. **Create the Git tag:** Create a new, annotated tag for the release, following semantic versioning. +## Releasing a New Kubernetes Version - ```bash - # Example for creating version v1.33.1 - git tag v1.33.1 - ``` +1. Create a new version of the [`cloud-provider`](https://github.com/stackitcloud/cloud-provider) fork. + 1. Create a new release branch `ske-v0.xx` from the latest patch version tag of the desired Kubernetes version. + 2. Cherry-pick our changes into the release branch. Example: https://github.com/stackitcloud/cloud-provider/commits/ske-v0.35/ + 3. Tag the release branch with `v0.xx.x-ske-x`. +2. Bump the Kubernetes packages, including an overwrite of the `cloud-provider` fork, in the `main` branch. +3. Bump the version used in the deployments ([/deploy](/deploy) folder) to the new version (w/o the patch version part) +4. Create a new release branch `release-v1.XX` from `main`. +5. Update the Renovate configuration via a PR against `main`: add the new release branch to `baseBranchPatterns` and add a new rule in `packageRules` for `/^k8s.io/`. Cherry-pick this PR to all maintained release branches. Example PR: https://github.com/stackitcloud/cloud-provider-stackit/pull/756 +6. Create a manual release for the new branch (note: the release tool will only work if there is already a tag on the branch). Do not generate release notes as they will contain many unrelated changes. Just add `Initial release of v1.xx.0` as release notes. +7. Add the new version in the `README.md`. +8. Add the cherry-pick command (`/cherry-pick release-v1.XX`) for the new release branch to `.github/pull_request_template.md`. -3. **Push the tag to the remote repository:** +## Remove an Old Kubernetes Version - ```bash - # Example for pushing tag v1.33.1 - git push origin v1.33.1 - ``` +If a Kubernetes version is EOL and it is not possible to create SKE clusters with that version, the support for Kubernetes version can be removed. -Pushing a tag that starts with `v` (e.g., `v1.33.1`) automatically triggers the same Prow release job that builds and publishes the final container images. You may need to manually update the release notes on GitHub afterward. +1. Release the version a last time (if there are changes). +2. Remove the release branch in `.github/renovate.json5` under `baseBranchPatterns`. +3. Remove the `packageRules` for the release branch in `.github/renovate.json5`. +4. Remove the version from the `README.md`. +5. Remove the cherry-pick command (`/cherry-pick release-v1.XX`) for the removed release branch from `.github/pull_request_template.md`. diff --git a/docs/testing.md b/docs/testing.md index ce807ff1..153a00da 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -257,7 +257,7 @@ snapshot-controller-5b7776766f-mp8dp 1/1 Running 0 stackit-cloud-controller-manager-9cbc5fb6-cvj5f 1/1 Running 0 21h # Run parallel test suite, ensure KUBERNETES_TEST_VERSION matches the cluster Kubernetes version -ยง KUBERNETES_TEST_VERSION=1.32.9 make verify-e2e-csi-parallel +$ KUBERNETES_TEST_VERSION=1.32.9 make verify-e2e-csi-parallel # The test result should look like this [...] diff --git a/go.mod b/go.mod index a3bca19f..635732c8 100644 --- a/go.mod +++ b/go.mod @@ -1,43 +1,42 @@ module github.com/stackitcloud/cloud-provider-stackit -go 1.24.0 - -toolchain go1.25.4 +go 1.26.1 require ( - github.com/container-storage-interface/spec v1.12.0 - github.com/go-viper/mapstructure/v2 v2.4.0 + github.com/container-storage-interface/spec v1.13.0 + github.com/go-viper/mapstructure/v2 v2.5.0 github.com/google/uuid v1.6.0 - github.com/kubernetes-csi/csi-lib-utils v0.22.0 - github.com/onsi/ginkgo/v2 v2.27.2 - github.com/onsi/gomega v1.38.2 - github.com/prometheus/client_golang v1.23.2 - github.com/spf13/cobra v1.10.1 + github.com/kubernetes-csi/csi-lib-utils v0.23.2 + github.com/kubernetes-csi/csi-test/v5 v5.6.0 + github.com/onsi/ginkgo/v2 v2.32.2 + github.com/onsi/gomega v1.43.0 + github.com/prometheus/client_golang v1.24.1 + github.com/prometheus/client_model v0.6.3 + github.com/spf13/cobra v1.10.2 github.com/spf13/pflag v1.0.10 - github.com/stackitcloud/stackit-sdk-go/core v0.20.0 - github.com/stackitcloud/stackit-sdk-go/services/iaas v1.2.2 - github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.6.1 + github.com/stackitcloud/stackit-sdk-go/core v0.27.0 + github.com/stackitcloud/stackit-sdk-go/services/iaas v1.14.3 + github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.15.2 go.uber.org/mock v0.6.0 - golang.org/x/sync v0.18.0 - golang.org/x/sys v0.38.0 - google.golang.org/grpc v1.77.0 - google.golang.org/protobuf v1.36.10 - gopkg.in/gcfg.v1 v1.2.3 + golang.org/x/sync v0.23.0 + golang.org/x/sys v0.48.0 + google.golang.org/grpc v1.83.2 + google.golang.org/protobuf v1.36.12 gopkg.in/yaml.v3 v3.0.1 - k8s.io/api v0.34.2 - k8s.io/apimachinery v0.34.2 - k8s.io/client-go v0.34.2 - k8s.io/cloud-provider v0.33.3 - k8s.io/component-base v0.34.2 - k8s.io/klog/v2 v2.130.1 - k8s.io/mount-utils v0.33.3 - k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 + k8s.io/api v0.34.11 + k8s.io/apimachinery v0.34.11 + k8s.io/client-go v0.34.11 + k8s.io/cloud-provider v0.34.11 + k8s.io/component-base v0.34.11 + k8s.io/klog/v2 v2.140.0 + k8s.io/mount-utils v0.34.11 + k8s.io/utils v0.0.0-20260707023825-cf1189d6abe3 ) replace k8s.io/cloud-provider => github.com/stackitcloud/cloud-provider v0.34.2-ske-1 require ( - cel.dev/expr v0.24.0 // indirect + cel.dev/expr v0.25.2 // indirect github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect github.com/Masterminds/semver/v3 v3.4.0 // indirect github.com/NYTimes/gziphandler v1.1.1 // indirect @@ -47,7 +46,7 @@ require ( github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/coreos/go-semver v0.3.1 // indirect - github.com/coreos/go-systemd/v22 v22.5.0 // indirect + github.com/coreos/go-systemd/v22 v22.6.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/emicklei/go-restful/v3 v3.12.2 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect @@ -55,25 +54,34 @@ require ( github.com/fxamacker/cbor/v2 v2.9.0 // indirect github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-openapi/jsonpointer v0.21.0 // indirect - github.com/go-openapi/jsonreference v0.21.0 // indirect - github.com/go-openapi/swag v0.23.0 // indirect + github.com/go-openapi/jsonpointer v0.22.1 // indirect + github.com/go-openapi/jsonreference v0.21.2 // indirect + github.com/go-openapi/swag v0.25.1 // indirect + github.com/go-openapi/swag/cmdutils v0.25.1 // indirect + github.com/go-openapi/swag/conv v0.25.1 // indirect + github.com/go-openapi/swag/fileutils v0.25.1 // indirect + github.com/go-openapi/swag/jsonname v0.25.1 // indirect + github.com/go-openapi/swag/jsonutils v0.25.1 // indirect + github.com/go-openapi/swag/loading v0.25.1 // indirect + github.com/go-openapi/swag/mangling v0.25.1 // indirect + github.com/go-openapi/swag/netutils v0.25.1 // indirect + github.com/go-openapi/swag/stringutils v0.25.1 // indirect + github.com/go-openapi/swag/typeutils v0.25.1 // indirect + github.com/go-openapi/swag/yamlutils v0.25.1 // indirect github.com/go-task/slim-sprig/v3 v3.0.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt/v5 v5.3.0 // indirect + github.com/golang-jwt/jwt/v5 v5.3.1 // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/google/btree v1.1.3 // indirect github.com/google/cel-go v0.26.0 // indirect github.com/google/gnostic-models v0.7.0 // indirect github.com/google/go-cmp v0.7.0 // indirect - github.com/google/pprof v0.0.0-20250820193118-f64d9cf942d6 // indirect + github.com/google/pprof v0.0.0-20260402051712-545e8a4df936 // indirect github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/kylelemons/godebug v1.1.0 // indirect - github.com/mailru/easyjson v0.9.0 // indirect github.com/moby/sys/mountinfo v0.7.2 // indirect github.com/moby/term v0.5.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect @@ -81,44 +89,44 @@ require ( github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/client_model v0.6.2 // indirect - github.com/prometheus/common v0.66.1 // indirect - github.com/prometheus/procfs v0.16.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.18.1 // indirect + github.com/prometheus/common v0.70.1 // indirect + github.com/prometheus/procfs v0.21.1 // indirect + github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.25.1 // indirect github.com/stoewer/go-strcase v1.3.1 // indirect + github.com/stretchr/objx v0.5.3 // indirect github.com/x448/float16 v0.8.4 // indirect go.etcd.io/etcd/api/v3 v3.6.4 // indirect go.etcd.io/etcd/client/pkg/v3 v3.6.4 // indirect go.etcd.io/etcd/client/v3 v3.6.4 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 // indirect - go.opentelemetry.io/otel v1.38.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect + go.opentelemetry.io/otel v1.44.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 // indirect - go.opentelemetry.io/otel/metric v1.38.0 // indirect - go.opentelemetry.io/otel/sdk v1.38.0 // indirect - go.opentelemetry.io/otel/trace v1.38.0 // indirect + go.opentelemetry.io/otel/metric v1.44.0 // indirect + go.opentelemetry.io/otel/sdk v1.44.0 // indirect + go.opentelemetry.io/otel/trace v1.44.0 // indirect go.opentelemetry.io/proto/otlp v1.5.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - go.yaml.in/yaml/v2 v2.4.2 // indirect + go.yaml.in/yaml/v2 v2.4.4 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect - golang.org/x/crypto v0.43.0 // indirect + golang.org/x/crypto v0.55.0 // indirect golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b // indirect - golang.org/x/mod v0.28.0 // indirect - golang.org/x/net v0.46.1-0.20251013234738-63d1a5100f82 // indirect - golang.org/x/oauth2 v0.32.0 // indirect - golang.org/x/term v0.36.0 // indirect - golang.org/x/text v0.30.0 // indirect + golang.org/x/mod v0.38.0 // indirect + golang.org/x/net v0.58.0 // indirect + golang.org/x/oauth2 v0.36.0 // indirect + golang.org/x/term v0.45.0 // indirect + golang.org/x/text v0.41.0 // indirect golang.org/x/time v0.10.0 // indirect - golang.org/x/tools v0.37.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 // indirect + golang.org/x/tools v0.48.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect - gopkg.in/warnings.v0 v0.1.2 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect k8s.io/apiserver v0.34.2 // indirect k8s.io/component-helpers v0.34.2 // indirect k8s.io/controller-manager v0.34.2 // indirect diff --git a/go.sum b/go.sum index 6f404dd1..4b953055 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,5 @@ -cel.dev/expr v0.24.0 h1:56OvJKSH3hDGL0ml5uSxZmz3/3Pq4tJ+fb1unVLAFcY= -cel.dev/expr v0.24.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw= +cel.dev/expr v0.25.2 h1:K6j46C81hXtZQfuX60cVWQFBJahKSE2gfRbNuvr5bFs= +cel.dev/expr v0.25.2/go.mod h1:hrXvqGP6G6gyx8UAHSHJ5RGk//1Oj5nXQ2NI02Nrsg4= github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEKWjV8V+WSxDXJ4NFATAsZjh8iIbsQIg= github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0= @@ -16,12 +16,12 @@ github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK3 github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/container-storage-interface/spec v1.12.0 h1:zrFOEqpR5AghNaaDG4qyedwPBqU2fU0dWjLQMP/azK0= -github.com/container-storage-interface/spec v1.12.0/go.mod h1:txsm+MA2B2WDa5kW69jNbqPnvTtfvZma7T/zsAZ9qX8= +github.com/container-storage-interface/spec v1.13.0 h1:6ja3nYoACisewTPAAZkJ1pbf4+1ehhvt9Z/nYgWGHGw= +github.com/container-storage-interface/spec v1.13.0/go.mod h1:fPZ7EFHYJwIwc9CMcoaT/yIhFTdToocYVtyafMG7EDM= github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4= github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec= -github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= -github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/coreos/go-systemd/v22 v22.6.0 h1:aGVa/v8B7hpb0TKl0MWoAavPDmHvobFe5R5zn0bCJWo= +github.com/coreos/go-systemd/v22 v22.6.0/go.mod h1:iG+pp635Fo7ZmV/j14KUcmEyWF+0X7Lua8rrTWzYgWU= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= @@ -52,23 +52,46 @@ github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= -github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= -github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= -github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= -github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= -github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= -github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= +github.com/go-openapi/jsonpointer v0.22.1 h1:sHYI1He3b9NqJ4wXLoJDKmUmHkWy/L7rtEo92JUxBNk= +github.com/go-openapi/jsonpointer v0.22.1/go.mod h1:pQT9OsLkfz1yWoMgYFy4x3U5GY5nUlsOn1qSBH5MkCM= +github.com/go-openapi/jsonreference v0.21.2 h1:Wxjda4M/BBQllegefXrY/9aq1fxBA8sI5M/lFU6tSWU= +github.com/go-openapi/jsonreference v0.21.2/go.mod h1:pp3PEjIsJ9CZDGCNOyXIQxsNuroxm8FAJ/+quA0yKzQ= +github.com/go-openapi/swag v0.25.1 h1:6uwVsx+/OuvFVPqfQmOOPsqTcm5/GkBhNwLqIR916n8= +github.com/go-openapi/swag v0.25.1/go.mod h1:bzONdGlT0fkStgGPd3bhZf1MnuPkf2YAys6h+jZipOo= +github.com/go-openapi/swag/cmdutils v0.25.1 h1:nDke3nAFDArAa631aitksFGj2omusks88GF1VwdYqPY= +github.com/go-openapi/swag/cmdutils v0.25.1/go.mod h1:pdae/AFo6WxLl5L0rq87eRzVPm/XRHM3MoYgRMvG4A0= +github.com/go-openapi/swag/conv v0.25.1 h1:+9o8YUg6QuqqBM5X6rYL/p1dpWeZRhoIt9x7CCP+he0= +github.com/go-openapi/swag/conv v0.25.1/go.mod h1:Z1mFEGPfyIKPu0806khI3zF+/EUXde+fdeksUl2NiDs= +github.com/go-openapi/swag/fileutils v0.25.1 h1:rSRXapjQequt7kqalKXdcpIegIShhTPXx7yw0kek2uU= +github.com/go-openapi/swag/fileutils v0.25.1/go.mod h1:+NXtt5xNZZqmpIpjqcujqojGFek9/w55b3ecmOdtg8M= +github.com/go-openapi/swag/jsonname v0.25.1 h1:Sgx+qbwa4ej6AomWC6pEfXrA6uP2RkaNjA9BR8a1RJU= +github.com/go-openapi/swag/jsonname v0.25.1/go.mod h1:71Tekow6UOLBD3wS7XhdT98g5J5GR13NOTQ9/6Q11Zo= +github.com/go-openapi/swag/jsonutils v0.25.1 h1:AihLHaD0brrkJoMqEZOBNzTLnk81Kg9cWr+SPtxtgl8= +github.com/go-openapi/swag/jsonutils v0.25.1/go.mod h1:JpEkAjxQXpiaHmRO04N1zE4qbUEg3b7Udll7AMGTNOo= +github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.1 h1:DSQGcdB6G0N9c/KhtpYc71PzzGEIc/fZ1no35x4/XBY= +github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.1/go.mod h1:kjmweouyPwRUEYMSrbAidoLMGeJ5p6zdHi9BgZiqmsg= +github.com/go-openapi/swag/loading v0.25.1 h1:6OruqzjWoJyanZOim58iG2vj934TysYVptyaoXS24kw= +github.com/go-openapi/swag/loading v0.25.1/go.mod h1:xoIe2EG32NOYYbqxvXgPzne989bWvSNoWoyQVWEZicc= +github.com/go-openapi/swag/mangling v0.25.1 h1:XzILnLzhZPZNtmxKaz/2xIGPQsBsvmCjrJOWGNz/ync= +github.com/go-openapi/swag/mangling v0.25.1/go.mod h1:CdiMQ6pnfAgyQGSOIYnZkXvqhnnwOn997uXZMAd/7mQ= +github.com/go-openapi/swag/netutils v0.25.1 h1:2wFLYahe40tDUHfKT1GRC4rfa5T1B4GWZ+msEFA4Fl4= +github.com/go-openapi/swag/netutils v0.25.1/go.mod h1:CAkkvqnUJX8NV96tNhEQvKz8SQo2KF0f7LleiJwIeRE= +github.com/go-openapi/swag/stringutils v0.25.1 h1:Xasqgjvk30eUe8VKdmyzKtjkVjeiXx1Iz0zDfMNpPbw= +github.com/go-openapi/swag/stringutils v0.25.1/go.mod h1:JLdSAq5169HaiDUbTvArA2yQxmgn4D6h4A+4HqVvAYg= +github.com/go-openapi/swag/typeutils v0.25.1 h1:rD/9HsEQieewNt6/k+JBwkxuAHktFtH3I3ysiFZqukA= +github.com/go-openapi/swag/typeutils v0.25.1/go.mod h1:9McMC/oCdS4BKwk2shEB7x17P6HmMmA6dQRtAkSnNb8= +github.com/go-openapi/swag/yamlutils v0.25.1 h1:mry5ez8joJwzvMbaTGLhw8pXUnhDK91oSJLDPF1bmGk= +github.com/go-openapi/swag/yamlutils v0.25.1/go.mod h1:cm9ywbzncy3y6uPm/97ysW8+wZ09qsks+9RS8fLWKqg= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= -github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs= -github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPEgAXnvj1Ro= +github.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/goccy/go-yaml v1.18.0 h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw= github.com/goccy/go-yaml v1.18.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt/v5 v5.3.0 h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo= -github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE= +github.com/golang-jwt/jwt/v5 v5.3.1 h1:kYf81DTWFe7t+1VvL7eS+jKFVWaUnK9cB1qbwn63YCY= +github.com/golang-jwt/jwt/v5 v5.3.1/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= @@ -80,8 +103,8 @@ github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7O github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20250820193118-f64d9cf942d6 h1:EEHtgt9IwisQ2AZ4pIsMjahcegHh6rmhqxzIRQIyepY= -github.com/google/pprof v0.0.0-20250820193118-f64d9cf942d6/go.mod h1:I6V7YzU0XDpsHqbsyrghnFZLO1gwK6NPTNvmetQIk9U= +github.com/google/pprof v0.0.0-20260402051712-545e8a4df936 h1:EwtI+Al+DeppwYX2oXJCETMO23COyaKGP6fHVpkpWpg= +github.com/google/pprof v0.0.0-20260402051712-545e8a4df936/go.mod h1:MxpfABSjhmINe3F1It9d+8exIHFvUqtLIRCdOGNXqiI= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 h1:JeSE6pjso5THxAzdVpqr6/geYxZytqFMBCOtn/ujyeo= @@ -98,26 +121,24 @@ github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2 github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jonboulle/clockwork v0.5.0 h1:Hyh9A8u51kptdkR+cqRpT1EebBwTn1oK9YfGYbdFz6I= github.com/jonboulle/clockwork v0.5.0/go.mod h1:3mZlmanh0g2NDKO5TWZVJAfofYk64M7XN3SzBPjZF60= -github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= -github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/joshdk/go-junit v1.0.0 h1:S86cUKIdwBHWwA6xCmFlf3RTLfVXYQfvanM5Uh+K6GE= github.com/joshdk/go-junit v1.0.0/go.mod h1:TiiV0PqkaNfFXjEiyjWM3XXrhVyCa1K4Zfga6W52ung= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= -github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= +github.com/klauspost/compress v1.19.1 h1:VsB4HPswih7mmZ8WleSFQ75c/Ui1M4trX5oAsJnhSlk= +github.com/klauspost/compress v1.19.1/go.mod h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kubernetes-csi/csi-lib-utils v0.22.0 h1:EUAs1+uHGps3OtVj4XVx16urhpI02eu+Z8Vps6plpHY= -github.com/kubernetes-csi/csi-lib-utils v0.22.0/go.mod h1:f+PalKyS4Ujsjb9+m6Rj0W6c28y3nfea3paQ/VqjI28= +github.com/kubernetes-csi/csi-lib-utils v0.23.2 h1:+x9W4RRyuRnJcTiSHKEFpl0cYUeLUqshM5ioPeYPRXw= +github.com/kubernetes-csi/csi-lib-utils v0.23.2/go.mod h1:aIcqnC6EyesZpe7kX5PxHUZePw1tKrYFKwg7RaqlPh8= +github.com/kubernetes-csi/csi-test/v5 v5.6.0 h1:fQgB/CRoqTEAtlHwfD0Y785LjQJ/OxNGUE7AHw68VLg= +github.com/kubernetes-csi/csi-test/v5 v5.6.0/go.mod h1:IXPOop3n6Mlco/6/3nGrE+MTOx3uXiIQVDJh3KBt/DI= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4= -github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU= github.com/maruel/natural v1.1.1 h1:Hja7XhhmvEFhcByqDoHz9QZbkWey+COd9xWfCfn1ioo= github.com/maruel/natural v1.1.1/go.mod h1:v+Rfd79xlw1AgVBjbO0BEQmptqb5HvL/k9GRHB7ZKEg= github.com/mfridman/tparse v0.18.0 h1:wh6dzOKaIwkUGyKgOntDW4liXSo37qg5AXbIhkMV3vE= @@ -134,23 +155,23 @@ github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFd github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/onsi/ginkgo/v2 v2.27.2 h1:LzwLj0b89qtIy6SSASkzlNvX6WktqurSHwkk2ipF/Ns= -github.com/onsi/ginkgo/v2 v2.27.2/go.mod h1:ArE1D/XhNXBXCBkKOLkbsb2c81dQHCRcF5zwn/ykDRo= -github.com/onsi/gomega v1.38.2 h1:eZCjf2xjZAqe+LeWvKb5weQ+NcPwX84kqJ0cZNxok2A= -github.com/onsi/gomega v1.38.2/go.mod h1:W2MJcYxRGV63b418Ai34Ud0hEdTVXq9NW9+Sx6uXf3k= +github.com/onsi/ginkgo/v2 v2.32.2 h1:2o6vyFvR6snrJWgRVztC+OwuqqPEMI1UzYl2s2iU7Cg= +github.com/onsi/ginkgo/v2 v2.32.2/go.mod h1:+aXOY+vzZ5mu2iI2HpTZUPmM//oQfsNFX6gU9kNcA44= +github.com/onsi/gomega v1.43.0 h1:VlG/1FxqNxhSO+lq/OHBNaaqwiBK/mO8JbVkX9Y+FeU= +github.com/onsi/gomega v1.43.0/go.mod h1:REff/hsDsodHoKlWsP2mAPhu1+5/6hVYNf9rIEBpeSg= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= -github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= -github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= -github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= -github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs= -github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= -github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= -github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= +github.com/prometheus/client_golang v1.24.1 h1:JnJkREXzWxUdCuPFpIWZiPispT9xVV59uiuyR2bPlnU= +github.com/prometheus/client_golang v1.24.1/go.mod h1:F+oSRECHg4sse5ucfYpYDeIv/hu68Zo0uoHKetWnzcE= +github.com/prometheus/client_model v0.6.3 h1:O0jaTVAYNxTHYInEPFJt5I3+sN8zqBtVMPTB1qyxiEo= +github.com/prometheus/client_model v0.6.3/go.mod h1:gpN5P9S7Rr6Yr92PiQ+Ixvhf6JZEkF1dnxsYL2aPBEM= +github.com/prometheus/common v0.70.1 h1:1HvjP4D5oL3t8RsPlwxA9onvvStjtIHYE5XuuwOi/PY= +github.com/prometheus/common v0.70.1/go.mod h1:VdFUQDMZK3VLkurFUVhia6uys/0suUp86TJz5qbJRhc= +github.com/prometheus/procfs v0.21.1 h1:GljZCt+zSTS+NZq88cyQ1LjZ+RCHp3uVuabBWA5+OJI= +github.com/prometheus/procfs v0.21.1/go.mod h1:aB55Cww9pdSJVHk0hUf0inxWyyjPogFIjmHKYgMKmtY= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -158,28 +179,28 @@ github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js= github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= -github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s= -github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0= +github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= +github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stackitcloud/cloud-provider v0.34.2-ske-1 h1:lveBIQaAHS8BqxsdcE4siqjJkT0ttpPqOF3q/ISKEoo= github.com/stackitcloud/cloud-provider v0.34.2-ske-1/go.mod h1:8XqzAplSoVLZzqut82sWHusz6X00C1Djk3BpeKAjfHY= -github.com/stackitcloud/stackit-sdk-go/core v0.20.0 h1:4rrUk6uT1g4nOn5/g1uXukP07Tux/o5xbMz/f/qE1rY= -github.com/stackitcloud/stackit-sdk-go/core v0.20.0/go.mod h1:fqto7M82ynGhEnpZU6VkQKYWYoFG5goC076JWXTUPRQ= -github.com/stackitcloud/stackit-sdk-go/services/iaas v1.2.2 h1:afGHMCqBM/E/FPUvbfSTFb9ddI+eDm2a7DpWPCkxMzs= -github.com/stackitcloud/stackit-sdk-go/services/iaas v1.2.2/go.mod h1:/DlO7+cOqyYKROIxkBYIUdMoEfFevkVXhsShglxyUOQ= -github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.6.1 h1:BHNjq4+OsmVrGu1KBOv0dh/++nwysyINtAUTxNFz2Uo= -github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.6.1/go.mod h1:sTV6ylmBoMOrOxUED8Ebts4a1PaJSPLtmNh5m+s5fus= -github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.18.1 h1:KDa5sy6NSzMOXaf4a9skxOm8oUoleI45fLbD3ww7qsc= -github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.18.1/go.mod h1:+k3iHkWpehO+FLC5WsW7eGhYdNjDklYqRcpIxQBLbZg= +github.com/stackitcloud/stackit-sdk-go/core v0.27.0 h1:7lc6qStcFDFf8zHP4ORPa9joybw+Sa2LtB6BVjKQ+ek= +github.com/stackitcloud/stackit-sdk-go/core v0.27.0/go.mod h1:WU1hhxnjXw2EV7CYa1nlEvNpMiRY6CvmIOaHuL3pOaA= +github.com/stackitcloud/stackit-sdk-go/services/iaas v1.14.3 h1:aDTHf72xgriApCHG9hW2oLd0d8/axo7VGDxex+uqCpA= +github.com/stackitcloud/stackit-sdk-go/services/iaas v1.14.3/go.mod h1:y2mD2nWQ4aG93Yb8IsHfS0qLpxwVaHWVSN4tTvaF680= +github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.15.2 h1:a7zyn+0rRgaOTX+W9Ut037KckptGjNC978ArvsjKjfY= +github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.15.2/go.mod h1:bG7b8OjvqSUf8MTjmkt/RW92YyYhkDgwZ0Z7Y6Evr+c= +github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.25.1 h1:uZrKH0JLZwHmS8sI+//YE2hWDfVxQ1Q3pAf35BZZ6i4= +github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.25.1/go.mod h1:Y5EM8b9qe/+AKI2LJoFvI0PzkyHO5RiW8nQuQaaNaFA= github.com/stoewer/go-strcase v1.3.1 h1:iS0MdW+kVTxgMoE1LAZyMiYJFKlOzLooE4MxjirtkAs= github.com/stoewer/go-strcase v1.3.1/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8wodgtPmh1xo= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/objx v0.5.3 h1:jmXUvGomnU1o3W/V5h2VEradbpJDwGrzugQQvL0POH4= +github.com/stretchr/objx v0.5.3/go.mod h1:rDQraq+vQZU7Fde9LOZLr8Tax6zZvy4kuNKF+QYS+U0= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= @@ -220,22 +241,22 @@ go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 h1:x7wzEgXfnzJcHDwStJT+mxOz4etr2EcexjqhBvmoakw= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0/go.mod h1:rg+RlpR5dKwaS95IyyZqj5Wd4E13lk/msnTS0Xl9lJM= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 h1:CV7UdSGJt/Ao6Gp4CXckLxVRRsRgDHoI8XjbL3PDl8s= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0/go.mod h1:FRmFuRJfag1IZ2dPkHnEoSFVgTVPUd2qf5Vi69hLb8I= -go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8= -go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q= +go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU= +go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 h1:OeNbIYk/2C15ckl7glBlOBp5+WlYsOElzTNmiPW/x60= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0/go.mod h1:7Bept48yIeqxP2OZ9/AqIpYS94h2or0aB4FypJTc8ZM= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 h1:tgJ0uaNS4c98WRNUEx5U3aDlrDOI5Rs+1Vifcw4DJ8U= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0/go.mod h1:U7HYyW0zt/a9x5J1Kjs+r1f/d4ZHnYFclhYY2+YbeoE= -go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA= -go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI= -go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E= -go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg= -go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM= -go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA= -go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE= -go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs= +go.opentelemetry.io/otel/metric v1.44.0 h1:1w0gILTcHdr3YI+ixLyjemwrVnsMURbTZFrSYCdDdmc= +go.opentelemetry.io/otel/metric v1.44.0/go.mod h1:8O7hanEPBNgEMmybD3s2VBKcgWOCsA6tzHBPODAiquo= +go.opentelemetry.io/otel/sdk v1.44.0 h1:nHYwb9lK+fJPU/dnT6s7W7Z8itMWyqrnVfbheVYrZ58= +go.opentelemetry.io/otel/sdk v1.44.0/go.mod h1:Osuydd3Se74nqjAKxid74N5eC+jfEqfTegHRnq58oK0= +go.opentelemetry.io/otel/sdk/metric v1.44.0 h1:3LlKgI+VjbVsjNRFZJZAJ30WjXC5VkNRks6si09iEfI= +go.opentelemetry.io/otel/sdk/metric v1.44.0/go.mod h1:5B5pMARnXxKhltooO4xUuCBorl65a4EpnTalObqOigA= +go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk= +go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE= go.opentelemetry.io/proto/otlp v1.5.0 h1:xJvq7gMzB31/d406fB8U5CBdyQGw4P399D1aQWU/3i4= go.opentelemetry.io/proto/otlp v1.5.0/go.mod h1:keN8WnHxOy8PG0rQZjJJ5A2ebUoafqWp0eVQ4yIXvJ4= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= @@ -246,108 +267,106 @@ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= -go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v2 v2.4.4 h1:tuyd0P+2Ont/d6e2rl3be67goVK4R6deVxCUX5vyPaQ= +go.yaml.in/yaml/v2 v2.4.4/go.mod h1:gMZqIpDtDqOfM0uNfy0SkpRhvUryYH0Z6wdMYcacYXQ= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.43.0 h1:dduJYIi3A3KOfdGOHX8AVZ/jGiyPa3IbBozJ5kNuE04= -golang.org/x/crypto v0.43.0/go.mod h1:BFbav4mRNlXJL4wNeejLpWxB7wMbc79PdRGhWKncxR0= +golang.org/x/crypto v0.55.0 h1:+KWHjbgOaAQ66dh/YlkZKHlz9ZUlq61AFirAR9ntP8M= +golang.org/x/crypto v0.55.0/go.mod h1:uq0V9dE/fzQuJtbnL+2EhWOE63vo164FY8xqEnV9xis= golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b h1:M2rDM6z3Fhozi9O7NWsxAkg/yqS/lQJ6PmkyIV3YP+o= golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b/go.mod h1:3//PLf8L/X+8b4vuAfHzxeRUl04Adcb341+IGKfnqS8= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.28.0 h1:gQBtGhjxykdjY9YhZpSlZIsbnaE2+PgjfLWUQTnoZ1U= -golang.org/x/mod v0.28.0/go.mod h1:yfB/L0NOf/kmEbXjzCPOx1iK1fRutOydrCMsqRhEBxI= +golang.org/x/mod v0.38.0 h1:MECBjubtXD7yj4HrhIUcywNaGeNVUdfVnxmPajOk4yk= +golang.org/x/mod v0.38.0/go.mod h1:V6Xz0pq8TQ3dGqVQ1FVHuelZpAL0uNhSkk9ogYP3c40= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.46.1-0.20251013234738-63d1a5100f82 h1:6/3JGEh1C88g7m+qzzTbl3A0FtsLguXieqofVLU/JAo= -golang.org/x/net v0.46.1-0.20251013234738-63d1a5100f82/go.mod h1:Q9BGdFy1y4nkUwiLvT5qtyhAnEHgnQ/zd8PfU6nc210= -golang.org/x/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY= -golang.org/x/oauth2 v0.32.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= +golang.org/x/net v0.58.0 h1:ynWG7rqYi4ccpTEuPZ2QGWHktVEM9DMCj9yzDE0Q7To= +golang.org/x/net v0.58.0/go.mod h1:YwCddHnFlT7eLQqVprV19OnhLGtc5xOKgE0RyqgfWAU= +golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs= +golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= -golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sync v0.23.0 h1:KameEIfc1IkluZyXWLn39Wd4tURc6GbCiISGiZm2bQk= +golang.org/x/sync v0.23.0/go.mod h1:sUUOizhqBxiL6pEWpqNLUiaJn1ShEbZ6BBqskPbjZm0= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= -golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= -golang.org/x/term v0.36.0 h1:zMPR+aF8gfksFprF/Nc/rd1wRS1EI6nDBGyWAvDzx2Q= -golang.org/x/term v0.36.0/go.mod h1:Qu394IJq6V6dCBRgwqshf3mPF85AqzYEzofzRdZkWss= +golang.org/x/sys v0.48.0 h1:bbX/i/6MgT9BVLM9RT1thmxL04yeTAhbEz4SyadbXoo= +golang.org/x/sys v0.48.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= +golang.org/x/term v0.45.0 h1:NwWyBmoJCbfTHpxrWoZ9C6/VxOf7ic219I8xZZFdrf0= +golang.org/x/term v0.45.0/go.mod h1:9aqxs0blBcrm/n0L9QW0aRVD+ktan8ssZromtqJC43w= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.30.0 h1:yznKA/E9zq54KzlzBEAWn1NXSQ8DIp/NYMy88xJjl4k= -golang.org/x/text v0.30.0/go.mod h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM= +golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8= +golang.org/x/text v0.41.0/go.mod h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M= golang.org/x/time v0.10.0 h1:3usCWA8tQn0L8+hFJQNgzpWbd89begxN66o1Ojdn5L4= golang.org/x/time v0.10.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.37.0 h1:DVSRzp7FwePZW356yEAChSdNcQo6Nsp+fex1SUW09lE= -golang.org/x/tools v0.37.0/go.mod h1:MBN5QPQtLMHVdvsbtarmTNukZDdgwdwlO5qGacAzF0w= +golang.org/x/tools v0.48.0 h1:3+hClM1aLL5mjMKm5ovokw9epgRXPuu2tILgismM6RE= +golang.org/x/tools v0.48.0/go.mod h1:08xX0orndb/F7jJxGDicx061tyd5pcMto75YMAXr6lk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= -gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= -google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8 h1:mepRgnBZa07I4TRuomDE4sTIYieg/osKmzIf4USdWS4= -google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8/go.mod h1:fDMmzKV90WSg1NbozdqrE64fkuTv6mlq2zxo9ad+3yo= -google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 h1:M1rk8KBnUsBDg1oPGHNCxG4vc1f49epmTO7xscSajMk= -google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk= -google.golang.org/grpc v1.77.0 h1:wVVY6/8cGA6vvffn+wWK5ToddbgdU3d8MNENr4evgXM= -google.golang.org/grpc v1.77.0/go.mod h1:z0BY1iVj0q8E1uSQCjL9cppRj+gnZjzDnzV0dHhrNig= -google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= -google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= +gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= +gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= +google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa h1:Kjn0N0tCrDgiAFW+lGO4JZ3ck44CehvJQMAwj9QF0G8= +google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:q4lMZS6kskjT5HvCPrnnypcDPVJqT/f4nfxmkE7gryY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa h1:mZHHdPZl0dbGHCflZgAq/Q468DWVFcU2whhB2KAo8fk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/grpc v1.83.2 h1:EManeRomTObA0BU7I8vXgg/78uE5MJ9M8B39EX2WscU= +google.golang.org/grpc v1.83.2/go.mod h1:YPI1hK3kDked6iHvgX3tR0y+nX/qpMFKhPgFsokw1S8= +google.golang.org/protobuf v1.36.12 h1:pJOKDDOyeXErUroCihFAd5LQuwXBSpVnKGrj5o/fwxc= +google.golang.org/protobuf v1.36.12/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= -gopkg.in/gcfg.v1 v1.2.3 h1:m8OOJ4ccYHnx2f4gQwpno8nAX5OGOh7RLaaz0pj3Ogs= -gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= -gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= -gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.34.2 h1:fsSUNZhV+bnL6Aqrp6O7lMTy6o5x2C4XLjnh//8SLYY= -k8s.io/api v0.34.2/go.mod h1:MMBPaWlED2a8w4RSeanD76f7opUoypY8TFYkSM+3XHw= -k8s.io/apimachinery v0.34.2 h1:zQ12Uk3eMHPxrsbUJgNF8bTauTVR2WgqJsTmwTE/NW4= -k8s.io/apimachinery v0.34.2/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw= +k8s.io/api v0.34.11 h1:LkxGIHlj06urNrS5Gpgj2iFRRgja+0tUV0+ejZ6j/T8= +k8s.io/api v0.34.11/go.mod h1:b1wzM4EH4H4FtXVDK3zAnG1zG/NBQBwtPeahyyYYDIU= +k8s.io/apimachinery v0.34.11 h1:N29JKPe3cXeLmc8QhFILkKU7jYq47EWG1zAZNOIawnM= +k8s.io/apimachinery v0.34.11/go.mod h1:xfCr+Akw9yI3OXIqWDjOaQCklbC498VcPxtFJpRK+FI= k8s.io/apiserver v0.34.2 h1:2/yu8suwkmES7IzwlehAovo8dDE07cFRC7KMDb1+MAE= k8s.io/apiserver v0.34.2/go.mod h1:gqJQy2yDOB50R3JUReHSFr+cwJnL8G1dzTA0YLEqAPI= -k8s.io/client-go v0.34.2 h1:Co6XiknN+uUZqiddlfAjT68184/37PS4QAzYvQvDR8M= -k8s.io/client-go v0.34.2/go.mod h1:2VYDl1XXJsdcAxw7BenFslRQX28Dxz91U9MWKjX97fE= -k8s.io/component-base v0.34.2 h1:HQRqK9x2sSAsd8+R4xxRirlTjowsg6fWCPwWYeSvogQ= -k8s.io/component-base v0.34.2/go.mod h1:9xw2FHJavUHBFpiGkZoKuYZ5pdtLKe97DEByaA+hHbM= +k8s.io/client-go v0.34.11 h1:ibO8IP6RMp6JImv47JIW6ZUcZky98zLnzaGIsD6yQWM= +k8s.io/client-go v0.34.11/go.mod h1:MxE93lNP2kK12JL4S74ddZctG0Pt6JVLiK8nLwlMxyY= +k8s.io/component-base v0.34.11 h1:50VIebvKt44VqhHryaLSlrOZjYXgco6fAZh/Nmohdi0= +k8s.io/component-base v0.34.11/go.mod h1:5dkfKHMhdWss0P2VMzqZydFxybctuvyXmwUvY3pJyIM= k8s.io/component-helpers v0.34.2 h1:RIUGDdU+QFzeVKLZ9f05sXTNAtJrRJ3bnbMLrogCrvM= k8s.io/component-helpers v0.34.2/go.mod h1:pLi+GByuRTeFjjcezln8gHL7LcT6HImkwVQ3A2SQaEE= k8s.io/controller-manager v0.34.2 h1:bjdSLh5nnSde5jfRW/rdPDOSYbwUMxs+9JUcbyL6LP8= k8s.io/controller-manager v0.34.2/go.mod h1:sR6wSdANfbdXBTtg2Fwp1ruo/1TJgSilooT6FDxZj4A= -k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= -k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/klog/v2 v2.140.0 h1:Tf+J3AH7xnUzZyVVXhTgGhEKnFqye14aadWv7bzXdzc= +k8s.io/klog/v2 v2.140.0/go.mod h1:o+/RWfJ6PwpnFn7OyAG3QnO47BFsymfEfrz6XyYSSp0= k8s.io/kms v0.34.2 h1:91rj4MDZLyIT9KxG8J5/CcMH666Z88CF/xJQeuPfJc8= k8s.io/kms v0.34.2/go.mod h1:s1CFkLG7w9eaTYvctOxosx88fl4spqmixnNpys0JAtM= k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA= k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts= -k8s.io/mount-utils v0.33.3 h1:Q1jsnqdS4LdtJSYSXgiQv/XNrRHQncLk3gMYjKNSZrE= -k8s.io/mount-utils v0.33.3/go.mod h1:1JR4rKymg8B8bCPo618hpSAdrpO6XLh0Acqok/xVwPE= -k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck= -k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/mount-utils v0.34.11 h1:D4s/5vS59ino5fUua4A5gQYvbhNOCZ5pC8cRSghg+SU= +k8s.io/mount-utils v0.34.11/go.mod h1:475g0iJ43vMDIZj+vDzHR05N5wqif3r/yJhkb3tXxhg= +k8s.io/utils v0.0.0-20260707023825-cf1189d6abe3 h1:jVkFFVfXdXP74B/zbO3hM3hpSFD0xvhQ5U686DPurkE= +k8s.io/utils v0.0.0-20260707023825-cf1189d6abe3/go.mod h1:M2s5JB1lIYP3jzZdorPLHXIPJzt9vv2muW5a6L9DtNM= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 h1:jpcvIRr3GLoUoEKRkHKSmGjxb6lWwrBlJsXc+eUYQHM= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw= sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= diff --git a/hack/build.sh b/hack/build.sh index e926165e..a34442f7 100755 --- a/hack/build.sh +++ b/hack/build.sh @@ -44,9 +44,14 @@ if [[ -n "${PULL_NUMBER:=""}" ]]; then tags+=("pr-${PULL_NUMBER}") fi -# tag for release builds +# Tag for release builds +# Overwrite the tags, we don't need tags for branch or the date-commit_sha in released versions. if git_tag="$(git describe --tags --exact-match 2>/dev/null)"; then - tags+=("$git_tag") + tags=("$git_tag") + # For clean semver tags we also add a tag without patch version. To have a "latest" for each k8s version. + if [[ $git_tag =~ ^v?[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + tags+=("${git_tag%.*}") + fi fi if [[ ${IS_DEV} == "true" ]]; then diff --git a/hack/test.sh b/hack/test.sh index 10c78774..295ce866 100755 --- a/hack/test.sh +++ b/hack/test.sh @@ -24,4 +24,4 @@ else timeout_flag="-timeout=2m" fi -go test ${timeout_flag:+"$timeout_flag"} "$@" "${test_flags[@]}" +go test ${timeout_flag:+"$timeout_flag"} "$@" ${test_flags[@]+"${test_flags[@]}"} diff --git a/hack/tools.mk b/hack/tools.mk index 467bbf81..c7dd30af 100644 --- a/hack/tools.mk +++ b/hack/tools.mk @@ -5,15 +5,15 @@ OS := $(shell uname -s | tr "[:upper:]" "[:lower:]") ARCH := $(shell uname -m) # renovate: datasource=github-releases depName=incu6us/goimports-reviser -GOIMPORTS_REVISER_VERSION ?= v3.10.0 +GOIMPORTS_REVISER_VERSION ?= v3.13.2 # renovate: datasource=github-releases depName=golangci/golangci-lint -GOLANGCI_LINT_VERSION ?= v2.6.2 +GOLANGCI_LINT_VERSION ?= v2.13.2 # renovate: datasource=github-releases depName=uber-go/mock MOCKGEN_VERSION ?= v0.6.0 # renovate: datasource=github-releases depName=chainguard-dev/apko -APKO_VERSION ?= v0.30.24 +APKO_VERSION ?= v1.3.1 # renovate: datasource=github-releases depName=ko-build/ko -KO_VERSION ?= v0.18.0 +KO_VERSION ?= v0.19.1 KUBERNETES_TEST_VERSION ?= v1.33.5 @@ -39,7 +39,7 @@ $(GOIMPORTS_REVISER): $(call tool_version_file,$(GOIMPORTS_REVISER),$(GOIMPORTS_ GOLANGCI_LINT := $(TOOLS_BIN_DIR)/golangci-lint $(GOLANGCI_LINT): $(call tool_version_file,$(GOLANGCI_LINT),$(GOLANGCI_LINT_VERSION)) - curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(TOOLS_BIN_DIR) $(GOLANGCI_LINT_VERSION) + curl -sSfL https://golangci-lint.run/install.sh | sh -s -- -b $(TOOLS_BIN_DIR) $(GOLANGCI_LINT_VERSION) MOCKGEN := $(TOOLS_BIN_DIR)/mockgen $(MOCKGEN): $(call tool_version_file,$(MOCKGEN),$(MOCKGEN_VERSION)) diff --git a/pkg/ccm/instances.go b/pkg/ccm/instances.go index ff5af98b..ef8140b5 100644 --- a/pkg/ccm/instances.go +++ b/pkg/ccm/instances.go @@ -21,12 +21,14 @@ import ( "errors" "fmt" "regexp" + "slices" "strings" "github.com/stackitcloud/cloud-provider-stackit/pkg/labels" - "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit" - "github.com/stackitcloud/stackit-sdk-go/services/iaas" - + stackitclient "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/client" + "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/config" + "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/stackiterrors" + iaas "github.com/stackitcloud/stackit-sdk-go/services/iaas/v2api" corev1 "k8s.io/api/core/v1" cloudprovider "k8s.io/cloud-provider" "k8s.io/klog/v2" @@ -47,17 +49,17 @@ var oldProviderIDRegexp = regexp.MustCompile(`^` + oldProviderName + `://([^/]*) // Instances encapsulates an implementation of Instances for OpenStack. type Instances struct { regionProviderID bool - iaasClient stackit.NodeClient - projectID string + iaasClient stackitclient.IaaSClient region string + defaultNetwork string } -func NewInstance(client stackit.NodeClient, projectID, region string) (*Instances, error) { +func NewInstance(client stackitclient.IaaSClient, region string, opts config.InstanceOpts) (*Instances, error) { return &Instances{ iaasClient: client, - projectID: projectID, region: region, regionProviderID: false, + defaultNetwork: opts.DefaultNetwork, }, nil } @@ -65,7 +67,7 @@ func NewInstance(client stackit.NodeClient, projectID, region string) (*Instance func (i *Instances) InstanceExists(ctx context.Context, node *corev1.Node) (bool, error) { _, err := i.getInstance(ctx, node) if errors.Is(err, cloudprovider.InstanceNotFound) { - klog.V(6).Infof("instance not found for node: %s", node.Name) + klog.V(6).Infof("Instance not found for node: %s", node.Name) return false, nil } if err != nil { @@ -94,7 +96,7 @@ func (i *Instances) InstanceShutdown(ctx context.Context, node *corev1.Node) (bo func (i *Instances) InstanceMetadata(ctx context.Context, node *corev1.Node) (*cloudprovider.InstanceMetadata, error) { server, err := i.getInstance(ctx, node) if errors.Is(err, cloudprovider.InstanceNotFound) { - klog.V(6).Infof("instance not found for node: %s", node.Name) + klog.V(6).Infof("Instance not found for node: %s", node.Name) return nil, nil } if err != nil { @@ -105,27 +107,30 @@ func (i *Instances) InstanceMetadata(ctx context.Context, node *corev1.Node) (*c if len(server.GetNics()) == 0 { return nil, fmt.Errorf("server has no network interfaces") } - for _, nic := range server.GetNics() { - if ipv4, ok := nic.GetIpv4Ok(); ok { + + nics := sortNics(server.GetNics(), i.defaultNetwork) + for i := range nics { + nic := &nics[i] + if nic.HasIpv4() { addToNodeAddresses(&addresses, corev1.NodeAddress{ - Address: ipv4, + Address: nic.GetIpv4(), Type: corev1.NodeInternalIP, }) } - if ipv6, ok := nic.GetIpv6Ok(); ok { + if nic.HasIpv6() { addToNodeAddresses(&addresses, corev1.NodeAddress{ - Address: ipv6, + Address: nic.GetIpv6(), Type: corev1.NodeInternalIP, }) } - if publicIP, ok := nic.GetPublicIpOk(); ok { + if nic.HasPublicIp() { addToNodeAddresses(&addresses, corev1.NodeAddress{ - Address: publicIP, + Address: nic.GetPublicIp(), Type: corev1.NodeExternalIP, }) } @@ -152,6 +157,36 @@ func (i *Instances) makeInstanceID(server *iaas.Server) string { return fmt.Sprintf("%s://%s", ProviderName, server.GetId()) } +// sortNics sorts a slice of server network interfaces alphabetically by their network name +// to ensure a deterministic order. If a non-empty defaultNetwork is provided (matching either +// the NetworkName or NetworkId), that specific network interface is moved to the front (index 0) +// of the returned slice. +func sortNics(nics []iaas.ServerNetwork, defaultNetwork string) []iaas.ServerNetwork { + // nics are returned by IaaS API in a non-deterministic order + // Sort by network name so that every time we use the same order for node addresses + slices.SortFunc(nics, func(a, b iaas.ServerNetwork) int { + return strings.Compare(a.NetworkName, b.NetworkName) + }) + + if defaultNetwork == "" { + return nics + } + + idx := slices.IndexFunc(nics, func(nic iaas.ServerNetwork) bool { + return nic.NetworkName == defaultNetwork || nic.NetworkId == defaultNetwork + }) + // network not found + if idx == -1 { + klog.Infof("no NIC found for default network %s", defaultNetwork) + return nics + } + defaultNic := nics[idx] + nics = slices.Delete(nics, idx, idx+1) + // prepend default nic + nics = slices.Insert(nics, 0, defaultNic) + return nics +} + // addToNodeAddresses appends the NodeAddresses to the passed-by-pointer slice, // only if they do not already exist func addToNodeAddresses(addresses *[]corev1.NodeAddress, addAddresses ...corev1.NodeAddress) { @@ -200,8 +235,8 @@ func instanceIDFromProviderID(providerID string) (instanceID, region string, err } } -func getServerByName(ctx context.Context, client stackit.NodeClient, name, projectID, region string) (*iaas.Server, error) { - servers, err := client.ListServers(ctx, projectID, region) +func getServerByName(ctx context.Context, client stackitclient.IaaSClient, name string) (*iaas.Server, error) { + servers, err := client.ListServers(ctx) if err != nil { return nil, fmt.Errorf("failed to list servers: %w", err) } @@ -214,7 +249,7 @@ func getServerByName(ctx context.Context, client stackit.NodeClient, name, proje // TODO: Implement field selector for ListServers so we don't have to do the following for i := range serverList { server := serverList[i] - if serverName, ok := server.GetNameOk(); ok && serverName == name { + if server.GetName() == name { return &server, nil } } @@ -224,7 +259,7 @@ func getServerByName(ctx context.Context, client stackit.NodeClient, name, proje func (i *Instances) getInstance(ctx context.Context, node *corev1.Node) (*iaas.Server, error) { if node.Spec.ProviderID == "" { - return getServerByName(ctx, i.iaasClient, node.Name, i.projectID, i.region) + return getServerByName(ctx, i.iaasClient, node.Name) } instanceID, instanceRegion, err := instanceIDFromProviderID(node.Spec.ProviderID) @@ -236,8 +271,8 @@ func (i *Instances) getInstance(ctx context.Context, node *corev1.Node) (*iaas.S return nil, fmt.Errorf("ProviderID \"%s\" didn't match supported region \"%s\"", node.Spec.ProviderID, i.region) } - server, err := i.iaasClient.GetServer(ctx, i.projectID, i.region, instanceID) - if stackit.IsNotFound(err) { + server, err := i.iaasClient.GetServerWithDetails(ctx, instanceID) + if stackiterrors.IsNotFound(err) { return nil, cloudprovider.InstanceNotFound } if err != nil { diff --git a/pkg/ccm/instances_test.go b/pkg/ccm/instances_test.go index 8c8ce4ad..bb127ee9 100644 --- a/pkg/ccm/instances_test.go +++ b/pkg/ccm/instances_test.go @@ -19,39 +19,38 @@ package ccm import ( "context" "fmt" + "net/http" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" + oapiError "github.com/stackitcloud/stackit-sdk-go/core/oapierror" - "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit" - "github.com/stackitcloud/stackit-sdk-go/services/iaas" - + stackitclientmock "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/client/mock" + "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/config" + iaas "github.com/stackitcloud/stackit-sdk-go/services/iaas/v2api" "go.uber.org/mock/gomock" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/utils/ptr" ) var _ = Describe("Node Controller", func() { var ( - nodeMockClient *stackit.MockNodeClient + nodeMockClient *stackitclientmock.MockIaaSClient instance *Instances - projectID string - region string - serverID string + region string + serverID string ) BeforeEach(func() { - projectID = "my-project" region = "eu01" serverID = "my-server" ctrl := gomock.NewController(GinkgoT()) - nodeMockClient = stackit.NewMockNodeClient(ctrl) + nodeMockClient = stackitclientmock.NewMockIaaSClient(ctrl) var err error - instance, err = NewInstance(nodeMockClient, projectID, "eu01") + instance, err = NewInstance(nodeMockClient, "eu01", config.InstanceOpts{}) Expect(err).NotTo(HaveOccurred()) }) @@ -69,7 +68,7 @@ var _ = Describe("Node Controller", func() { Describe("InstanceExists", func() { It("does not error if instance not found", func() { - nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID, region).Return(&[]iaas.Server{}, nil) + nodeMockClient.EXPECT().ListServers(gomock.Any()).Return(&[]iaas.Server{}, nil) node := &corev1.Node{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, @@ -81,9 +80,9 @@ var _ = Describe("Node Controller", func() { }) It("successfully get the instance when provider ID not there", func() { - nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID, region).Return(&[]iaas.Server{ + nodeMockClient.EXPECT().ListServers(gomock.Any()).Return(&[]iaas.Server{ { - Name: ptr.To("foo"), + Name: "foo", }, }, nil) @@ -97,8 +96,8 @@ var _ = Describe("Node Controller", func() { }) It("successfully get the instance when provider ID is there", func() { - nodeMockClient.EXPECT().GetServer(gomock.Any(), projectID, region, serverID).Return(&iaas.Server{ - Name: ptr.To("foo"), + nodeMockClient.EXPECT().GetServerWithDetails(gomock.Any(), serverID).Return(&iaas.Server{ + Name: "foo", }, nil) node := &corev1.Node{ @@ -114,8 +113,8 @@ var _ = Describe("Node Controller", func() { }) It("successfully get the instance when old provider ID is there", func() { - nodeMockClient.EXPECT().GetServer(gomock.Any(), projectID, region, serverID).Return(&iaas.Server{ - Name: ptr.To("foo"), + nodeMockClient.EXPECT().GetServerWithDetails(gomock.Any(), serverID).Return(&iaas.Server{ + Name: "foo", }, nil) node := &corev1.Node{ @@ -131,8 +130,8 @@ var _ = Describe("Node Controller", func() { }) It("successfully get the instance when old regional provider ID is there", func() { - nodeMockClient.EXPECT().GetServer(gomock.Any(), projectID, region, serverID).Return(&iaas.Server{ - Name: ptr.To("foo"), + nodeMockClient.EXPECT().GetServerWithDetails(gomock.Any(), serverID).Return(&iaas.Server{ + Name: "foo", }, nil) node := &corev1.Node{ @@ -148,7 +147,7 @@ var _ = Describe("Node Controller", func() { }) It("error when list server fails", func() { - nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID, region).Return(nil, fmt.Errorf("failed due to some reason")) + nodeMockClient.EXPECT().ListServers(gomock.Any()).Return(nil, fmt.Errorf("failed due to some reason")) node := &corev1.Node{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, @@ -159,7 +158,7 @@ var _ = Describe("Node Controller", func() { }) It("does not error when get server instance not found", func() { - nodeMockClient.EXPECT().GetServer(gomock.Any(), projectID, region, serverID).Return(nil, stackit.ErrorNotFound) + nodeMockClient.EXPECT().GetServerWithDetails(gomock.Any(), serverID).Return(nil, &oapiError.GenericOpenAPIError{StatusCode: http.StatusNotFound}) node := &corev1.Node{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, @@ -176,10 +175,10 @@ var _ = Describe("Node Controller", func() { Describe("InstanceShutdown", func() { It("successfully gets the instance status with provider ID", func() { - nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID, region).Return(&[]iaas.Server{ + nodeMockClient.EXPECT().ListServers(gomock.Any()).Return(&[]iaas.Server{ { - Name: ptr.To("foo"), - Status: ptr.To(instanceStopping), + Name: "foo", + Status: new(instanceStopping), }, }, nil) @@ -193,9 +192,9 @@ var _ = Describe("Node Controller", func() { }) It("successfully gets the instance status without provider ID", func() { - nodeMockClient.EXPECT().GetServer(gomock.Any(), projectID, region, serverID).Return(&iaas.Server{ - Name: ptr.To("foo"), - Status: ptr.To("ACTIVE"), + nodeMockClient.EXPECT().GetServerWithDetails(gomock.Any(), serverID).Return(&iaas.Server{ + Name: "foo", + Status: new("ACTIVE"), }, nil) node := &corev1.Node{ @@ -211,7 +210,7 @@ var _ = Describe("Node Controller", func() { }) It("fails if server not found", func() { - nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID, region).Return(nil, stackit.ErrorNotFound) + nodeMockClient.EXPECT().ListServers(gomock.Any()).Return(nil, &oapiError.GenericOpenAPIError{StatusCode: http.StatusNotFound}) node := &corev1.Node{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, @@ -225,7 +224,7 @@ var _ = Describe("Node Controller", func() { Describe("InstanceMetadata", func() { It("does not error if instance not found", func() { - nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID, region).Return(&[]iaas.Server{}, nil) + nodeMockClient.EXPECT().ListServers(gomock.Any()).Return(&[]iaas.Server{}, nil) node := &corev1.Node{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, @@ -237,14 +236,14 @@ var _ = Describe("Node Controller", func() { }) It("successfully get all the metadata values", func() { - nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID, region).Return(&[]iaas.Server{ + nodeMockClient.EXPECT().ListServers(gomock.Any()).Return(&[]iaas.Server{ { - Name: ptr.To("foo"), - Id: ptr.To(serverID), - MachineType: ptr.To("flatcar"), - Nics: &[]iaas.ServerNetwork{ + Name: "foo", + Id: new(serverID), + MachineType: "flatcar", + Nics: []iaas.ServerNetwork{ { - Ipv4: ptr.To("10.10.100.24"), + Ipv4: new("10.10.100.24"), }, }, }, @@ -272,7 +271,7 @@ var _ = Describe("Node Controller", func() { }) It("errors when list server fails", func() { - nodeMockClient.EXPECT().ListServers(gomock.Any(), projectID, region).Return(nil, fmt.Errorf("failed due to some reason")) + nodeMockClient.EXPECT().ListServers(gomock.Any()).Return(nil, fmt.Errorf("failed due to some reason")) node := &corev1.Node{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, @@ -283,4 +282,39 @@ var _ = Describe("Node Controller", func() { Expect(metadata).To(BeNil()) }) }) + + Describe("#sortNics", func() { + It("should return the nic of the default network as primary", func() { + nics := []iaas.ServerNetwork{ + { + NetworkName: "abc", + NetworkId: "69", + Ipv4: new("10.0.0.69"), + }, + { + NetworkName: "default", + NetworkId: "69", + Ipv4: new("192.168.0.123"), + }, + { + NetworkName: "foo", + NetworkId: "123", + Ipv4: new("100.80.0.5"), + }, + } + By("with network name") + newNics := sortNics(nics, "default") + Expect(newNics).To(HaveLen(3)) + Expect(newNics[0].NetworkName).To(Equal("default")) + Expect(newNics[1].NetworkName).To(Equal("abc")) + Expect(newNics[2].NetworkName).To(Equal("foo")) + + By("with network id") + newNics = sortNics(nics, "123") + Expect(newNics).To(HaveLen(3)) + Expect(newNics[0].NetworkId).To(Equal("123")) + Expect(newNics[1].NetworkId).To(Equal("69")) + Expect(newNics[2].NetworkId).To(Equal("69")) + }) + }) }) diff --git a/pkg/ccm/loadbalancer.go b/pkg/ccm/loadbalancer.go index 93f32337..3f43ddd5 100644 --- a/pkg/ccm/loadbalancer.go +++ b/pkg/ccm/loadbalancer.go @@ -7,15 +7,15 @@ import ( "strings" "time" - "github.com/stackitcloud/stackit-sdk-go/services/loadbalancer" + "github.com/stackitcloud/cloud-provider-stackit/pkg/cmp" + stackitclient "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/client" + stackitconfig "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/config" + "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/stackiterrors" + loadbalancer "github.com/stackitcloud/stackit-sdk-go/services/loadbalancer/v2api" corev1 "k8s.io/api/core/v1" "k8s.io/client-go/tools/record" cloudprovider "k8s.io/cloud-provider" "k8s.io/cloud-provider/api" - "k8s.io/utils/ptr" - - "github.com/stackitcloud/cloud-provider-stackit/pkg/cmp" - "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit" ) const ( @@ -39,25 +39,21 @@ type MetricsRemoteWrite struct { // LoadBalancer is used for creating and maintaining load balancers. type LoadBalancer struct { - client stackit.LoadbalancerClient - recorder record.EventRecorder // set in CloudControllerManager.Initialize - projectID string - networkID string - extraLabels map[string]string + client stackitclient.LoadBalancingClient + recorder record.EventRecorder // set in CloudControllerManager.Initialize + opts stackitconfig.LoadBalancerOpts // metricsRemoteWrite setting this enables remote writing of metrics and nil means it is disabled metricsRemoteWrite *MetricsRemoteWrite } var _ cloudprovider.LoadBalancer = (*LoadBalancer)(nil) -func NewLoadBalancer(client stackit.LoadbalancerClient, projectID, networkID string, extraLabels map[string]string, metricsRemoteWrite *MetricsRemoteWrite) (*LoadBalancer, error) { //nolint:lll // looks weird when shortened +func NewLoadBalancer(client stackitclient.LoadBalancingClient, opts stackitconfig.LoadBalancerOpts, metricsRemoteWrite *MetricsRemoteWrite) (*LoadBalancer, error) { //nolint:lll // looks weird when shortened // LoadBalancer.recorder is set in CloudControllerManager.Initialize return &LoadBalancer{ client: client, - projectID: projectID, - networkID: networkID, + opts: opts, metricsRemoteWrite: metricsRemoteWrite, - extraLabels: extraLabels, }, nil } @@ -68,9 +64,9 @@ func NewLoadBalancer(client stackit.LoadbalancerClient, projectID, networkID str func (l *LoadBalancer) GetLoadBalancer(ctx context.Context, clusterName string, service *corev1.Service) ( status *corev1.LoadBalancerStatus, exists bool, err error, ) { - lb, err := l.client.GetLoadBalancer(ctx, l.projectID, l.GetLoadBalancerName(ctx, clusterName, service)) + lb, err := l.client.GetLoadBalancer(ctx, l.GetLoadBalancerName(ctx, clusterName, service)) switch { - case stackit.IsNotFound(err): + case stackiterrors.IsNotFound(err): // Also for non-STACKIT load balancers in "update" & "updateAndCreate" mode return with no error if not found. return nil, false, nil case err != nil: @@ -106,18 +102,18 @@ func (l *LoadBalancer) GetLoadBalancerName(_ context.Context, _ string, service // load balancer is not ready yet (e.g., it is still being provisioned) and // polling at a fixed rate is preferred over backing off exponentially in // order to minimize latency. -func (l *LoadBalancer) EnsureLoadBalancer( +func (l *LoadBalancer) EnsureLoadBalancer( //nolint:gocyclo // not really complex ctx context.Context, clusterName string, service *corev1.Service, nodes []*corev1.Node, ) (*corev1.LoadBalancerStatus, error) { name := l.GetLoadBalancerName(ctx, clusterName, service) - lb, err := l.client.GetLoadBalancer(ctx, l.projectID, name) - if err != nil && !stackit.IsNotFound(err) { + lb, err := l.client.GetLoadBalancer(ctx, name) + if err != nil && !stackiterrors.IsNotFound(err) { return nil, err } - if stackit.IsNotFound(err) { + if stackiterrors.IsNotFound(err) { return l.createLoadBalancer(ctx, clusterName, service, nodes) } @@ -126,7 +122,7 @@ func (l *LoadBalancer) EnsureLoadBalancer( return nil, fmt.Errorf("reconcile metricsRemoteWrite: %w", err) } - spec, events, err := lbSpecFromService(service, nodes, l.networkID, observabilityOptions) + spec, events, err := lbSpecFromService(service, nodes, l.opts, observabilityOptions) if err != nil { return nil, fmt.Errorf("invalid load balancer specification: %w", err) } @@ -137,7 +133,11 @@ func (l *LoadBalancer) EnsureLoadBalancer( fulfills, immutableChanged := compareLBwithSpec(lb, spec) if immutableChanged != nil { - return nil, fmt.Errorf("updated to load balancer cannot be fulfilled. Load balancer API doesn't support changing %q", immutableChanged.field) + changeStr := fmt.Sprintf("%q", immutableChanged.field) + if immutableChanged.annotation != "" { + changeStr += fmt.Sprintf(" (%q)", immutableChanged.annotation) + } + return nil, fmt.Errorf("update to load balancer cannot be fulfilled: API doesn't support changing %s", changeStr) } if !fulfills { credentialsRefBeforeUpdate := getMetricsRemoteWriteRef(lb) @@ -146,21 +146,19 @@ func (l *LoadBalancer) EnsureLoadBalancer( spec.Version = lb.Version spec.Name = &name updatePayload := &loadbalancer.UpdateLoadBalancerPayload{ - Errors: spec.Errors, - ExternalAddress: spec.ExternalAddress, - Listeners: spec.Listeners, - Name: spec.Name, - Networks: spec.Networks, - Options: spec.Options, - PlanId: spec.PlanId, - PrivateAddress: spec.PrivateAddress, - Region: spec.Region, - Labels: spec.Labels, - Status: loadbalancer.UpdateLoadBalancerPayloadGetStatusAttributeType(spec.Status), - TargetPools: spec.TargetPools, - Version: spec.Version, + ExternalAddress: spec.ExternalAddress, + Listeners: spec.Listeners, + Name: spec.Name, + Networks: spec.Networks, + Options: spec.Options, + PlanId: spec.PlanId, + Region: spec.Region, + Labels: spec.Labels, + TargetPools: spec.TargetPools, + DisableTargetSecurityGroupAssignment: lb.DisableTargetSecurityGroupAssignment, + Version: spec.Version, } - lb, err = l.client.UpdateLoadBalancer(ctx, l.projectID, name, updatePayload) + lb, err = l.client.UpdateLoadBalancer(ctx, name, updatePayload) if err != nil { return nil, fmt.Errorf("failed to update load balancer: %w", err) } @@ -169,17 +167,28 @@ func (l *LoadBalancer) EnsureLoadBalancer( // At the latest, they will be removed when the service is deleted or Argus is enabled again. // This is preferred over listing all credentials in the project on each reconciliation. if l.metricsRemoteWrite == nil && credentialsRefBeforeUpdate != nil { - err = l.client.DeleteCredentials(ctx, l.projectID, *credentialsRefBeforeUpdate) + err = l.client.DeleteCredentials(ctx, *credentialsRefBeforeUpdate) if err != nil { return nil, fmt.Errorf("delete metricsRemoteWrite credentials %q: %w", *credentialsRefBeforeUpdate, err) } } } - if *lb.Status == loadbalancer.LOADBALANCERSTATUS_ERROR { - return nil, fmt.Errorf("the load balancer is in an error state") + if lb.Status != nil && *lb.Status == loadbalancer.LOADBALANCERSTATUS_STATUS_ERROR { + errorsList := lb.GetErrors() + + if len(errorsList) == 0 { + return nil, fmt.Errorf("the load balancer is in an error state") + } + + var errMessages []string + for _, lbErr := range errorsList { + errMessages = append(errMessages, fmt.Sprintf("[%s] %s", lbErr.GetType(), lbErr.GetDescription())) + } + + return nil, fmt.Errorf("the load balancer is in an error state: %s", strings.Join(errMessages, "; ")) } - if *lb.Status != loadbalancer.LOADBALANCERSTATUS_READY { + if lb.Status == nil || *lb.Status != loadbalancer.LOADBALANCERSTATUS_STATUS_READY { return nil, api.NewRetryError("waiting for load balancer to become ready. This error is normal while the load balancer starts.", retryDuration) } @@ -202,24 +211,24 @@ func (l *LoadBalancer) createLoadBalancer(ctx context.Context, clusterName strin return nil, fmt.Errorf("reconcile metricsRemoteWrite: %w", err) } - spec, events, err := lbSpecFromService(service, nodes, l.networkID, metricsRemoteWrite) + spec, events, err := lbSpecFromService(service, nodes, l.opts, metricsRemoteWrite) if err != nil { return nil, fmt.Errorf("invalid load balancer specification: %w", err) } - if l.extraLabels != nil { - spec.Labels = ptr.To(l.extraLabels) + if l.opts.ExtraLabels != nil { + spec.Labels = new(l.opts.ExtraLabels) } for _, event := range events { l.recorder.Event(service, event.Type, event.Reason, event.Message) } spec.Name = &name - lb, createErr := l.client.CreateLoadBalancer(ctx, l.projectID, spec) + lb, createErr := l.client.CreateLoadBalancer(ctx, spec) if createErr != nil { return nil, createErr } - if lb.Status == nil || *lb.Status != loadbalancer.LOADBALANCERSTATUS_READY { + if lb.Status == nil || *lb.Status != loadbalancer.LOADBALANCERSTATUS_STATUS_READY { return nil, api.NewRetryError("waiting for load balancer to become ready. This error is normal while the load balancer starts.", retryDuration) } @@ -234,7 +243,7 @@ func (l *LoadBalancer) createLoadBalancer(ctx context.Context, clusterName strin // It is not called on controller start-up. EnsureLoadBalancer must also ensure to update targets. func (l *LoadBalancer) UpdateLoadBalancer(ctx context.Context, clusterName string, service *corev1.Service, nodes []*corev1.Node) error { // only TargetPools are used from spec - spec, events, err := lbSpecFromService(service, nodes, l.networkID, nil) + spec, events, err := lbSpecFromService(service, nodes, l.opts, nil) if err != nil { return fmt.Errorf("invalid service: %w", err) } @@ -243,8 +252,8 @@ func (l *LoadBalancer) UpdateLoadBalancer(ctx context.Context, clusterName strin l.recorder.Event(service, event.Type, event.Reason, event.Message) } - for _, pool := range *spec.TargetPools { - err := l.client.UpdateTargetPool(ctx, l.projectID, l.GetLoadBalancerName(ctx, clusterName, service), *pool.Name, loadbalancer.UpdateTargetPoolPayload(pool)) + for _, pool := range spec.TargetPools { + err := l.client.UpdateTargetPool(ctx, l.GetLoadBalancerName(ctx, clusterName, service), *pool.Name, loadbalancer.UpdateTargetPoolPayload(pool)) if err != nil { return fmt.Errorf("failed to update target pool %q: %w", *pool.Name, err) } @@ -266,22 +275,22 @@ func (l *LoadBalancer) EnsureLoadBalancerDeleted( ) error { name := l.GetLoadBalancerName(ctx, clusterName, service) - lb, err := l.client.GetLoadBalancer(ctx, l.projectID, name) + lb, err := l.client.GetLoadBalancer(ctx, name) switch { - case stackit.IsNotFound(err): + case stackiterrors.IsNotFound(err): return nil case err != nil: return err - case lb.Status != nil && *lb.Status == loadbalancer.LOADBALANCERSTATUS_TERMINATING: + case lb.Status != nil && *lb.Status == loadbalancer.LOADBALANCERSTATUS_STATUS_TERMINATING: return nil } credentialsRef := getMetricsRemoteWriteRef(lb) if credentialsRef != nil { // The load balancer is updated to remove the credentials reference and hence enable their deletion. - for i := range *lb.Listeners { + for i := range lb.Listeners { // Name is an output only field. - (*lb.Listeners)[i].Name = nil + lb.Listeners[i].Name = nil } externalAddress := lb.ExternalAddress if cmp.UnpackPtr(cmp.UnpackPtr(lb.Options).EphemeralAddress) { @@ -301,16 +310,17 @@ func (l *LoadBalancer) EnsureLoadBalancerDeleted( Observability: nil, PrivateNetworkOnly: lb.Options.PrivateNetworkOnly, }, - TargetPools: lb.TargetPools, - Version: lb.Version, - PlanId: lb.PlanId, - Labels: lb.Labels, + TargetPools: lb.TargetPools, + DisableTargetSecurityGroupAssignment: lb.DisableTargetSecurityGroupAssignment, + Version: lb.Version, + PlanId: lb.PlanId, + Labels: lb.Labels, } - _, err = l.client.UpdateLoadBalancer(ctx, l.projectID, name, payload) + _, err = l.client.UpdateLoadBalancer(ctx, name, payload) if err != nil { return fmt.Errorf("failed to update load balancer: %w", err) } - if err = l.client.DeleteCredentials(ctx, l.projectID, *credentialsRef); err != nil { + if err = l.client.DeleteCredentials(ctx, *credentialsRef); err != nil { return fmt.Errorf("delete metricsRemoteWrite credentials %q: %w", *credentialsRef, err) } } @@ -326,7 +336,7 @@ func (l *LoadBalancer) EnsureLoadBalancerDeleted( return fmt.Errorf("failed to clean up orphaned observability credentials: %w", err) } - err = l.client.DeleteLoadBalancer(ctx, l.projectID, name) + err = l.client.DeleteLoadBalancer(ctx, name) // Deleting a load balancer doesn't return an error if the load balancer cannot be found. if err != nil { return err @@ -364,7 +374,7 @@ func (l *LoadBalancer) reconcileObservabilityCredentials( Username: &l.metricsRemoteWrite.username, Password: &l.metricsRemoteWrite.password, } - c, err := l.client.CreateCredentials(ctx, l.projectID, payload) + c, err := l.client.CreateCredentials(ctx, payload) if err != nil { return nil, fmt.Errorf("create credentials: %w", err) } @@ -382,7 +392,7 @@ func (l *LoadBalancer) reconcileObservabilityCredentials( Username: &l.metricsRemoteWrite.username, Password: &l.metricsRemoteWrite.password, } - if err := l.client.UpdateCredentials(ctx, l.projectID, *credentialsRef, payload); err != nil { + if err := l.client.UpdateCredentials(ctx, *credentialsRef, payload); err != nil { return nil, fmt.Errorf("update credentials %q: %w", *credentialsRef, err) } return &loadbalancer.LoadbalancerOptionObservability{ @@ -397,17 +407,15 @@ func (l *LoadBalancer) reconcileObservabilityCredentials( // This call is expensive. // Make sure that no credentials are referenced, otherwise the deletion fails. func (l *LoadBalancer) cleanUpCredentials(ctx context.Context, name string) error { - res, err := l.client.ListCredentials(ctx, l.projectID) + res, err := l.client.ListCredentials(ctx) if err != nil { return fmt.Errorf("failed to list credentials: %w", err) } - if res.Credentials != nil { - for _, credentials := range *res.Credentials { - if credentials.DisplayName != nil && *credentials.DisplayName == name { - err = l.client.DeleteCredentials(ctx, l.projectID, *credentials.CredentialsRef) - if err != nil { - return fmt.Errorf("failed to delete credentials %q: %w", *credentials.CredentialsRef, err) - } + for _, credentials := range res.Credentials { + if credentials.DisplayName != nil && *credentials.DisplayName == name { + err = l.client.DeleteCredentials(ctx, *credentials.CredentialsRef) + if err != nil { + return fmt.Errorf("failed to delete credentials %q: %w", *credentials.CredentialsRef, err) } } } @@ -425,7 +433,7 @@ func loadBalancerStatus(lb *loadbalancer.LoadBalancer, svc *corev1.Service) *cor if ip != nil { ingress := corev1.LoadBalancerIngress{IP: *ip} if ipModeProxy, _ := strconv.ParseBool(svc.Annotations[ipModeProxyAnnotation]); ipModeProxy { - ingress.IPMode = ptr.To(corev1.LoadBalancerIPModeProxy) + ingress.IPMode = new(corev1.LoadBalancerIPModeProxy) } ingresses = []corev1.LoadBalancerIngress{ingress} } diff --git a/pkg/ccm/loadbalancer_spec.go b/pkg/ccm/loadbalancer_spec.go index 53bfe8a6..d18ca712 100644 --- a/pkg/ccm/loadbalancer_spec.go +++ b/pkg/ccm/loadbalancer_spec.go @@ -1,14 +1,17 @@ package ccm import ( + "crypto/sha256" "fmt" "net/netip" + "regexp" + "slices" "strconv" "strings" "time" - "github.com/stackitcloud/stackit-sdk-go/core/utils" - "github.com/stackitcloud/stackit-sdk-go/services/loadbalancer" + stackitconfig "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/config" + loadbalancer "github.com/stackitcloud/stackit-sdk-go/services/loadbalancer/v2api" corev1 "k8s.io/api/core/v1" "github.com/stackitcloud/cloud-provider-stackit/pkg/cmp" @@ -49,6 +52,7 @@ const ( // If not set, the SKE network is used for listening. // The value must be a network ID, not a subnet. // The annotation can neither be changed nor be added or removed after service creation. + // This annotation is currently not supported by STACKIT and only works in very specific circumstances. listenerNetworkAnnotation = "lb.stackit.cloud/listener-network" ) @@ -65,135 +69,144 @@ const ( const eventReasonYawolAnnotationPresent = "YawolAnnotationPresent" -var availablePlanIDs = []string{"p10", "p50", "p250", "p750"} +const ( + p10 = "p10" + p50 = "p50" + p250 = "p250" + p750 = "p750" +) -// the default plan ID when no plan ID annotation is found -var defaultServicePlan = "p10" +var availablePlanIDs = []string{p10, p50, p250, p750} var flavorsMap = map[string]string{ - "85f57dd5-712b-489d-a0e3-4898c3962930": "p10", // t1.2 - "cd49f4fd-1e48-497f-91ad-79894c8b95e4": "p50", // s1a.4d - "72f11e14-2825-471d-a237-b1afa775fdad": "p250", // s1a.8d - "53408825-7086-48c2-9126-cafdeb2d35d6": "p750", // s1a.16d + "85f57dd5-712b-489d-a0e3-4898c3962930": p10, // t1.2 + "cd49f4fd-1e48-497f-91ad-79894c8b95e4": p50, // s1a.4d + "72f11e14-2825-471d-a237-b1afa775fdad": p250, // s1a.8d + "53408825-7086-48c2-9126-cafdeb2d35d6": p750, // s1a.16d } var appoximateFlavorsMap = map[string]string{ - "2faeefeb-efe7-4f8b-9e52-3246a5d709f0": "p50", // s1a.2d - "9b6bfa7b-bb80-4da8-aa10-ddd4cfaaa1a1": "p750", // s1a.32d - "8936d6a5-30bb-4012-834c-29c599800e53": "p750", // s1a.60d - - "75e8134a-e1de-4052-b3be-75c5157c47c6": "p250", // b1.1 - "1493fabc-3e5c-4992-82fc-d43e2c33902a": "p750", // b1.2 - "f77046c4-6c41-452c-9983-7264151252fa": "p750", // b1.3 - "f778f21f-b0a7-4ae0-88e9-917f01d6fb52": "p750", // b1.4 - - "49902b99-b428-4e6a-ad34-d8b9e719390f": "p250", // b1a.1d - "ce99338f-afc2-4966-89e2-34e494d89e4b": "p750", // b1a.2d - "2e364c23-ee61-451c-841c-8fa25573ae9d": "p750", // b1a.4d - "c1e2def6-e182-4bf6-a0f9-9b5b453eb55a": "p750", // b1a.8d - "fda4f402-6d43-4db5-bcf1-384596f237bb": "p750", // b1a.16d - "704c07a3-1308-4cdd-b8f3-0892589cb99c": "p750", // b1a.32d - "696d8b7a-6aaa-456c-853b-11a7ba490b66": "p750", // b1a.60d - "8b46ca04-e7ec-4f01-a2ed-67e75e3fe04f": "p750", // b1a.120d - - "882a98ba-d47f-4a52-bd85-ccbc2b08f8f8": "p250", // b2i.1d - "6c1b79d7-b344-407e-808d-476187c7dcd6": "p750", // b2i.2d - "013451f5-4c26-4464-84e6-cc5f1c8b0f8a": "p750", // b2i.4d - "2787f539-a8b9-40d3-873d-6db51a2edb41": "p750", // b2i.8d - "7bd9d46f-7c3b-4089-88e5-fca17581295e": "p750", // b2i.16d - "562af0ba-2540-4b49-943e-0beb6c9afa04": "p750", // b2i.30d - "a09e6576-4f74-4a4d-963a-05ec49e27f18": "p750", // b2i.36d - - "7d1572e1-11c9-4872-8ce8-4b953cdf6fb3": "p50", // c1.1 - "5fe737c2-18d8-43c6-bb11-dc9c97ff9515": "p50", // c1.2 - "8512c5f9-4426-47f1-a9dc-5c5a5a798b54": "p250", // c1.3 - "ecb39de6-8b6c-431e-8455-9d857639be92": "p750", // c1.4 - "442e31fa-654a-4f76-b7c2-4802592f9cc7": "p750", // c1.5 - - "6f65263f-0902-47ca-8761-6e449648c8f0": "p50", // c1a.1d - "a9704593-dc26-45b7-8b1c-a37bf42d253e": "p50", // c1a.2d - "d04236f9-4740-4058-9695-0a80a9b3a9b0": "p250", // c1a.4d - "cac16b39-a179-43c5-b5e5-ad22eca1c87c": "p750", // c1a.8d - "381b5633-b064-41aa-af78-cd1bd318a0e1": "p750", // c1a.16d - - "ef66543f-3225-48b0-ab42-4cfda07668b8": "p50", // c2i.1 - "0c69d386-ca5e-4720-8812-225bbf4d4879": "p50", // c2i.2 - "a03cf8cd-f5e4-4897-b639-41b4a1a46dc6": "p250", // c2i.4 - "cee66b47-8465-469d-bb61-7a23073c3488": "p750", // c2i.8 - "5fa8e67c-4259-4353-8e29-dece88c3a394": "p750", // c2i.16 - - "64d695be-04b8-4f14-b020-712ef0e30a6b": "p50", // g1.1 - "3b11b27e-6c73-470d-b595-1d85b95a8cdf": "p250", // g1.2 - "028a4cf9-d9de-4706-a6d2-3ec9a456a736": "p250", // g1.3 - "21ff0965-d385-4e90-9ae4-e1ac8ca8f569": "p750", // g1.4 - "d1f51f86-3fa3-46a1-9e9f-b8b1308f039e": "p750", // g1.5 - - "17837ed5-515a-457f-b36b-531fdb861b8a": "p50", // g1a.1d - "c6b4adc7-d101-48d4-a2ea-d77cbaa63768": "p250", // g1a.2d - "c995089f-8d81-4085-be7b-dc2f7ad3f05f": "p250", // g1a.4d - "cfd6f5f6-b2da-49db-9f1c-4f2ef4c8e831": "p750", // g1a.8d - "816c3d62-3526-47c6-90b4-7c47318f7526": "p750", // g1a.16d - "84a73cca-db0b-4d56-837f-5e5422520d51": "p750", // g1a.32d - "b9f4c5f0-49d7-48a1-ab41-34000f00664b": "p750", // g1a.60d - - "8d811c25-a261-4cbe-aadf-6c2d9667c842": "p50", // g1r.1d - "8a7bd5b4-7ac6-414b-ac62-a6c43229038a": "p250", // g1r.2d - "e3abfbba-b9fe-4973-ac92-2856f489d09a": "p250", // g1r.4d - "f5bfad0d-22d2-4e47-a807-8413e6d0818f": "p750", // g1r.8d - "396a0814-b339-4e9f-8d2f-ccef53937541": "p750", // g1r.16d - "a98b686a-4207-4bc2-902a-6f303da7b043": "p750", // g1r.30d - - "474e2367-9c96-4fc0-ac41-eac7f59a1c7b": "p50", // g2i.1 - "410cc4c1-0684-47fa-9e72-866f1044a330": "p50", // g2i.1s - "b7aa1635-3726-4924-9d73-18b9683fb67a": "p250", // g2i.2 - "79021845-f6de-46f0-be07-17835930d030": "p250", // g2i.2s - "8d705710-c7a8-4e64-aa96-87add166f42d": "p250", // g2i.4 - "88883131-9afa-43ad-bc4e-77b79494e89f": "p250", // g2i.4s - "9c0a9d2d-79e9-4b99-a72f-e15c0d987e7d": "p750", // g2i.8 - "f6303887-f07c-4976-9198-0eb0dd964b18": "p750", // g2i.8s - "b1ca70ea-4da7-441d-8aef-8337c5f81fb2": "p750", // g2i.16 - "901a56b3-4c98-4725-986a-2aa081b9c955": "p750", // g2i.16s - - "04b9be2d-afee-4f32-874b-8356b96ebb0b": "p50", // m1.1 - "39d1344f-91dc-412a-a3b4-72e61b6c6eaa": "p250", // m1.2 - "baa5374c-cb97-47b9-be8c-e79103b3d097": "p750", // m1.3 - "ccd8f298-d885-4c8b-bf40-414ee8f39967": "p750", // m1.4 - "acd9945a-f94a-4e64-a4a3-81f587b596cf": "p750", // m1.5 - - "osAyv1W3z2TU5D6h": "p10", // m1.amphora - - "a24a1a07-4c66-4030-bbfd-68368e4bb8be": "p50", // m1a.1d - "d61f0a42-a3e0-4723-b78a-d51d3d719ade": "p250", // m1a.2d - "27b97158-43d6-44a1-8cf2-d95989f2cc07": "p750", // m1a.4d - "9d76cf5e-1354-446f-8ca1-0d704bee89ca": "p750", // m1a.8d - "e6897bc6-6a21-451c-b6cb-d80725781446": "p750", // m1a.16d - "6fedeb8b-0536-4fbb-80b3-3791d00346b2": "p750", // m1a.32d - "e772e068-6400-4664-8813-811e835b169e": "p750", // m1a.60d - "ae6ea4bb-f26c-41c1-a974-ff422601c0b6": "p750", // m1a.120d - - "aa603f7b-4214-486c-81ce-369535cef8ed": "p50", // m2i.1 - "b4be83e0-475c-4255-a5ef-e6876c413a09": "p250", // m2i.2 - "79b7b9a7-a062-4aab-9861-ba93c1935a68": "p750", // m2i.4 - "309471e2-21e8-4384-8ad9-484bf56372b3": "p750", // m2i.8 - "c4d49baf-fcfa-4ec1-8160-9ec7e57123fc": "p750", // m2i.16 - - "d651f154-7fc9-4bf6-a34a-a32e3dd57c5d": "p50", // s1.2 - "8b2c5d9f-e7da-4cd2-a359-e652817845fe": "p50", // s1.3 - "709d7f73-41f0-4295-94d5-0f0cf351c93b": "p250", // s1.4 - "178cf1ad-abcb-46c2-a045-73bc935f100e": "p750", // s1.5 - "482434d3-3604-4f72-98d8-2af2c654d4e9": "p750", // s1.6 - - "6f04a265-3a9f-4b99-bb66-944ac848af22": "p750", // n1.14d.g1 - "4b4891d6-860b-4c70-b48e-d261e9751b56": "p750", // n1.28d.g2 - - "396671f4-6f19-4531-98d0-127272916cee": "p750", // n2.14d.g1 - "0c85bbb2-5c85-465c-abf9-71261b8fbcd4": "p750", // n2.28d.g2 - "a7c5c538-aef1-4f40-8c8d-1366c5b80271": "p750", // n2.56d.g4 - - "25129382-dbe8-43eb-b71b-72253dd69452": "p10", // t1.1 - "22b37153-8817-4c85-9805-92426b2f903c": "p10", // t2i.1 + "2faeefeb-efe7-4f8b-9e52-3246a5d709f0": p50, // s1a.2d + "9b6bfa7b-bb80-4da8-aa10-ddd4cfaaa1a1": p750, // s1a.32d + "8936d6a5-30bb-4012-834c-29c599800e53": p750, // s1a.60d + + "75e8134a-e1de-4052-b3be-75c5157c47c6": p250, // b1.1 + "1493fabc-3e5c-4992-82fc-d43e2c33902a": p750, // b1.2 + "f77046c4-6c41-452c-9983-7264151252fa": p750, // b1.3 + "f778f21f-b0a7-4ae0-88e9-917f01d6fb52": p750, // b1.4 + + "49902b99-b428-4e6a-ad34-d8b9e719390f": p250, // b1a.1d + "ce99338f-afc2-4966-89e2-34e494d89e4b": p750, // b1a.2d + "2e364c23-ee61-451c-841c-8fa25573ae9d": p750, // b1a.4d + "c1e2def6-e182-4bf6-a0f9-9b5b453eb55a": p750, // b1a.8d + "fda4f402-6d43-4db5-bcf1-384596f237bb": p750, // b1a.16d + "704c07a3-1308-4cdd-b8f3-0892589cb99c": p750, // b1a.32d + "696d8b7a-6aaa-456c-853b-11a7ba490b66": p750, // b1a.60d + "8b46ca04-e7ec-4f01-a2ed-67e75e3fe04f": p750, // b1a.120d + + "882a98ba-d47f-4a52-bd85-ccbc2b08f8f8": p250, // b2i.1d + "6c1b79d7-b344-407e-808d-476187c7dcd6": p750, // b2i.2d + "013451f5-4c26-4464-84e6-cc5f1c8b0f8a": p750, // b2i.4d + "2787f539-a8b9-40d3-873d-6db51a2edb41": p750, // b2i.8d + "7bd9d46f-7c3b-4089-88e5-fca17581295e": p750, // b2i.16d + "562af0ba-2540-4b49-943e-0beb6c9afa04": p750, // b2i.30d + "a09e6576-4f74-4a4d-963a-05ec49e27f18": p750, // b2i.36d + + "7d1572e1-11c9-4872-8ce8-4b953cdf6fb3": p50, // c1.1 + "5fe737c2-18d8-43c6-bb11-dc9c97ff9515": p50, // c1.2 + "8512c5f9-4426-47f1-a9dc-5c5a5a798b54": p250, // c1.3 + "ecb39de6-8b6c-431e-8455-9d857639be92": p750, // c1.4 + "442e31fa-654a-4f76-b7c2-4802592f9cc7": p750, // c1.5 + + "6f65263f-0902-47ca-8761-6e449648c8f0": p50, // c1a.1d + "a9704593-dc26-45b7-8b1c-a37bf42d253e": p50, // c1a.2d + "d04236f9-4740-4058-9695-0a80a9b3a9b0": p250, // c1a.4d + "cac16b39-a179-43c5-b5e5-ad22eca1c87c": p750, // c1a.8d + "381b5633-b064-41aa-af78-cd1bd318a0e1": p750, // c1a.16d + + "ef66543f-3225-48b0-ab42-4cfda07668b8": p50, // c2i.1 + "0c69d386-ca5e-4720-8812-225bbf4d4879": p50, // c2i.2 + "a03cf8cd-f5e4-4897-b639-41b4a1a46dc6": p250, // c2i.4 + "cee66b47-8465-469d-bb61-7a23073c3488": p750, // c2i.8 + "5fa8e67c-4259-4353-8e29-dece88c3a394": p750, // c2i.16 + + "64d695be-04b8-4f14-b020-712ef0e30a6b": p50, // g1.1 + "3b11b27e-6c73-470d-b595-1d85b95a8cdf": p250, // g1.2 + "028a4cf9-d9de-4706-a6d2-3ec9a456a736": p250, // g1.3 + "21ff0965-d385-4e90-9ae4-e1ac8ca8f569": p750, // g1.4 + "d1f51f86-3fa3-46a1-9e9f-b8b1308f039e": p750, // g1.5 + + "17837ed5-515a-457f-b36b-531fdb861b8a": p50, // g1a.1d + "c6b4adc7-d101-48d4-a2ea-d77cbaa63768": p250, // g1a.2d + "c995089f-8d81-4085-be7b-dc2f7ad3f05f": p250, // g1a.4d + "cfd6f5f6-b2da-49db-9f1c-4f2ef4c8e831": p750, // g1a.8d + "816c3d62-3526-47c6-90b4-7c47318f7526": p750, // g1a.16d + "84a73cca-db0b-4d56-837f-5e5422520d51": p750, // g1a.32d + "b9f4c5f0-49d7-48a1-ab41-34000f00664b": p750, // g1a.60d + + "8d811c25-a261-4cbe-aadf-6c2d9667c842": p50, // g1r.1d + "8a7bd5b4-7ac6-414b-ac62-a6c43229038a": p250, // g1r.2d + "e3abfbba-b9fe-4973-ac92-2856f489d09a": p250, // g1r.4d + "f5bfad0d-22d2-4e47-a807-8413e6d0818f": p750, // g1r.8d + "396a0814-b339-4e9f-8d2f-ccef53937541": p750, // g1r.16d + "a98b686a-4207-4bc2-902a-6f303da7b043": p750, // g1r.30d + + "474e2367-9c96-4fc0-ac41-eac7f59a1c7b": p50, // g2i.1 + "410cc4c1-0684-47fa-9e72-866f1044a330": p50, // g2i.1s + "b7aa1635-3726-4924-9d73-18b9683fb67a": p250, // g2i.2 + "79021845-f6de-46f0-be07-17835930d030": p250, // g2i.2s + "8d705710-c7a8-4e64-aa96-87add166f42d": p250, // g2i.4 + "88883131-9afa-43ad-bc4e-77b79494e89f": p250, // g2i.4s + "9c0a9d2d-79e9-4b99-a72f-e15c0d987e7d": p750, // g2i.8 + "f6303887-f07c-4976-9198-0eb0dd964b18": p750, // g2i.8s + "b1ca70ea-4da7-441d-8aef-8337c5f81fb2": p750, // g2i.16 + "901a56b3-4c98-4725-986a-2aa081b9c955": p750, // g2i.16s + + "04b9be2d-afee-4f32-874b-8356b96ebb0b": p50, // m1.1 + "39d1344f-91dc-412a-a3b4-72e61b6c6eaa": p250, // m1.2 + "baa5374c-cb97-47b9-be8c-e79103b3d097": p750, // m1.3 + "ccd8f298-d885-4c8b-bf40-414ee8f39967": p750, // m1.4 + "acd9945a-f94a-4e64-a4a3-81f587b596cf": p750, // m1.5 + + "osAyv1W3z2TU5D6h": p10, // m1.amphora + + "a24a1a07-4c66-4030-bbfd-68368e4bb8be": p50, // m1a.1d + "d61f0a42-a3e0-4723-b78a-d51d3d719ade": p250, // m1a.2d + "27b97158-43d6-44a1-8cf2-d95989f2cc07": p750, // m1a.4d + "9d76cf5e-1354-446f-8ca1-0d704bee89ca": p750, // m1a.8d + "e6897bc6-6a21-451c-b6cb-d80725781446": p750, // m1a.16d + "6fedeb8b-0536-4fbb-80b3-3791d00346b2": p750, // m1a.32d + "e772e068-6400-4664-8813-811e835b169e": p750, // m1a.60d + "ae6ea4bb-f26c-41c1-a974-ff422601c0b6": p750, // m1a.120d + + "aa603f7b-4214-486c-81ce-369535cef8ed": p50, // m2i.1 + "b4be83e0-475c-4255-a5ef-e6876c413a09": p250, // m2i.2 + "79b7b9a7-a062-4aab-9861-ba93c1935a68": p750, // m2i.4 + "309471e2-21e8-4384-8ad9-484bf56372b3": p750, // m2i.8 + "c4d49baf-fcfa-4ec1-8160-9ec7e57123fc": p750, // m2i.16 + + "d651f154-7fc9-4bf6-a34a-a32e3dd57c5d": p50, // s1.2 + "8b2c5d9f-e7da-4cd2-a359-e652817845fe": p50, // s1.3 + "709d7f73-41f0-4295-94d5-0f0cf351c93b": p250, // s1.4 + "178cf1ad-abcb-46c2-a045-73bc935f100e": p750, // s1.5 + "482434d3-3604-4f72-98d8-2af2c654d4e9": p750, // s1.6 + + "6f04a265-3a9f-4b99-bb66-944ac848af22": p750, // n1.14d.g1 + "4b4891d6-860b-4c70-b48e-d261e9751b56": p750, // n1.28d.g2 + + "396671f4-6f19-4531-98d0-127272916cee": p750, // n2.14d.g1 + "0c85bbb2-5c85-465c-abf9-71261b8fbcd4": p750, // n2.28d.g2 + "a7c5c538-aef1-4f40-8c8d-1366c5b80271": p750, // n2.56d.g4 + + "25129382-dbe8-43eb-b71b-72253dd69452": p10, // t1.1 + "22b37153-8817-4c85-9805-92426b2f903c": p10, // t2i.1 } +var ( + // invalidTargetDisplayNameCharsRegexp matches any character that is NOT alphanumeric or a hyphen + invalidTargetDisplayNameCharsRegexp = regexp.MustCompile(`[^a-zA-Z0-9-]`) +) + // proxyProtocolEnableForPort determines whether portNumber should use the TCP proxy protocol (instead of TCP). func proxyProtocolEnableForPort(tcpProxyProtocolEnabled bool, tcpProxyProtocolPortFilter []uint16, portNumber int32) bool { if !tcpProxyProtocolEnabled { @@ -215,10 +228,8 @@ func proxyProtocolEnableForPort(tcpProxyProtocolEnabled bool, tcpProxyProtocolPo func getPlanID(service *corev1.Service) (planID *string, msgs []string, err error) { msgs = make([]string, 0) if planID, found := service.Annotations[servicePlanAnnotation]; found { - for _, availablePlan := range availablePlanIDs { - if planID == availablePlan { - return &planID, nil, nil - } + if slices.Contains(availablePlanIDs, planID) { + return &planID, nil, nil } return nil, nil, fmt.Errorf("unsupported plan ID value %q, supported values are %v", planID, availablePlanIDs) } @@ -234,52 +245,68 @@ func getPlanID(service *corev1.Service) (planID *string, msgs []string, err erro msgs = append(msgs, fmt.Sprintf(`Flavors are deprecated in favor of service plans. Picking load balancer service plan %s for flavor %s. Use the annotation lb.stackit.cloud/service-plan-id to explicitly choose a service plan.`, planID, flavorID)) return &planID, msgs, nil } - return &defaultServicePlan, nil, nil + // default to p10 if no annotation is provided + return new(p10), nil, nil } // lbSpecFromService returns a load balancer specification in the form of a create payload matching the specification of the service, nodes and network. // The property name will be empty and must be set by the caller to produce a valid payload for the API. // An error is returned if the service has invalid options. -func lbSpecFromService( //nolint:funlen,gocyclo // It is long but not complex. +// +//nolint:gocyclo,funlen // main function to create a lb from a service, this includes many options and is therefore complex. +func lbSpecFromService( service *corev1.Service, nodes []*corev1.Node, - networkID string, + opts stackitconfig.LoadBalancerOpts, observability *loadbalancer.LoadbalancerOptionObservability, ) (*loadbalancer.CreateLoadBalancerPayload, []Event, error) { lb := &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{}, - Networks: &[]loadbalancer.Network{ + Networks: []loadbalancer.Network{ { - Role: utils.Ptr(loadbalancer.NETWORKROLE_LISTENERS_AND_TARGETS), - NetworkId: &networkID, + Role: new(loadbalancer.NETWORKROLE_ROLE_LISTENERS_AND_TARGETS), + NetworkId: &opts.NetworkID, }, }, } if listenerNetwork := service.Annotations[listenerNetworkAnnotation]; listenerNetwork != "" { - lb.Networks = &[]loadbalancer.Network{ + lb.Networks = []loadbalancer.Network{ { - Role: utils.Ptr(loadbalancer.NETWORKROLE_TARGETS), - NetworkId: &networkID, + Role: new(loadbalancer.NETWORKROLE_ROLE_TARGETS), + NetworkId: &opts.NetworkID, }, { - Role: utils.Ptr(loadbalancer.NETWORKROLE_LISTENERS), + Role: new(loadbalancer.NETWORKROLE_ROLE_LISTENERS), NetworkId: &listenerNetwork, }, } } else { - lb.Networks = &[]loadbalancer.Network{ + lb.Networks = []loadbalancer.Network{ { - Role: utils.Ptr(loadbalancer.NETWORKROLE_LISTENERS_AND_TARGETS), - NetworkId: &networkID, + Role: new(loadbalancer.NETWORKROLE_ROLE_LISTENERS_AND_TARGETS), + NetworkId: &opts.NetworkID, }, } } + // Add extraLabels if set + if opts.ExtraLabels != nil { + lb.Labels = new(opts.ExtraLabels) + } + + // For new lb's always set DisableTargetSecurityGroupAssignment to true + // This function is also used by the LB UPDATE call, but for UPDATE we just + // use the value from the already created lb instead of this one. + lb.DisableTargetSecurityGroupAssignment = new(true) + + // Add metric metricsRemoteWrite settings + lb.Options.Observability = observability + events := make([]Event, 0) // Parse private network from annotations. // TODO: Split into separate function. - lb.Options.PrivateNetworkOnly = utils.Ptr(false) + lb.Options.PrivateNetworkOnly = new(false) var internal *bool var yawolInternal *bool if internalStr, found := service.Annotations[internalLBAnnotation]; found { @@ -324,9 +351,9 @@ func lbSpecFromService( //nolint:funlen,gocyclo // It is long but not complex. "incompatible values for annotations %s and %s", yawolExistingFloatingIPAnnotation, externalIPAnnotation, ) } - lb.Options.EphemeralAddress = utils.Ptr(false) + lb.Options.EphemeralAddress = new(false) if !found && !yawolFound && !*lb.Options.PrivateNetworkOnly { - lb.Options.EphemeralAddress = utils.Ptr(true) + lb.Options.EphemeralAddress = new(true) } if !found && yawolFound { externalIP = yawolExternalIP @@ -342,9 +369,6 @@ func lbSpecFromService( //nolint:funlen,gocyclo // It is long but not complex. lb.ExternalAddress = &externalIP } - // Add metric metricsRemoteWrite settings - lb.Options.Observability = observability - // Parse TCP idle timeout from annotations. // TODO: Split into separate function. tcpIdleTimeout := defaultTCPIdleTimeout @@ -468,7 +492,7 @@ func lbSpecFromService( //nolint:funlen,gocyclo // It is long but not complex. address := node.Status.Addresses[j] if address.Type == corev1.NodeInternalIP { targets = append(targets, loadbalancer.Target{ - DisplayName: &node.Name, + DisplayName: new(sanitizeNodeName(node.Name)), Ip: &address.Address, }) break @@ -496,17 +520,17 @@ func lbSpecFromService( //nolint:funlen,gocyclo // It is long but not complex. switch port.Protocol { case corev1.ProtocolTCP: if proxyProtocolEnableForPort(tcpProxyProtocolEnabled, tcpProxyProtocolPortFilter, port.Port) { - protocol = loadbalancer.LISTENERPROTOCOL_TCP_PROXY + protocol = loadbalancer.LISTENERPROTOCOL_PROTOCOL_TCP_PROXY } else { - protocol = loadbalancer.LISTENERPROTOCOL_TCP + protocol = loadbalancer.LISTENERPROTOCOL_PROTOCOL_TCP } tcpOptions = &loadbalancer.OptionsTCP{ - IdleTimeout: utils.Ptr(fmt.Sprintf("%.0fs", tcpIdleTimeout.Seconds())), + IdleTimeout: new(fmt.Sprintf("%.0fs", tcpIdleTimeout.Seconds())), } case corev1.ProtocolUDP: - protocol = loadbalancer.LISTENERPROTOCOL_UDP + protocol = loadbalancer.LISTENERPROTOCOL_PROTOCOL_UDP udpOptions = &loadbalancer.OptionsUDP{ - IdleTimeout: utils.Ptr(fmt.Sprintf("%.0fs", udpIdleTimeout.Seconds())), + IdleTimeout: new(fmt.Sprintf("%.0fs", udpIdleTimeout.Seconds())), } default: return nil, nil, fmt.Errorf("unsupported protocol %q for port %q", port.Protocol, port.Name) @@ -514,33 +538,33 @@ func lbSpecFromService( //nolint:funlen,gocyclo // It is long but not complex. listeners = append(listeners, loadbalancer.Listener{ DisplayName: &name, - Port: utils.Ptr(int64(port.Port)), + Port: new(port.Port), TargetPool: &name, - Protocol: utils.Ptr(protocol), + Protocol: new(protocol), Tcp: tcpOptions, Udp: udpOptions, }) targetPools = append(targetPools, loadbalancer.TargetPool{ Name: &name, - TargetPort: utils.Ptr(int64(port.NodePort)), - Targets: &targets, + TargetPort: new(port.NodePort), + Targets: targets, SessionPersistence: &loadbalancer.SessionPersistence{ - UseSourceIpAddress: utils.Ptr(useSourceIP), + UseSourceIpAddress: new(useSourceIP), }, }) } - lb.Listeners = &listeners - lb.TargetPools = &targetPools + lb.Listeners = listeners + lb.TargetPools = targetPools lb.Options.AccessControl = &loadbalancer.LoadbalancerOptionAccessControl{} // For backwards-compatibility, the spec takes precedence over the annotation. if sourceRanges, found := service.Annotations[yawolLoadBalancerSourceRangesAnnotation]; found { r := strings.Split(sourceRanges, ",") - lb.Options.AccessControl.AllowedSourceRanges = &r + lb.Options.AccessControl.AllowedSourceRanges = r } if len(service.Spec.LoadBalancerSourceRanges) > 0 { - lb.Options.AccessControl.AllowedSourceRanges = &service.Spec.LoadBalancerSourceRanges + lb.Options.AccessControl.AllowedSourceRanges = service.Spec.LoadBalancerSourceRanges } if event := checkUnsupportedAnnotations(service); event != nil { @@ -576,18 +600,20 @@ func checkUnsupportedAnnotations(service *corev1.Service) *Event { // resultImmutableChanged denotes that at least one property that cannot be changed did change. // Attempting an update will fail. type resultImmutableChanged struct { - field string + field string + annotation string } // compareLBwithSpec checks whether the load balancer fulfills the specification. // If immutableChanged is not nil then spec differs from lb such that an update will fail. // Otherwise, fulfills will indicate whether an update is necessary. + func compareLBwithSpec(lb *loadbalancer.LoadBalancer, spec *loadbalancer.CreateLoadBalancerPayload) (fulfills bool, immutableChanged *resultImmutableChanged) { //nolint:gocyclo,funlen,lll // It is long but not complex. // If a mutable property has changed we must still check the rest of the object because if there is an immutable change it must always be returned. fulfills = true if cmp.UnpackPtr(cmp.UnpackPtr(lb.Options).PrivateNetworkOnly) != cmp.UnpackPtr(cmp.UnpackPtr(spec.Options).PrivateNetworkOnly) { - return false, &resultImmutableChanged{field: ".options.privateNetworkOnly"} + return false, &resultImmutableChanged{field: ".options.privateNetworkOnly", annotation: internalLBAnnotation} } if !cmp.PtrValEqualFn( @@ -620,7 +646,7 @@ func compareLBwithSpec(lb *loadbalancer.LoadBalancer, spec *loadbalancer.CreateL // lb.ExternalAddress is set to the ephemeral IP if the load balancer is ephemeral, while spec will never contain an ephemeral IP. // So we only compare them if the spec has a static IP. if !cmp.PtrValEqual(lb.ExternalAddress, spec.ExternalAddress) { - return false, &resultImmutableChanged{field: ".externalAddress"} + return false, &resultImmutableChanged{field: ".externalAddress", annotation: externalIPAnnotation} } if cmp.UnpackPtr(cmp.UnpackPtr(lb.Options).EphemeralAddress) { // Promote an ephemeral IP to a static IP. @@ -629,14 +655,14 @@ func compareLBwithSpec(lb *loadbalancer.LoadBalancer, spec *loadbalancer.CreateL } else if !cmp.UnpackPtr(cmp.UnpackPtr(lb.Options).PrivateNetworkOnly) && !cmp.UnpackPtr(cmp.UnpackPtr(lb.Options).EphemeralAddress) { // Demotion is not allowed by the load balancer API. - return false, &resultImmutableChanged{field: ".options.ephemeralAddress"} + return false, &resultImmutableChanged{field: ".options.ephemeralAddress", annotation: externalIPAnnotation} } - if cmp.LenSlicePtr(lb.Listeners) != cmp.LenSlicePtr(spec.Listeners) { + if len(lb.Listeners) != len(spec.Listeners) { fulfills = false - } else if lb.Listeners != nil && spec.Listeners != nil { - for i, x := range *lb.Listeners { - y := (*spec.Listeners)[i] + } else { + for i, x := range lb.Listeners { + y := spec.Listeners[i] if !cmp.PtrValEqual(x.DisplayName, y.DisplayName) { fulfills = false } @@ -649,13 +675,13 @@ func compareLBwithSpec(lb *loadbalancer.LoadBalancer, spec *loadbalancer.CreateL if !cmp.PtrValEqual(x.TargetPool, y.TargetPool) { fulfills = false } - if (cmp.UnpackPtr(x.Protocol) == loadbalancer.LISTENERPROTOCOL_TCP || cmp.UnpackPtr(x.Protocol) == loadbalancer.LISTENERPROTOCOL_TCP_PROXY) && + if (cmp.UnpackPtr(x.Protocol) == loadbalancer.LISTENERPROTOCOL_PROTOCOL_TCP || cmp.UnpackPtr(x.Protocol) == loadbalancer.LISTENERPROTOCOL_PROTOCOL_TCP_PROXY) && !cmp.PtrValEqualFn(x.Tcp, y.Tcp, func(a, b loadbalancer.OptionsTCP) bool { return cmp.PtrValEqual(a.IdleTimeout, b.IdleTimeout) }) { fulfills = false } - if cmp.UnpackPtr(x.Protocol) == loadbalancer.LISTENERPROTOCOL_UDP && !cmp.PtrValEqualFn(x.Udp, y.Udp, func(a, b loadbalancer.OptionsUDP) bool { + if cmp.UnpackPtr(x.Protocol) == loadbalancer.LISTENERPROTOCOL_PROTOCOL_UDP && !cmp.PtrValEqualFn(x.Udp, y.Udp, func(a, b loadbalancer.OptionsUDP) bool { return cmp.PtrValEqual(a.IdleTimeout, b.IdleTimeout) }) { fulfills = false @@ -663,26 +689,24 @@ func compareLBwithSpec(lb *loadbalancer.LoadBalancer, spec *loadbalancer.CreateL } } - if cmp.LenSlicePtr(lb.Networks) != cmp.LenSlicePtr(spec.Networks) { - return false, &resultImmutableChanged{field: "len(.networks)"} + if len(lb.Networks) != len(spec.Networks) { + return false, &resultImmutableChanged{field: "len(.networks)", annotation: listenerNetworkAnnotation} } - if cmp.LenSlicePtr(lb.Networks) > 0 { - for i, x := range *lb.Networks { - y := (*spec.Networks)[i] - if !cmp.PtrValEqual(x.NetworkId, y.NetworkId) { - return false, &resultImmutableChanged{field: fmt.Sprintf(".networks[%d].networkId", i)} - } - if !cmp.PtrValEqual(x.Role, y.Role) { - return false, &resultImmutableChanged{field: fmt.Sprintf(".networks[%d].role", i)} - } + for i, x := range lb.Networks { + y := spec.Networks[i] + if !cmp.PtrValEqual(x.NetworkId, y.NetworkId) { + return false, &resultImmutableChanged{field: fmt.Sprintf(".networks[%d].networkId", i), annotation: listenerNetworkAnnotation} + } + if !cmp.PtrValEqual(x.Role, y.Role) { + return false, &resultImmutableChanged{field: fmt.Sprintf(".networks[%d].role", i), annotation: listenerNetworkAnnotation} } } - if cmp.LenSlicePtr(lb.TargetPools) != cmp.LenSlicePtr(spec.TargetPools) { + if len(lb.TargetPools) != len(spec.TargetPools) { fulfills = false - } else if lb.TargetPools != nil && spec.TargetPools != nil { - for i, x := range *lb.TargetPools { - y := (*spec.TargetPools)[i] + } else { + for i, x := range lb.TargetPools { + y := spec.TargetPools[i] if !cmp.PtrValEqual(x.Name, y.Name) { fulfills = false } @@ -712,13 +736,7 @@ func compareLBwithSpec(lb *loadbalancer.LoadBalancer, spec *loadbalancer.CreateL }) { fulfills = false } - if x.Targets == nil || y.Targets == nil { - // At this point one pointer is nil. - // We consider nil pointer to be equal to a nil slice and an empty slice. - if cmp.LenSlicePtr(x.Targets) != cmp.LenSlicePtr(y.Targets) { - fulfills = false - } - } else if !cmp.SliceEqualUnordered(*x.Targets, *y.Targets, func(a, b loadbalancer.Target) bool { + if !cmp.SliceEqualUnordered(x.Targets, y.Targets, func(a, b loadbalancer.Target) bool { if !cmp.PtrValEqual(a.DisplayName, b.DisplayName) { return false } @@ -740,11 +758,32 @@ func compareLBwithSpec(lb *loadbalancer.LoadBalancer, spec *loadbalancer.CreateL } if !cmp.SliceEqual( - cmp.UnpackPtr(cmp.UnpackPtr(cmp.UnpackPtr(lb.Options).AccessControl).AllowedSourceRanges), - cmp.UnpackPtr(cmp.UnpackPtr(cmp.UnpackPtr(spec.Options).AccessControl).AllowedSourceRanges), + cmp.UnpackPtr(cmp.UnpackPtr(lb.Options).AccessControl).AllowedSourceRanges, + cmp.UnpackPtr(cmp.UnpackPtr(spec.Options).AccessControl).AllowedSourceRanges, ) { fulfills = false } return fulfills, immutableChanged } + +// sanitizeNodeName returns a node name which fits in the DisplayName of a target. +// Replaces not allowed chars with +func sanitizeNodeName(nodeName string) string { + var sanitizedNodeName string + sanitizedNodeName = invalidTargetDisplayNameCharsRegexp.ReplaceAllString(nodeName, "-") + + // return node name if not to long and if not contain any invalid chars + if len(sanitizedNodeName) <= 63 && + nodeName == sanitizedNodeName { + return nodeName + } + + if len(sanitizedNodeName) > 54 { + sanitizedNodeName = sanitizedNodeName[0:54] + } + + sanitizedNodeName += fmt.Sprintf("-%x", sha256.Sum256([]byte(nodeName)))[:8] + + return sanitizedNodeName +} diff --git a/pkg/ccm/loadbalancer_spec_test.go b/pkg/ccm/loadbalancer_spec_test.go index 059e1a4f..c5f5fa48 100644 --- a/pkg/ccm/loadbalancer_spec_test.go +++ b/pkg/ccm/loadbalancer_spec_test.go @@ -7,9 +7,9 @@ import ( . "github.com/onsi/gomega" . "github.com/onsi/gomega/gstruct" "github.com/onsi/gomega/types" + stackitconfig "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/config" - "github.com/stackitcloud/stackit-sdk-go/core/utils" - "github.com/stackitcloud/stackit-sdk-go/services/loadbalancer" + loadbalancer "github.com/stackitcloud/stackit-sdk-go/services/loadbalancer/v2api" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/utils/ptr" @@ -25,6 +25,7 @@ var _ = Describe("lbSpecFromService", func() { httpAlt corev1.ServicePort https corev1.ServicePort dns corev1.ServicePort + lbOpts stackitconfig.LoadBalancerOpts ) BeforeEach(func() { http = corev1.ServicePort{ @@ -47,6 +48,7 @@ var _ = Describe("lbSpecFromService", func() { Port: 53, Protocol: corev1.ProtocolUDP, } + lbOpts = stackitconfig.LoadBalancerOpts{NetworkID: "my-network"} }) Context("internal load balancer", func() { @@ -57,7 +59,7 @@ var _ = Describe("lbSpecFromService", func() { "lb.stackit.cloud/internal-lb": "true", }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) Expect(spec).To(PointTo(MatchFields(IgnoreExtras, Fields{ "Options": PointTo(MatchFields(IgnoreExtras, Fields{ @@ -73,7 +75,7 @@ var _ = Describe("lbSpecFromService", func() { "yawol.stackit.cloud/internalLB": "true", }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) Expect(spec).To(PointTo(MatchFields(IgnoreExtras, Fields{ "Options": PointTo(MatchFields(IgnoreExtras, Fields{ @@ -89,7 +91,7 @@ var _ = Describe("lbSpecFromService", func() { "lb.stackit.cloud/internal-lb": "maybe", }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).To(MatchError(ContainSubstring("invalid bool"))) }) @@ -101,7 +103,7 @@ var _ = Describe("lbSpecFromService", func() { "yawol.stackit.cloud/internalLB": "false", }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).To(MatchError(ContainSubstring("incompatible values"))) }) @@ -114,7 +116,7 @@ var _ = Describe("lbSpecFromService", func() { }, }, } - spec, _, err := lbSpecFromService(svc, []*corev1.Node{}, "my-network", nil) + spec, _, err := lbSpecFromService(svc, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) Expect(spec.Options.PrivateNetworkOnly).To(PointTo(BeTrue())) Expect(spec.ExternalAddress).To(BeNil()) @@ -129,7 +131,7 @@ var _ = Describe("lbSpecFromService", func() { "lb.stackit.cloud/external-address": externalAddress, }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) Expect(spec.ExternalAddress).To(PointTo(Equal(externalAddress))) }) @@ -141,7 +143,7 @@ var _ = Describe("lbSpecFromService", func() { "yawol.stackit.cloud/existingFloatingIP": externalAddress, }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) Expect(spec.ExternalAddress).To(PointTo(Equal(externalAddress))) }) @@ -154,7 +156,7 @@ var _ = Describe("lbSpecFromService", func() { "yawol.stackit.cloud/existingFloatingIP": "55.66.77.88", }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).To(MatchError(ContainSubstring("incompatible values"))) }) @@ -165,7 +167,7 @@ var _ = Describe("lbSpecFromService", func() { "lb.stackit.cloud/external-address": "I'm not an IP", }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).To(HaveOccurred()) }) @@ -176,7 +178,7 @@ var _ = Describe("lbSpecFromService", func() { "lb.stackit.cloud/external-address": "2001:db8::", }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).To(HaveOccurred()) }) }) @@ -184,9 +186,9 @@ var _ = Describe("lbSpecFromService", func() { Context("Metric metricsRemoteWrite", func() { It("should set metrics in load balancer spec", func() { pushURL := "test-endpoint" - spec, _, err := lbSpecFromService(&corev1.Service{}, []*corev1.Node{}, "my-network", &loadbalancer.LoadbalancerOptionObservability{ + spec, _, err := lbSpecFromService(&corev1.Service{}, []*corev1.Node{}, lbOpts, &loadbalancer.LoadbalancerOptionObservability{ Metrics: &loadbalancer.LoadbalancerOptionMetrics{ - CredentialsRef: ptr.To(sampleCredentialsRef), + CredentialsRef: new(sampleCredentialsRef), PushUrl: &pushURL, }, }) @@ -216,23 +218,23 @@ var _ = Describe("lbSpecFromService", func() { Spec: corev1.ServiceSpec{ Ports: []corev1.ServicePort{http, dns, httpAlt}, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) Expect(spec).To(PointTo(MatchFields(IgnoreExtras, Fields{ - "Listeners": PointTo(ConsistOf( + "Listeners": ConsistOf( MatchFields(IgnoreExtras, Fields{ "DisplayName": PointTo(Equal("http")), - "Protocol": PointTo(Equal(loadbalancer.LISTENERPROTOCOL_TCP_PROXY)), + "Protocol": PointTo(Equal(loadbalancer.LISTENERPROTOCOL_PROTOCOL_TCP_PROXY)), }), MatchFields(IgnoreExtras, Fields{ "DisplayName": PointTo(Equal("http-alt")), - "Protocol": PointTo(Equal(loadbalancer.LISTENERPROTOCOL_TCP_PROXY)), + "Protocol": PointTo(Equal(loadbalancer.LISTENERPROTOCOL_PROTOCOL_TCP_PROXY)), }), MatchFields(IgnoreExtras, Fields{ "DisplayName": PointTo(Equal("dns")), - "Protocol": PointTo(Equal(loadbalancer.LISTENERPROTOCOL_UDP)), + "Protocol": PointTo(Equal(loadbalancer.LISTENERPROTOCOL_PROTOCOL_UDP)), }), - )), + ), }))) Expect(spec).To(haveConsistentTargetPool()) }) @@ -251,23 +253,23 @@ var _ = Describe("lbSpecFromService", func() { Spec: corev1.ServiceSpec{ Ports: []corev1.ServicePort{http, httpAlt, https}, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) Expect(spec).To(PointTo(MatchFields(IgnoreExtras, Fields{ - "Listeners": PointTo(ConsistOf( + "Listeners": ConsistOf( MatchFields(IgnoreExtras, Fields{ "DisplayName": PointTo(Equal("http")), - "Protocol": PointTo(Equal(loadbalancer.LISTENERPROTOCOL_TCP_PROXY)), + "Protocol": PointTo(Equal(loadbalancer.LISTENERPROTOCOL_PROTOCOL_TCP_PROXY)), }), MatchFields(IgnoreExtras, Fields{ "DisplayName": PointTo(Equal("http-alt")), - "Protocol": PointTo(Equal(loadbalancer.LISTENERPROTOCOL_TCP_PROXY)), + "Protocol": PointTo(Equal(loadbalancer.LISTENERPROTOCOL_PROTOCOL_TCP_PROXY)), }), MatchFields(IgnoreExtras, Fields{ "DisplayName": PointTo(Equal("https")), - "Protocol": PointTo(Equal(loadbalancer.LISTENERPROTOCOL_TCP)), + "Protocol": PointTo(Equal(loadbalancer.LISTENERPROTOCOL_PROTOCOL_TCP)), }), - )), + ), }))) Expect(spec).To(haveConsistentTargetPool()) }) @@ -284,15 +286,15 @@ var _ = Describe("lbSpecFromService", func() { Spec: corev1.ServiceSpec{ Ports: []corev1.ServicePort{http}, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) Expect(spec).To(PointTo(MatchFields(IgnoreExtras, Fields{ - "Listeners": PointTo(ConsistOf( + "Listeners": ConsistOf( MatchFields(IgnoreExtras, Fields{ "DisplayName": PointTo(Equal("http")), - "Protocol": PointTo(Equal(loadbalancer.LISTENERPROTOCOL_TCP)), + "Protocol": PointTo(Equal(loadbalancer.LISTENERPROTOCOL_PROTOCOL_TCP)), }), - )), + ), }))) Expect(spec).To(haveConsistentTargetPool()) }) @@ -309,7 +311,7 @@ var _ = Describe("lbSpecFromService", func() { Spec: corev1.ServiceSpec{ Ports: []corev1.ServicePort{http}, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).To(MatchError(ContainSubstring("incompatible values"))) }) @@ -325,7 +327,7 @@ var _ = Describe("lbSpecFromService", func() { Spec: corev1.ServiceSpec{ Ports: []corev1.ServicePort{http}, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).To(MatchError(ContainSubstring("invalid port"))) }) @@ -342,7 +344,7 @@ var _ = Describe("lbSpecFromService", func() { Spec: corev1.ServiceSpec{ Ports: []corev1.ServicePort{http}, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).To(MatchError(ContainSubstring("incompatible values"))) }) }) @@ -365,22 +367,22 @@ var _ = Describe("lbSpecFromService", func() { Addresses: []corev1.NodeAddress{{Type: corev1.NodeInternalIP, Address: "10.2.3.4"}}, }, }, - }, "my-network", nil) + }, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) - Expect(spec.Listeners).To(PointTo(ConsistOf( + Expect(spec.Listeners).To(ConsistOf( MatchFields(IgnoreExtras, Fields{ "DisplayName": PointTo(Equal("http")), - "Protocol": PointTo(Equal(loadbalancer.LISTENERPROTOCOL_TCP)), + "Protocol": PointTo(Equal(loadbalancer.LISTENERPROTOCOL_PROTOCOL_TCP)), "Port": PointTo(BeNumerically("==", 80)), "TargetPool": PointTo(Equal("http")), }), MatchFields(IgnoreExtras, Fields{ "DisplayName": PointTo(Equal("dns")), - "Protocol": PointTo(Equal(loadbalancer.LISTENERPROTOCOL_UDP)), + "Protocol": PointTo(Equal(loadbalancer.LISTENERPROTOCOL_PROTOCOL_UDP)), "Port": PointTo(BeNumerically("==", 53)), "TargetPool": PointTo(Equal("dns")), }), - ))) + )) Expect(spec).To(haveConsistentTargetPool()) }) @@ -400,7 +402,7 @@ var _ = Describe("lbSpecFromService", func() { }, }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).To(MatchError(ContainSubstring("unsupported protocol"))) }) @@ -421,9 +423,9 @@ var _ = Describe("lbSpecFromService", func() { }, }, } - spec, _, err := lbSpecFromService(svc, []*corev1.Node{}, "my-network", nil) + spec, _, err := lbSpecFromService(svc, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) - Expect(spec.Listeners).To(PointTo(ConsistOf(havePortName("port-tcp-80")))) + Expect(spec.Listeners).To(ConsistOf(havePortName("port-tcp-80"))) Expect(spec).To(haveConsistentTargetPool()) }) }) @@ -444,12 +446,12 @@ var _ = Describe("lbSpecFromService", func() { "16.0.0.0/8", }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) Expect(spec).To(PointTo(MatchFields(IgnoreExtras, Fields{ "Options": PointTo(MatchFields(IgnoreExtras, Fields{ "AccessControl": PointTo(MatchFields(IgnoreExtras, Fields{ - "AllowedSourceRanges": PointTo(Equal([]string{"15.0.0.0/8", "16.0.0.0/8"})), + "AllowedSourceRanges": Equal([]string{"15.0.0.0/8", "16.0.0.0/8"}), })), })), }))) @@ -463,12 +465,12 @@ var _ = Describe("lbSpecFromService", func() { "yawol.stackit.cloud/loadBalancerSourceRanges": "2.0.0.0/8,3.0.0.0/8", }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) Expect(spec).To(PointTo(MatchFields(IgnoreExtras, Fields{ "Options": PointTo(MatchFields(IgnoreExtras, Fields{ "AccessControl": PointTo(MatchFields(IgnoreExtras, Fields{ - "AllowedSourceRanges": PointTo(Equal([]string{"2.0.0.0/8", "3.0.0.0/8"})), + "AllowedSourceRanges": Equal([]string{"2.0.0.0/8", "3.0.0.0/8"}), })), })), }))) @@ -493,14 +495,14 @@ var _ = Describe("lbSpecFromService", func() { Addresses: []corev1.NodeAddress{{Type: corev1.NodeInternalIP, Address: "10.2.3.4"}}, }, }, - }, "my-network", nil) + }, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) - Expect(spec.TargetPools).To(PointTo(HaveLen(2))) - Expect(spec.TargetPools).To(PointTo(HaveEach( + Expect(spec.TargetPools).To(HaveLen(2)) + Expect(spec.TargetPools).To(HaveEach( haveTargets(ContainElements(loadbalancer.Target{ - DisplayName: utils.Ptr("node-1"), - Ip: utils.Ptr("10.2.3.4"), - }))))) + DisplayName: new("node-1"), + Ip: new("10.2.3.4"), + })))) }) It("node without internal IP", func() { @@ -526,16 +528,16 @@ var _ = Describe("lbSpecFromService", func() { Addresses: []corev1.NodeAddress{{Type: corev1.NodeExternalIP, Address: "4.5.6.7"}}, }, }, - }, "my-network", nil) + }, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) - Expect(spec.TargetPools).To(PointTo(ConsistOf( + Expect(spec.TargetPools).To(ConsistOf( haveTargets(ConsistOf( // node-2 is missing loadbalancer.Target{ - DisplayName: utils.Ptr("node-1"), - Ip: utils.Ptr("10.2.3.4"), + DisplayName: new("node-1"), + Ip: new("10.2.3.4"), }, )), - ))) + )) Expect(spec).To(haveConsistentTargetPool()) }) }) @@ -549,7 +551,7 @@ var _ = Describe("lbSpecFromService", func() { annotation: "some value", }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) Expect(events).To(ConsistOf(Event{ Type: corev1.EventTypeWarning, @@ -582,7 +584,7 @@ var _ = Describe("lbSpecFromService", func() { "yawol.stackit.cloud/serverGroupPolicy": "my-policy", }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) Expect(events).To(ConsistOf(Event{ Type: corev1.EventTypeWarning, @@ -627,9 +629,9 @@ var _ = Describe("lbSpecFromService", func() { }, }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) - Expect(spec.Listeners).To(PointTo(ConsistOf( + Expect(spec.Listeners).To(ConsistOf( MatchFields(IgnoreExtras, Fields{ "DisplayName": PointTo(Equal("my-tcp-port")), "Tcp": PointTo(MatchFields(IgnoreExtras, Fields{ @@ -644,7 +646,7 @@ var _ = Describe("lbSpecFromService", func() { }), MatchFields(IgnoreExtras, Fields{ "DisplayName": PointTo(Equal("my-tcp-proxy-port")), - "Protocol": PointTo(Equal(loadbalancer.LISTENERPROTOCOL_TCP_PROXY)), + "Protocol": PointTo(Equal(loadbalancer.LISTENERPROTOCOL_PROTOCOL_TCP_PROXY)), "Tcp": PointTo(MatchFields(IgnoreExtras, Fields{ "IdleTimeout": PointTo(Equal("900s")), })), @@ -653,7 +655,7 @@ var _ = Describe("lbSpecFromService", func() { "DisplayName": PointTo(Equal("my-udp-port")), "Tcp": BeNil(), }), - ))) + )) }) It("should set timeout to 60 minutes if no annotation is specified", func() { @@ -672,16 +674,16 @@ var _ = Describe("lbSpecFromService", func() { }, }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) - Expect(spec.Listeners).To(PointTo(ConsistOf( + Expect(spec.Listeners).To(ConsistOf( MatchFields(IgnoreExtras, Fields{ "DisplayName": PointTo(Equal("my-tcp-port")), "Tcp": PointTo(MatchFields(IgnoreExtras, Fields{ "IdleTimeout": PointTo(Equal("3600s")), })), }), - ))) + )) }) It("should set timeout based on yawol annotation", func() { @@ -701,16 +703,16 @@ var _ = Describe("lbSpecFromService", func() { }, }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) - Expect(spec.Listeners).To(PointTo(ConsistOf( + Expect(spec.Listeners).To(ConsistOf( MatchFields(IgnoreExtras, Fields{ "DisplayName": PointTo(Equal("my-tcp-port")), "Tcp": PointTo(MatchFields(IgnoreExtras, Fields{ "IdleTimeout": PointTo(Equal("180s")), })), }), - ))) + )) }) It("should error on non-compatible timeouts", func() { @@ -731,7 +733,7 @@ var _ = Describe("lbSpecFromService", func() { }, }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).To(HaveOccurred()) }) @@ -752,7 +754,7 @@ var _ = Describe("lbSpecFromService", func() { }, }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).To(HaveOccurred()) }) @@ -773,16 +775,16 @@ var _ = Describe("lbSpecFromService", func() { }, }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) - Expect(spec.Listeners).To(PointTo(ConsistOf( + Expect(spec.Listeners).To(ConsistOf( MatchFields(IgnoreExtras, Fields{ "DisplayName": PointTo(Equal("my-tcp-port")), "Tcp": PointTo(MatchFields(IgnoreExtras, Fields{ "IdleTimeout": PointTo(Equal("3600s")), })), }), - ))) + )) }) }) @@ -791,7 +793,7 @@ var _ = Describe("lbSpecFromService", func() { spec, _, err := lbSpecFromService(&corev1.Service{ ObjectMeta: metav1.ObjectMeta{ Annotations: map[string]string{ - "lb.stackit.cloud/service-plan-id": "p250", + "lb.stackit.cloud/service-plan-id": p250, }, }, Spec: corev1.ServiceSpec{ @@ -803,9 +805,9 @@ var _ = Describe("lbSpecFromService", func() { }, }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) - Expect(spec.PlanId).To(HaveValue(BeEquivalentTo("p250"))) + Expect(spec.PlanId).To(HaveValue(BeEquivalentTo(p250))) }) It("should not create an LB with a custom plan when service-plan-id annotation is set to an invalid value", func() { _, _, err := lbSpecFromService(&corev1.Service{ @@ -823,7 +825,7 @@ var _ = Describe("lbSpecFromService", func() { }, }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).To(HaveOccurred()) }) @@ -843,14 +845,14 @@ var _ = Describe("lbSpecFromService", func() { }, }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) Expect(events).To(HaveLen(1)) //nolint: lll // it needs to match the message in loadbalancer_spec.go Expect(events[0].Message).To(Equal(`Flavors are deprecated in favor of service plans. Picking load balancer service plan p250 for flavor 72f11e14-2825-471d-a237-b1afa775fdad. Use the annotation lb.stackit.cloud/service-plan-id to explicitly choose a service plan.`)) Expect(events[0].Type).To(Equal(corev1.EventTypeWarning)) Expect(events[0].Reason).To(Equal(EventReasonSelectedPlanID)) - Expect(spec.PlanId).To(HaveValue(BeEquivalentTo("p250"))) + Expect(spec.PlanId).To(HaveValue(BeEquivalentTo(p250))) }) It("should create an LB with a custom plan when flavor ID annotation is set to a valid value but doesn't match a service plan ID", func() { @@ -869,14 +871,14 @@ var _ = Describe("lbSpecFromService", func() { }, }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) Expect(events).To(HaveLen(1)) //nolint: lll // it needs to match the message in loadbalancer_spec.go Expect(events[0].Message).To(Equal(`Flavors are deprecated in favor of service plans. Picking load balancer service plan p50 for flavor aa603f7b-4214-486c-81ce-369535cef8ed. Use the annotation lb.stackit.cloud/service-plan-id to explicitly choose a service plan.`)) Expect(events[0].Type).To(Equal(corev1.EventTypeWarning)) Expect(events[0].Reason).To(Equal(EventReasonSelectedPlanID)) - Expect(spec.PlanId).To(HaveValue(BeEquivalentTo("p50"))) + Expect(spec.PlanId).To(HaveValue(BeEquivalentTo(p50))) }) It("should not create an LB with a custom plan when flavorId annotation is set to an invalid value", func() { _, _, err := lbSpecFromService(&corev1.Service{ @@ -894,7 +896,7 @@ var _ = Describe("lbSpecFromService", func() { }, }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).To(HaveOccurred()) }) }) @@ -926,9 +928,9 @@ var _ = Describe("lbSpecFromService", func() { }, }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) - Expect(spec.Listeners).To(PointTo(ConsistOf( + Expect(spec.Listeners).To(ConsistOf( MatchFields(IgnoreExtras, Fields{ "DisplayName": PointTo(Equal("my-tcp-port")), "Udp": BeNil(), @@ -945,7 +947,7 @@ var _ = Describe("lbSpecFromService", func() { "IdleTimeout": PointTo(Equal("900s")), })), }), - ))) + )) }) It("should set timeout to 2 minutes if no annotation is specified", func() { @@ -964,16 +966,16 @@ var _ = Describe("lbSpecFromService", func() { }, }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) - Expect(spec.Listeners).To(PointTo(ConsistOf( + Expect(spec.Listeners).To(ConsistOf( MatchFields(IgnoreExtras, Fields{ "DisplayName": PointTo(Equal("my-udp-port")), "Udp": PointTo(MatchFields(IgnoreExtras, Fields{ "IdleTimeout": PointTo(Equal("120s")), })), }), - ))) + )) }) It("should set timeout based on yawol annotation", func() { @@ -993,16 +995,16 @@ var _ = Describe("lbSpecFromService", func() { }, }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) - Expect(spec.Listeners).To(PointTo(ConsistOf( + Expect(spec.Listeners).To(ConsistOf( MatchFields(IgnoreExtras, Fields{ "DisplayName": PointTo(Equal("my-udp-port")), "Udp": PointTo(MatchFields(IgnoreExtras, Fields{ "IdleTimeout": PointTo(Equal("180s")), })), }), - ))) + )) }) It("should error on non-compatible timeouts", func() { @@ -1023,7 +1025,7 @@ var _ = Describe("lbSpecFromService", func() { }, }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).To(HaveOccurred()) }) @@ -1044,7 +1046,7 @@ var _ = Describe("lbSpecFromService", func() { }, }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).To(HaveOccurred()) }) @@ -1065,16 +1067,16 @@ var _ = Describe("lbSpecFromService", func() { }, }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) - Expect(spec.Listeners).To(PointTo(ConsistOf( + Expect(spec.Listeners).To(ConsistOf( MatchFields(IgnoreExtras, Fields{ "DisplayName": PointTo(Equal("my-udp-port")), "Udp": PointTo(MatchFields(IgnoreExtras, Fields{ "IdleTimeout": PointTo(Equal("120s")), })), }), - ))) + )) }) }) Context("Session Persistence", func() { @@ -1094,15 +1096,15 @@ var _ = Describe("lbSpecFromService", func() { }, }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) - Expect(spec.TargetPools).To(PointTo(HaveEach( + Expect(spec.TargetPools).To(HaveEach( MatchFields(IgnoreExtras, Fields{ "SessionPersistence": PointTo(MatchFields(IgnoreExtras, Fields{ "UseSourceIpAddress": PointTo(BeTrue()), })), }), - ))) + )) }) It("should disable session persistence when annotation is false", func() { @@ -1121,15 +1123,15 @@ var _ = Describe("lbSpecFromService", func() { }, }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) - Expect(spec.TargetPools).To(PointTo(HaveEach( + Expect(spec.TargetPools).To(HaveEach( MatchFields(IgnoreExtras, Fields{ "SessionPersistence": PointTo(MatchFields(IgnoreExtras, Fields{ "UseSourceIpAddress": PointTo(BeFalse()), })), }), - ))) + )) }) It("should error on invalid value for useSourceIpAddress", func() { @@ -1139,7 +1141,7 @@ var _ = Describe("lbSpecFromService", func() { "lb.stackit.cloud/session-persistence-with-source-ip": "foo", }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).To(MatchError(ContainSubstring("invalid bool"))) }) }) @@ -1151,12 +1153,12 @@ var _ = Describe("lbSpecFromService", func() { "lb.stackit.cloud/internal-lb": "true", }, }, - }, []*corev1.Node{}, "my-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) - Expect(spec.Networks).To(PointTo(ConsistOf(MatchFields(IgnoreExtras, Fields{ + Expect(spec.Networks).To(ConsistOf(MatchFields(IgnoreExtras, Fields{ "NetworkId": PointTo(Equal("my-network")), - "Role": PointTo(Equal(loadbalancer.NETWORKROLE_LISTENERS_AND_TARGETS)), - })))) + "Role": PointTo(Equal(loadbalancer.NETWORKROLE_ROLE_LISTENERS_AND_TARGETS)), + }))) }) It("should create a load balancer with two networks with dedicated roles", func() { @@ -1166,22 +1168,22 @@ var _ = Describe("lbSpecFromService", func() { "lb.stackit.cloud/listener-network": "my-listener-network", }, }, - }, []*corev1.Node{}, "my-target-network", nil) + }, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) - Expect(spec.Networks).To(PointTo(ConsistOf( + Expect(spec.Networks).To(ConsistOf( MatchFields(IgnoreExtras, Fields{ - "NetworkId": PointTo(Equal("my-target-network")), - "Role": PointTo(Equal(loadbalancer.NETWORKROLE_TARGETS)), + "NetworkId": PointTo(Equal("my-network")), + "Role": PointTo(Equal(loadbalancer.NETWORKROLE_ROLE_TARGETS)), }), MatchFields(IgnoreExtras, Fields{ "NetworkId": PointTo(Equal("my-listener-network")), - "Role": PointTo(Equal(loadbalancer.NETWORKROLE_LISTENERS)), + "Role": PointTo(Equal(loadbalancer.NETWORKROLE_ROLE_LISTENERS)), }), - ))) + )) }) It("should configure a public service without existing IP as ephemeral", func() { - spec, _, err := lbSpecFromService(&corev1.Service{}, []*corev1.Node{}, "my-network", nil) + spec, _, err := lbSpecFromService(&corev1.Service{}, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) Expect(*spec.Options.EphemeralAddress).To(BeTrue()) }) @@ -1189,7 +1191,7 @@ var _ = Describe("lbSpecFromService", func() { // haveTargets succeeds if actual is a target pool and the list of targets matches matcher. func haveTargets(matcher types.GomegaMatcher) types.GomegaMatcher { - return WithTransform(func(pool loadbalancer.TargetPool) *[]loadbalancer.Target { return pool.Targets }, PointTo(matcher)) + return WithTransform(func(pool loadbalancer.TargetPool) []loadbalancer.Target { return pool.Targets }, matcher) } // havePortName succeeds if actual is a listener whose display name matches name. @@ -1200,8 +1202,8 @@ func havePortName(name string) types.GomegaMatcher { // haveConsistentTargetPool succeeds if the target pools of each listener exist. func haveConsistentTargetPool() types.GomegaMatcher { return WithTransform(func(l *loadbalancer.CreateLoadBalancerPayload) bool { - for _, lb := range *l.Listeners { - contains := slices.ContainsFunc(*l.TargetPools, func(t loadbalancer.TargetPool) bool { + for _, lb := range l.Listeners { + contains := slices.ContainsFunc(l.TargetPools, func(t loadbalancer.TargetPool) bool { return ptr.Equal(lb.TargetPool, t.Name) }) if !contains { @@ -1230,30 +1232,30 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: true, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), Observability: &loadbalancer.LoadbalancerOptionObservability{ Logs: &loadbalancer.LoadbalancerOptionLogs{ - CredentialsRef: ptr.To("credentials-12345"), - PushUrl: ptr.To("https://logs.example.org"), + CredentialsRef: new("credentials-12345"), + PushUrl: new("https://logs.example.org"), }, Metrics: &loadbalancer.LoadbalancerOptionMetrics{ - CredentialsRef: ptr.To("credentials-12345"), - PushUrl: ptr.To("https://metrics.example.org"), + CredentialsRef: new("credentials-12345"), + PushUrl: new("https://metrics.example.org"), }, }, }, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), Observability: &loadbalancer.LoadbalancerOptionObservability{ Logs: &loadbalancer.LoadbalancerOptionLogs{ - CredentialsRef: ptr.To("credentials-12345"), - PushUrl: ptr.To("https://logs.example.org"), + CredentialsRef: new("credentials-12345"), + PushUrl: new("https://logs.example.org"), }, Metrics: &loadbalancer.LoadbalancerOptionMetrics{ - CredentialsRef: ptr.To("credentials-12345"), - PushUrl: ptr.To("https://metrics.example.org"), + CredentialsRef: new("credentials-12345"), + PushUrl: new("https://metrics.example.org"), }, }, }, @@ -1264,18 +1266,18 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: false, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), Observability: &loadbalancer.LoadbalancerOptionObservability{ Metrics: &loadbalancer.LoadbalancerOptionMetrics{ - CredentialsRef: ptr.To("credentials-12345"), - PushUrl: ptr.To("https://metrics.example.org"), + CredentialsRef: new("credentials-12345"), + PushUrl: new("https://metrics.example.org"), }, }, }, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, }, }), @@ -1283,15 +1285,15 @@ var _ = DescribeTable("compareLBwithSpec", // The load balancer API uses the same field to report an ephemeral IP and to reference a static IP. wantFulfilled: true, lb: &loadbalancer.LoadBalancer{ - ExternalAddress: utils.Ptr("123.124.88.99"), + ExternalAddress: new("123.124.88.99"), Options: &loadbalancer.LoadBalancerOptions{ - EphemeralAddress: utils.Ptr(true), + EphemeralAddress: new(true), }, }, spec: &loadbalancer.CreateLoadBalancerPayload{ ExternalAddress: nil, Options: &loadbalancer.LoadBalancerOptions{ - EphemeralAddress: utils.Ptr(true), + EphemeralAddress: new(true), }, }, }), @@ -1299,63 +1301,63 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: false, wantImmutabledChanged: nil, lb: &loadbalancer.LoadBalancer{ - PlanId: loadbalancer.PtrString("p10"), + PlanId: new(p10), Options: &loadbalancer.LoadBalancerOptions{ - EphemeralAddress: utils.Ptr(true), + EphemeralAddress: new(true), }, }, spec: &loadbalancer.CreateLoadBalancerPayload{ - PlanId: loadbalancer.PtrString("p250"), + PlanId: new(p250), Options: &loadbalancer.LoadBalancerOptions{ - EphemeralAddress: utils.Ptr(true), + EphemeralAddress: new(true), }, }, }), Entry("When LB has no external IP but one is specified", &compareLBwithSpecTest{ - wantImmutabledChanged: &resultImmutableChanged{field: ".externalAddress"}, + wantImmutabledChanged: &resultImmutableChanged{field: ".externalAddress", annotation: externalIPAnnotation}, lb: &loadbalancer.LoadBalancer{ ExternalAddress: nil, }, spec: &loadbalancer.CreateLoadBalancerPayload{ - ExternalAddress: utils.Ptr("123.124.88.99"), + ExternalAddress: new("123.124.88.99"), }, }), Entry("When specified and actual IP don't match", &compareLBwithSpecTest{ // The IP can never be changed. Not even with promotion or demotion. - wantImmutabledChanged: &resultImmutableChanged{field: ".externalAddress"}, + wantImmutabledChanged: &resultImmutableChanged{field: ".externalAddress", annotation: externalIPAnnotation}, lb: &loadbalancer.LoadBalancer{ - ExternalAddress: utils.Ptr("123.124.88.01"), + ExternalAddress: new("123.124.88.01"), }, spec: &loadbalancer.CreateLoadBalancerPayload{ - ExternalAddress: utils.Ptr("123.124.88.99"), + ExternalAddress: new("123.124.88.99"), }, }), Entry("When IP is to be promoted", &compareLBwithSpecTest{ wantFulfilled: false, lb: &loadbalancer.LoadBalancer{ - ExternalAddress: utils.Ptr("123.124.88.99"), + ExternalAddress: new("123.124.88.99"), Options: &loadbalancer.LoadBalancerOptions{ - EphemeralAddress: utils.Ptr(true), + EphemeralAddress: new(true), }, }, spec: &loadbalancer.CreateLoadBalancerPayload{ - ExternalAddress: utils.Ptr("123.124.88.99"), + ExternalAddress: new("123.124.88.99"), Options: &loadbalancer.LoadBalancerOptions{ - EphemeralAddress: utils.Ptr(false), + EphemeralAddress: new(false), }, }, }), Entry("When IP is to be demoted", &compareLBwithSpecTest{ - wantImmutabledChanged: &resultImmutableChanged{field: ".options.ephemeralAddress"}, + wantImmutabledChanged: &resultImmutableChanged{field: ".options.ephemeralAddress", annotation: externalIPAnnotation}, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - EphemeralAddress: utils.Ptr(false), + EphemeralAddress: new(false), }, - ExternalAddress: utils.Ptr("123.124.88.99"), + ExternalAddress: new("123.124.88.99"), }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - EphemeralAddress: utils.Ptr(true), + EphemeralAddress: new(true), }, }, }), @@ -1363,17 +1365,17 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: false, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - Listeners: &[]loadbalancer.Listener{ + Listeners: []loadbalancer.Listener{ {}, {}, }, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - Listeners: &[]loadbalancer.Listener{ + Listeners: []loadbalancer.Listener{ {}, }, }, @@ -1382,18 +1384,18 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: false, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - Listeners: &[]loadbalancer.Listener{ - {DisplayName: utils.Ptr("port-a")}, + Listeners: []loadbalancer.Listener{ + {DisplayName: new("port-a")}, }, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - Listeners: &[]loadbalancer.Listener{ - {DisplayName: utils.Ptr("port-b")}, + Listeners: []loadbalancer.Listener{ + {DisplayName: new("port-b")}, }, }, }), @@ -1401,18 +1403,18 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: false, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - Listeners: &[]loadbalancer.Listener{ - {Port: utils.Ptr[int64](80)}, + Listeners: []loadbalancer.Listener{ + {Port: new(int32(80))}, }, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - Listeners: &[]loadbalancer.Listener{ - {Port: utils.Ptr[int64](443)}, + Listeners: []loadbalancer.Listener{ + {Port: new(int32(443))}, }, }, }), @@ -1420,18 +1422,18 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: false, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - Listeners: &[]loadbalancer.Listener{ - {Protocol: utils.Ptr(loadbalancer.LISTENERPROTOCOL_TCP)}, + Listeners: []loadbalancer.Listener{ + {Protocol: new(loadbalancer.LISTENERPROTOCOL_PROTOCOL_TCP)}, }, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - Listeners: &[]loadbalancer.Listener{ - {Protocol: utils.Ptr(loadbalancer.LISTENERPROTOCOL_TCP_PROXY)}, + Listeners: []loadbalancer.Listener{ + {Protocol: new(loadbalancer.LISTENERPROTOCOL_PROTOCOL_TCP_PROXY)}, }, }, }), @@ -1439,26 +1441,26 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: false, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - Listeners: &[]loadbalancer.Listener{ + Listeners: []loadbalancer.Listener{ { - Protocol: utils.Ptr(loadbalancer.LISTENERPROTOCOL_TCP), + Protocol: new(loadbalancer.LISTENERPROTOCOL_PROTOCOL_TCP), Tcp: &loadbalancer.OptionsTCP{ - IdleTimeout: utils.Ptr("60s"), + IdleTimeout: new("60s"), }, }, }, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - Listeners: &[]loadbalancer.Listener{ + Listeners: []loadbalancer.Listener{ { - Protocol: utils.Ptr(loadbalancer.LISTENERPROTOCOL_TCP), + Protocol: new(loadbalancer.LISTENERPROTOCOL_PROTOCOL_TCP), Tcp: &loadbalancer.OptionsTCP{ - IdleTimeout: utils.Ptr("120s"), + IdleTimeout: new("120s"), }, }, }, @@ -1468,26 +1470,26 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: false, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - Listeners: &[]loadbalancer.Listener{ + Listeners: []loadbalancer.Listener{ { - Protocol: utils.Ptr(loadbalancer.LISTENERPROTOCOL_UDP), + Protocol: new(loadbalancer.LISTENERPROTOCOL_PROTOCOL_UDP), Udp: &loadbalancer.OptionsUDP{ - IdleTimeout: utils.Ptr("60s"), + IdleTimeout: new("60s"), }, }, }, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - Listeners: &[]loadbalancer.Listener{ + Listeners: []loadbalancer.Listener{ { - Protocol: utils.Ptr(loadbalancer.LISTENERPROTOCOL_UDP), + Protocol: new(loadbalancer.LISTENERPROTOCOL_PROTOCOL_UDP), Udp: &loadbalancer.OptionsUDP{ - IdleTimeout: utils.Ptr("120s"), + IdleTimeout: new("120s"), }, }, }, @@ -1497,26 +1499,26 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: false, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - Listeners: &[]loadbalancer.Listener{ + Listeners: []loadbalancer.Listener{ { - Protocol: utils.Ptr(loadbalancer.LISTENERPROTOCOL_TCP_PROXY), + Protocol: new(loadbalancer.LISTENERPROTOCOL_PROTOCOL_TCP_PROXY), Tcp: &loadbalancer.OptionsTCP{ - IdleTimeout: utils.Ptr("60s"), + IdleTimeout: new("60s"), }, }, }, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - Listeners: &[]loadbalancer.Listener{ + Listeners: []loadbalancer.Listener{ { - Protocol: utils.Ptr(loadbalancer.LISTENERPROTOCOL_TCP_PROXY), + Protocol: new(loadbalancer.LISTENERPROTOCOL_PROTOCOL_TCP_PROXY), Tcp: &loadbalancer.OptionsTCP{ - IdleTimeout: utils.Ptr("120s"), + IdleTimeout: new("120s"), }, }, }, @@ -1526,80 +1528,80 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: false, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - Listeners: &[]loadbalancer.Listener{ - {TargetPool: utils.Ptr("target-pool-a")}, + Listeners: []loadbalancer.Listener{ + {TargetPool: new("target-pool-a")}, }, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - Listeners: &[]loadbalancer.Listener{ - {TargetPool: utils.Ptr("target-pool-b")}, + Listeners: []loadbalancer.Listener{ + {TargetPool: new("target-pool-b")}, }, }, }), Entry("When LB has no networks but one is specified", &compareLBwithSpecTest{ - wantImmutabledChanged: &resultImmutableChanged{field: "len(.networks)"}, + wantImmutabledChanged: &resultImmutableChanged{field: "len(.networks)", annotation: listenerNetworkAnnotation}, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, Networks: nil, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - Networks: &[]loadbalancer.Network{ + Networks: []loadbalancer.Network{ {}, }, }, }), Entry("When network id doesn't match", &compareLBwithSpecTest{ - wantImmutabledChanged: &resultImmutableChanged{field: ".networks[0].networkId"}, + wantImmutabledChanged: &resultImmutableChanged{field: ".networks[0].networkId", annotation: listenerNetworkAnnotation}, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - Networks: &[]loadbalancer.Network{ + Networks: []loadbalancer.Network{ { - NetworkId: utils.Ptr("my-network"), + NetworkId: new("my-network"), }, }, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - Networks: &[]loadbalancer.Network{ + Networks: []loadbalancer.Network{ { - NetworkId: utils.Ptr("other-network"), + NetworkId: new("other-network"), }, }, }, }), Entry("When network role doesn't match", &compareLBwithSpecTest{ - wantImmutabledChanged: &resultImmutableChanged{field: ".networks[0].role"}, + wantImmutabledChanged: &resultImmutableChanged{field: ".networks[0].role", annotation: listenerNetworkAnnotation}, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - Networks: &[]loadbalancer.Network{ + Networks: []loadbalancer.Network{ { - Role: utils.Ptr(loadbalancer.NETWORKROLE_LISTENERS), + Role: new(loadbalancer.NETWORKROLE_ROLE_LISTENERS), }, }, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - Networks: &[]loadbalancer.Network{ + Networks: []loadbalancer.Network{ { - Role: utils.Ptr(loadbalancer.NETWORKROLE_TARGETS), + Role: new(loadbalancer.NETWORKROLE_ROLE_TARGETS), }, }, }, @@ -1608,17 +1610,17 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: false, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{ + TargetPools: []loadbalancer.TargetPool{ {}, }, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{ + TargetPools: []loadbalancer.TargetPool{ {}, {}, }, }, @@ -1627,21 +1629,21 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: false, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{ + TargetPools: []loadbalancer.TargetPool{ { - Name: utils.Ptr("target-pool-a"), + Name: new("target-pool-a"), }, }, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{ + TargetPools: []loadbalancer.TargetPool{ { - Name: utils.Ptr("target-pool-b"), + Name: new("target-pool-b"), }, }, }, @@ -1650,21 +1652,21 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: false, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{ + TargetPools: []loadbalancer.TargetPool{ { - TargetPort: utils.Ptr[int64](80), + TargetPort: new(int32(80)), }, }, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{ + TargetPools: []loadbalancer.TargetPool{ { - TargetPort: utils.Ptr[int64](443), + TargetPort: new(int32(443)), }, }, }, @@ -1673,18 +1675,18 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: true, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{ + TargetPools: []loadbalancer.TargetPool{ { - Targets: &[]loadbalancer.Target{ + Targets: []loadbalancer.Target{ { - DisplayName: utils.Ptr("node-a"), - Ip: utils.Ptr("10.0.0.1"), + DisplayName: new("node-a"), + Ip: new("10.0.0.1"), }, { - DisplayName: utils.Ptr("node-b"), - Ip: utils.Ptr("10.0.0.2"), + DisplayName: new("node-b"), + Ip: new("10.0.0.2"), }, }, }, @@ -1692,18 +1694,18 @@ var _ = DescribeTable("compareLBwithSpec", }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{ + TargetPools: []loadbalancer.TargetPool{ { - Targets: &[]loadbalancer.Target{ + Targets: []loadbalancer.Target{ { - DisplayName: utils.Ptr("node-b"), - Ip: utils.Ptr("10.0.0.2"), + DisplayName: new("node-b"), + Ip: new("10.0.0.2"), }, { - DisplayName: utils.Ptr("node-a"), - Ip: utils.Ptr("10.0.0.1"), + DisplayName: new("node-a"), + Ip: new("10.0.0.1"), }, }, }, @@ -1714,14 +1716,14 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: false, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{ + TargetPools: []loadbalancer.TargetPool{ { - Targets: &[]loadbalancer.Target{ + Targets: []loadbalancer.Target{ { - DisplayName: utils.Ptr("node-a"), - Ip: utils.Ptr("10.0.0.1"), + DisplayName: new("node-a"), + Ip: new("10.0.0.1"), }, }, }, @@ -1729,18 +1731,18 @@ var _ = DescribeTable("compareLBwithSpec", }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{ + TargetPools: []loadbalancer.TargetPool{ { - Targets: &[]loadbalancer.Target{ + Targets: []loadbalancer.Target{ { - DisplayName: utils.Ptr("node-b"), - Ip: utils.Ptr("10.0.0.2"), + DisplayName: new("node-b"), + Ip: new("10.0.0.2"), }, { - DisplayName: utils.Ptr("node-a"), - Ip: utils.Ptr("10.0.0.1"), + DisplayName: new("node-a"), + Ip: new("10.0.0.1"), }, }, }, @@ -1751,14 +1753,14 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: false, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{ + TargetPools: []loadbalancer.TargetPool{ { - Targets: &[]loadbalancer.Target{ + Targets: []loadbalancer.Target{ { - DisplayName: utils.Ptr("node-a"), - Ip: utils.Ptr("10.0.0.1"), + DisplayName: new("node-a"), + Ip: new("10.0.0.1"), }, }, }, @@ -1766,14 +1768,14 @@ var _ = DescribeTable("compareLBwithSpec", }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{ + TargetPools: []loadbalancer.TargetPool{ { - Targets: &[]loadbalancer.Target{ + Targets: []loadbalancer.Target{ { - DisplayName: utils.Ptr("node-a"), - Ip: utils.Ptr("10.0.0.2"), + DisplayName: new("node-a"), + Ip: new("10.0.0.2"), }, }, }, @@ -1784,9 +1786,9 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: true, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{ + TargetPools: []loadbalancer.TargetPool{ { Targets: nil, }, @@ -1794,11 +1796,11 @@ var _ = DescribeTable("compareLBwithSpec", }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{ + TargetPools: []loadbalancer.TargetPool{ { - Targets: &[]loadbalancer.Target{}, + Targets: []loadbalancer.Target{}, }, }, }, @@ -1807,24 +1809,24 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: false, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{ + TargetPools: []loadbalancer.TargetPool{ { ActiveHealthCheck: &loadbalancer.ActiveHealthCheck{ - Interval: utils.Ptr("2"), + Interval: new("2"), }, }, }, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{ + TargetPools: []loadbalancer.TargetPool{ { ActiveHealthCheck: &loadbalancer.ActiveHealthCheck{ - Interval: utils.Ptr("3"), + Interval: new("3"), }, }, }, @@ -1834,9 +1836,9 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: false, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{ + TargetPools: []loadbalancer.TargetPool{ { ActiveHealthCheck: &loadbalancer.ActiveHealthCheck{ UnhealthyThreshold: nil, @@ -1846,39 +1848,39 @@ var _ = DescribeTable("compareLBwithSpec", }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{ + TargetPools: []loadbalancer.TargetPool{ { ActiveHealthCheck: &loadbalancer.ActiveHealthCheck{ - UnhealthyThreshold: utils.Ptr[int64](3), + UnhealthyThreshold: new(int32(3)), }, }, }, }, }), Entry("When private network is disabled but specified", &compareLBwithSpecTest{ - wantImmutabledChanged: &resultImmutableChanged{field: ".options.privateNetworkOnly"}, + wantImmutabledChanged: &resultImmutableChanged{field: ".options.privateNetworkOnly", annotation: internalLBAnnotation}, lb: &loadbalancer.LoadBalancer{ Options: nil, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, }, }), Entry("When private IP is reported back from API", &compareLBwithSpecTest{ wantFulfilled: true, lb: &loadbalancer.LoadBalancer{ - PrivateAddress: utils.Ptr("10.1.1.3"), + PrivateAddress: new("10.1.1.3"), Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, }, }), @@ -1886,15 +1888,15 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: false, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), AccessControl: &loadbalancer.LoadbalancerOptionAccessControl{ - AllowedSourceRanges: utils.Ptr([]string{"10.0.0.0/24"}), + AllowedSourceRanges: []string{"10.0.0.0/24"}, }, }, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, }, }), @@ -1902,17 +1904,17 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: false, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), AccessControl: &loadbalancer.LoadbalancerOptionAccessControl{ - AllowedSourceRanges: utils.Ptr([]string{"10.5.0.0/24"}), + AllowedSourceRanges: []string{"10.5.0.0/24"}, }, }, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), AccessControl: &loadbalancer.LoadbalancerOptionAccessControl{ - AllowedSourceRanges: utils.Ptr([]string{"10.0.0.0/24"}), + AllowedSourceRanges: []string{"10.0.0.0/24"}, }, }, }, @@ -1921,21 +1923,21 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: true, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{{ + TargetPools: []loadbalancer.TargetPool{{ SessionPersistence: &loadbalancer.SessionPersistence{ - UseSourceIpAddress: utils.Ptr(true), + UseSourceIpAddress: new(true), }, }}, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{{ + TargetPools: []loadbalancer.TargetPool{{ SessionPersistence: &loadbalancer.SessionPersistence{ - UseSourceIpAddress: utils.Ptr(true), + UseSourceIpAddress: new(true), }, }}, }, @@ -1944,21 +1946,21 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: true, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{{ + TargetPools: []loadbalancer.TargetPool{{ SessionPersistence: &loadbalancer.SessionPersistence{ - UseSourceIpAddress: utils.Ptr(false), + UseSourceIpAddress: new(false), }, }}, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{{ + TargetPools: []loadbalancer.TargetPool{{ SessionPersistence: &loadbalancer.SessionPersistence{ - UseSourceIpAddress: utils.Ptr(false), + UseSourceIpAddress: new(false), }, }}, }, @@ -1967,23 +1969,57 @@ var _ = DescribeTable("compareLBwithSpec", wantFulfilled: false, lb: &loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{{ + TargetPools: []loadbalancer.TargetPool{{ SessionPersistence: &loadbalancer.SessionPersistence{ - UseSourceIpAddress: utils.Ptr(false), + UseSourceIpAddress: new(false), }, }}, }, spec: &loadbalancer.CreateLoadBalancerPayload{ Options: &loadbalancer.LoadBalancerOptions{ - PrivateNetworkOnly: utils.Ptr(true), + PrivateNetworkOnly: new(true), }, - TargetPools: &[]loadbalancer.TargetPool{{ + TargetPools: []loadbalancer.TargetPool{{ SessionPersistence: &loadbalancer.SessionPersistence{ - UseSourceIpAddress: utils.Ptr(true), + UseSourceIpAddress: new(true), }, }}, }, }), ) + +var _ = DescribeTable("sanitizeNodeName", + func(name, safe string) { + Expect(sanitizeNodeName(name)).To(Equal(safe)) + }, + Entry("Already safe", + "localhost", + "localhost", + ), + Entry("Already safe", + "node-01", + "node-01", + ), + Entry("Already safe exact 63 chars", + "node-0123456789012345678901234567890123456789001234567890123456", + "node-0123456789012345678901234567890123456789001234567890123456", + ), + Entry("replace dots", + "node-01.example.com", + "node-01-example-com-7c98300", + ), + Entry("shorten", + "a-very-long-node-01234567890123456789012345678901234567890.example.com", + "a-very-long-node-0123456789012345678901234567890123456-519d04d", + ), + Entry("shorten and replace dots", + "a.very.long.node-01234567890123456789012345678901234567890.example.com", + "a-very-long-node-0123456789012345678901234567890123456-f80f0fa", + ), + Entry("replace dots exact 54 chars", + "a.very.long.node-0123456789012345678901234.example.com", + "a-very-long-node-0123456789012345678901234-example-com-e241059", + ), +) diff --git a/pkg/ccm/loadbalancer_test.go b/pkg/ccm/loadbalancer_test.go index 942993a1..32afd022 100644 --- a/pkg/ccm/loadbalancer_test.go +++ b/pkg/ccm/loadbalancer_test.go @@ -3,19 +3,19 @@ package ccm import ( "context" "errors" + "net/http" "time" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" - "github.com/stackitcloud/stackit-sdk-go/core/utils" - "github.com/stackitcloud/stackit-sdk-go/services/loadbalancer" + stackitclientmock "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/client/mock" + stackitconfig "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/config" + oapiError "github.com/stackitcloud/stackit-sdk-go/core/oapierror" + loadbalancer "github.com/stackitcloud/stackit-sdk-go/services/loadbalancer/v2api" "go.uber.org/mock/gomock" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/cloud-provider/api" - "k8s.io/utils/ptr" - - "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit" ) var notYetReadyError = api.NewRetryError("waiting for load balancer to become ready. This error is normal while the load balancer starts.", 10*time.Second).Error() @@ -27,29 +27,27 @@ const ( var _ = Describe("LoadBalancer", func() { var ( - mockClient *stackit.MockLoadbalancerClient + mockClient *stackitclientmock.MockLoadBalancingClient lbInModeIgnoreAndObs *LoadBalancer loadBalancer *LoadBalancer clusterName string - projectID string - networkID string + lbOpts stackitconfig.LoadBalancerOpts ) BeforeEach(func() { clusterName = "my-cluster" - projectID = "my-project" - networkID = "my-network" + lbOpts = stackitconfig.LoadBalancerOpts{NetworkID: "my-network"} ctrl := gomock.NewController(GinkgoT()) - mockClient = stackit.NewMockLoadbalancerClient(ctrl) + mockClient = stackitclientmock.NewMockLoadBalancingClient(ctrl) var err error - lbInModeIgnoreAndObs, err = NewLoadBalancer(mockClient, projectID, networkID, nil, &MetricsRemoteWrite{ + lbInModeIgnoreAndObs, err = NewLoadBalancer(mockClient, lbOpts, &MetricsRemoteWrite{ endpoint: "test-endpoint", username: "test-username", password: "test-password", }) Expect(err).NotTo(HaveOccurred()) - loadBalancer, err = NewLoadBalancer(mockClient, projectID, networkID, nil, nil) + loadBalancer, err = NewLoadBalancer(mockClient, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) }) @@ -100,7 +98,7 @@ var _ = Describe("LoadBalancer", func() { Describe("GetLoadBalancer", func() { It("should report LB does not exist", func() { - mockClient.EXPECT().GetLoadBalancer(gomock.Any(), projectID, gomock.Any()).Return(nil, stackit.ErrorNotFound) + mockClient.EXPECT().GetLoadBalancer(gomock.Any(), gomock.Any()).Return(nil, &oapiError.GenericOpenAPIError{StatusCode: http.StatusNotFound}) svc := minimalLoadBalancerService() @@ -111,29 +109,29 @@ var _ = Describe("LoadBalancer", func() { convertToLB := func(spec *loadbalancer.CreateLoadBalancerPayload) *loadbalancer.LoadBalancer { return &loadbalancer.LoadBalancer{ - Errors: &[]loadbalancer.LoadBalancerError{}, + Errors: []loadbalancer.LoadBalancerError{}, ExternalAddress: spec.ExternalAddress, Listeners: spec.Listeners, Name: spec.Name, Networks: spec.Networks, Options: spec.Options, - Status: ptr.To(loadbalancer.LOADBALANCERSTATUS_READY), + Status: new(loadbalancer.LOADBALANCERSTATUS_STATUS_READY), TargetPools: spec.TargetPools, - Version: ptr.To("current-version"), + Version: new("current-version"), } } DescribeTable("should report status for external LB", func(hasExternalAddress bool) { svc := minimalLoadBalancerService() - spec, _, err := lbSpecFromService(svc, []*corev1.Node{}, networkID, nil) + spec, _, err := lbSpecFromService(svc, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) myLb := convertToLB(spec) if !hasExternalAddress { // LB has no external address yet myLb.ExternalAddress = nil } - mockClient.EXPECT().GetLoadBalancer(gomock.Any(), projectID, gomock.Any()).Return(myLb, nil) + mockClient.EXPECT().GetLoadBalancer(gomock.Any(), gomock.Any()).Return(myLb, nil) status, found, err := loadBalancer.GetLoadBalancer(context.Background(), clusterName, svc) Expect(err).NotTo(HaveOccurred()) @@ -163,14 +161,14 @@ var _ = Describe("LoadBalancer", func() { Type: corev1.ServiceTypeLoadBalancer, }, } - spec, _, err := lbSpecFromService(svc, []*corev1.Node{}, networkID, nil) + spec, _, err := lbSpecFromService(svc, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) myLb := convertToLB(spec) Expect(myLb.ExternalAddress).To(BeNil()) if hasPrivateAddress { - myLb.PrivateAddress = ptr.To("10.20.30.40") + myLb.PrivateAddress = new("10.20.30.40") } - mockClient.EXPECT().GetLoadBalancer(gomock.Any(), projectID, gomock.Any()).Return(myLb, nil) + mockClient.EXPECT().GetLoadBalancer(gomock.Any(), gomock.Any()).Return(myLb, nil) status, found, err := loadBalancer.GetLoadBalancer(context.Background(), clusterName, svc) Expect(err).NotTo(HaveOccurred()) @@ -190,8 +188,8 @@ var _ = Describe("LoadBalancer", func() { Describe("EnsureLoadBalancer", func() { It("ensure load balancer should trigger load balancer creation if LB doesn't exist", func() { - mockClient.EXPECT().GetLoadBalancer(gomock.Any(), projectID, gomock.Any()).Return(nil, stackit.ErrorNotFound) - mockClient.EXPECT().CreateLoadBalancer(gomock.Any(), projectID, gomock.Any()).MinTimes(1).Return(&loadbalancer.LoadBalancer{}, nil) + mockClient.EXPECT().GetLoadBalancer(gomock.Any(), gomock.Any()).Return(nil, &oapiError.GenericOpenAPIError{StatusCode: http.StatusNotFound}) + mockClient.EXPECT().CreateLoadBalancer(gomock.Any(), gomock.Any()).MinTimes(1).Return(&loadbalancer.LoadBalancer{}, nil) _, err := loadBalancer.EnsureLoadBalancer(context.Background(), clusterName, minimalLoadBalancerService(), []*corev1.Node{}) Expect(err).To(MatchError(notYetReadyError)) @@ -199,22 +197,23 @@ var _ = Describe("LoadBalancer", func() { }) It("should create a load balancer with observability configured", func() { - mockClient.EXPECT().GetLoadBalancer(gomock.Any(), projectID, gomock.Any()).Return(nil, stackit.ErrorNotFound) - mockClient.EXPECT().ListCredentials(gomock.Any(), projectID).Return(&loadbalancer.ListCredentialsResponse{ - Credentials: &[]loadbalancer.CredentialsResponse{}, + mockClient.EXPECT().GetLoadBalancer(gomock.Any(), gomock.Any()).Return(nil, &oapiError.GenericOpenAPIError{StatusCode: http.StatusNotFound}) + mockClient.EXPECT().ListCredentials(gomock.Any()).Return(&loadbalancer.ListCredentialsResponse{ + Credentials: []loadbalancer.CredentialsResponse{}, }, nil) // TODO: match payload - mockClient.EXPECT().CreateCredentials(gomock.Any(), projectID, gomock.Any()).MinTimes(1). - DoAndReturn(func(_ context.Context, _ string, payload loadbalancer.CreateCredentialsPayload) (*loadbalancer.CreateCredentialsResponse, error) { + mockClient.EXPECT().CreateCredentials(gomock.Any(), gomock.Any()).MinTimes(1). + DoAndReturn(func(_ context.Context, payload loadbalancer.CreateCredentialsPayload) (*loadbalancer.CreateCredentialsResponse, error) { return &loadbalancer.CreateCredentialsResponse{ Credential: &loadbalancer.CredentialsResponse{ - CredentialsRef: utils.Ptr("my-credential-ref"), - DisplayName: utils.Ptr(*payload.DisplayName), - Username: utils.Ptr(*payload.Username), + CredentialsRef: new("my-credential-ref"), + DisplayName: new(*payload.DisplayName), + Username: new(*payload.Username), }, }, nil }) - mockClient.EXPECT().CreateLoadBalancer(gomock.Any(), projectID, gomock.Any()).MinTimes(1).Return(&loadbalancer.LoadBalancer{}, nil) + // isCreatedWithEnabledDisableTargetSecurityGroupAssignment ensures that DisableTargetSecurityGroupAssignment is set to true + mockClient.EXPECT().CreateLoadBalancer(gomock.Any(), isCreatedWithEnabledDisableTargetSecurityGroupAssignment()).MinTimes(1).Return(&loadbalancer.LoadBalancer{}, nil) _, err := lbInModeIgnoreAndObs.EnsureLoadBalancer(context.Background(), clusterName, minimalLoadBalancerService(), []*corev1.Node{}) Expect(err).To(MatchError(notYetReadyError)) @@ -222,31 +221,82 @@ var _ = Describe("LoadBalancer", func() { // Expected CreateLoadBalancer to have been called. }) + DescribeTable("LoadBalancer UPDATE behavior for DisableTargetSecurityGroupAssignment", + func(disableTargetSG bool, matcher gomock.Matcher) { + svc := minimalLoadBalancerService() + spec, _, err := lbSpecFromService(svc, []*corev1.Node{}, lbOpts, nil) + Expect(err).NotTo(HaveOccurred()) + + myLb := &loadbalancer.LoadBalancer{ + Errors: []loadbalancer.LoadBalancerError{}, + ExternalAddress: spec.ExternalAddress, + Listeners: spec.Listeners, + Name: spec.Name, + Networks: spec.Networks, + Options: spec.Options, + PrivateAddress: spec.PrivateAddress, + Status: new(loadbalancer.LOADBALANCERSTATUS_STATUS_READY), + TargetPools: spec.TargetPools, + DisableTargetSecurityGroupAssignment: &disableTargetSG, + Version: new("current-version"), + PlanId: new(p10), + } + + mockClient.EXPECT().GetLoadBalancer(gomock.Any(), gomock.Any()).Return(myLb, nil) + + mockClient.EXPECT().UpdateLoadBalancer( + gomock.Any(), + loadBalancer.GetLoadBalancerName(context.Background(), clusterName, svc), + matcher, + ).MinTimes(1).Return(myLb, nil) + + // Trigger an update by changing the service + svc = svc.DeepCopy() + svc.Spec.Ports = append(svc.Spec.Ports, corev1.ServicePort{ + Name: "a-port", + Protocol: corev1.ProtocolTCP, + Port: 80, + NodePort: 1234, + }) + + _, err = loadBalancer.EnsureLoadBalancer(context.Background(), clusterName, svc, []*corev1.Node{}) + Expect(err).NotTo(HaveOccurred()) + }, + Entry("should not set DisableTargetSecurityGroupAssignment to true when it is initially false", + false, + hasNotEnabledDisableTargetSecurityGroupAssignment(), + ), + Entry("should keep DisableTargetSecurityGroupAssignment as true when it is initially true", + true, + hasEnabledDisableTargetSecurityGroupAssignment(), + ), + ) + It("should update observability credential if credentials are specified in load balancer", func() { svc := minimalLoadBalancerService() - spec, _, err := lbSpecFromService(svc, []*corev1.Node{}, networkID, &loadbalancer.LoadbalancerOptionObservability{ + spec, _, err := lbSpecFromService(svc, []*corev1.Node{}, lbOpts, &loadbalancer.LoadbalancerOptionObservability{ Metrics: &loadbalancer.LoadbalancerOptionMetrics{ - CredentialsRef: utils.Ptr(sampleCredentialsRef), + CredentialsRef: new(sampleCredentialsRef), PushUrl: &lbInModeIgnoreAndObs.metricsRemoteWrite.endpoint, }, }) Expect(err).NotTo(HaveOccurred()) myLb := &loadbalancer.LoadBalancer{ - Errors: &[]loadbalancer.LoadBalancerError{}, + Errors: []loadbalancer.LoadBalancerError{}, ExternalAddress: spec.ExternalAddress, Listeners: spec.Listeners, Name: spec.Name, Networks: spec.Networks, Options: spec.Options, PrivateAddress: spec.PrivateAddress, - Status: ptr.To(loadbalancer.LOADBALANCERSTATUS_READY), + Status: new(loadbalancer.LOADBALANCERSTATUS_STATUS_READY), TargetPools: spec.TargetPools, - Version: ptr.To("current-version"), - PlanId: ptr.To("p10"), + Version: new("current-version"), + PlanId: new(p10), } - mockClient.EXPECT().GetLoadBalancer(gomock.Any(), projectID, gomock.Any()).Return(myLb, nil) - mockClient.EXPECT().UpdateCredentials(gomock.Any(), projectID, sampleCredentialsRef, gomock.Any()).MinTimes(1).Return(nil) + mockClient.EXPECT().GetLoadBalancer(gomock.Any(), gomock.Any()).Return(myLb, nil) + mockClient.EXPECT().UpdateCredentials(gomock.Any(), sampleCredentialsRef, gomock.Any()).MinTimes(1).Return(nil) _, err = lbInModeIgnoreAndObs.EnsureLoadBalancer(context.Background(), clusterName, svc, []*corev1.Node{}) Expect(err).NotTo(HaveOccurred()) @@ -255,28 +305,30 @@ var _ = Describe("LoadBalancer", func() { It("should update the load balancer if the service changed", func() { svc := minimalLoadBalancerService() - spec, _, err := lbSpecFromService(svc, []*corev1.Node{}, networkID, nil) + spec, _, err := lbSpecFromService(svc, []*corev1.Node{}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) myLb := &loadbalancer.LoadBalancer{ - Errors: &[]loadbalancer.LoadBalancerError{}, + Errors: []loadbalancer.LoadBalancerError{}, ExternalAddress: spec.ExternalAddress, Listeners: spec.Listeners, Name: spec.Name, Networks: spec.Networks, Options: spec.Options, PrivateAddress: spec.PrivateAddress, - Status: ptr.To(loadbalancer.LOADBALANCERSTATUS_READY), + Status: new(loadbalancer.LOADBALANCERSTATUS_STATUS_READY), TargetPools: spec.TargetPools, - Version: ptr.To("current-version"), + Version: new("current-version"), } - mockClient.EXPECT().GetLoadBalancer(gomock.Any(), projectID, gomock.Any()).Return(myLb, nil) + mockClient.EXPECT().GetLoadBalancer(gomock.Any(), gomock.Any()).Return(myLb, nil) // For simplicity, we return the original load balancer. In reality, the updated load balancer should be returned. mockClient.EXPECT().UpdateLoadBalancer( gomock.Any(), - projectID, loadBalancer.GetLoadBalancerName(context.Background(), clusterName, svc), - versionMatcher("current-version"), + gomock.All( + versionMatcher("current-version"), + statusNotSet(), + ), ).MinTimes(1).Return(myLb, nil) svc = svc.DeepCopy() @@ -313,28 +365,30 @@ var _ = Describe("LoadBalancer", func() { Port: 80, NodePort: 1234, }) - spec, _, err := lbSpecFromService(svc, []*corev1.Node{nodeA}, networkID, nil) + spec, _, err := lbSpecFromService(svc, []*corev1.Node{nodeA}, lbOpts, nil) Expect(err).NotTo(HaveOccurred()) myLb := &loadbalancer.LoadBalancer{ - Errors: &[]loadbalancer.LoadBalancerError{}, + Errors: []loadbalancer.LoadBalancerError{}, ExternalAddress: spec.ExternalAddress, Listeners: spec.Listeners, Name: spec.Name, Networks: spec.Networks, Options: spec.Options, PrivateAddress: spec.PrivateAddress, - Status: ptr.To(loadbalancer.LOADBALANCERSTATUS_READY), + Status: new(loadbalancer.LOADBALANCERSTATUS_STATUS_READY), TargetPools: spec.TargetPools, - Version: ptr.To("current-version"), + Version: new("current-version"), } - mockClient.EXPECT().GetLoadBalancer(gomock.Any(), projectID, gomock.Any()).Return(myLb, nil) + mockClient.EXPECT().GetLoadBalancer(gomock.Any(), gomock.Any()).Return(myLb, nil) // For simplicity, we return the original load balancer. In reality, the updated load balancer should be returned. mockClient.EXPECT().UpdateLoadBalancer( gomock.Any(), - projectID, loadBalancer.GetLoadBalancerName(context.Background(), clusterName, svc), - versionMatcher("current-version"), + gomock.All( + versionMatcher("current-version"), + statusNotSet(), + ), ).MinTimes(1).Return(myLb, nil) _, err = loadBalancer.EnsureLoadBalancer(context.Background(), clusterName, svc, []*corev1.Node{nodeA, nodeB}) @@ -344,41 +398,40 @@ var _ = Describe("LoadBalancer", func() { It("should delete observability credentials and delete reference from load balancer if controller is not configured (monitoring extension disabled)", func() { svc := minimalLoadBalancerService() - spec, _, err := lbSpecFromService(svc, []*corev1.Node{}, networkID, &loadbalancer.LoadbalancerOptionObservability{ + spec, _, err := lbSpecFromService(svc, []*corev1.Node{}, lbOpts, &loadbalancer.LoadbalancerOptionObservability{ Metrics: &loadbalancer.LoadbalancerOptionMetrics{ - CredentialsRef: ptr.To(sampleCredentialsRef), - PushUrl: ptr.To("test-endpoint"), + CredentialsRef: new(sampleCredentialsRef), + PushUrl: new("test-endpoint"), }, }) Expect(err).NotTo(HaveOccurred()) myLb := &loadbalancer.LoadBalancer{ - Errors: &[]loadbalancer.LoadBalancerError{}, + Errors: []loadbalancer.LoadBalancerError{}, ExternalAddress: spec.ExternalAddress, Listeners: spec.Listeners, Name: spec.Name, Networks: spec.Networks, Options: spec.Options, PrivateAddress: spec.PrivateAddress, - Status: ptr.To(loadbalancer.LOADBALANCERSTATUS_READY), + Status: new(loadbalancer.LOADBALANCERSTATUS_STATUS_READY), TargetPools: spec.TargetPools, - Version: ptr.To("current-version"), + Version: new("current-version"), } - mockClient.EXPECT().GetLoadBalancer(gomock.Any(), projectID, gomock.Any()).Return(myLb, nil) + mockClient.EXPECT().GetLoadBalancer(gomock.Any(), gomock.Any()).Return(myLb, nil) // Check order to ensure that the reference is removed before the credentials are removed. // The API rejects deletions of used credentials. gomock.InOrder( // For simplicity, we return the original load balancer. In reality, the updated load balancer should be returned. mockClient.EXPECT().UpdateLoadBalancer( gomock.Any(), - projectID, loadBalancer.GetLoadBalancerName(context.Background(), clusterName, svc), gomock.All( versionMatcher("current-version"), hasNoObservabilityConfigured(), ), ).MinTimes(1).Return(myLb, nil), - mockClient.EXPECT().DeleteCredentials(gomock.Any(), projectID, gomock.Any()).MinTimes(1).Return(nil), + mockClient.EXPECT().DeleteCredentials(gomock.Any(), gomock.Any()).MinTimes(1).Return(nil), ) _, err = loadBalancer.EnsureLoadBalancer(context.Background(), clusterName, svc, []*corev1.Node{}) @@ -386,15 +439,60 @@ var _ = Describe("LoadBalancer", func() { // Expect UpdateLoadBalancer to have been called. // Expect DeleteCredentials to have been called. }) + + DescribeTable("return error when LoadBalancer is in error state", + func(lbErrors []loadbalancer.LoadBalancerError, wantedErrorString string) { + svc := minimalLoadBalancerService() + spec, _, err := lbSpecFromService(svc, []*corev1.Node{}, lbOpts, nil) + Expect(err).NotTo(HaveOccurred()) + myLb := &loadbalancer.LoadBalancer{ + Errors: lbErrors, + ExternalAddress: spec.ExternalAddress, + PlanId: spec.PlanId, + Listeners: spec.Listeners, + Name: spec.Name, + Networks: spec.Networks, + Options: spec.Options, + PrivateAddress: spec.PrivateAddress, + Status: new(loadbalancer.LOADBALANCERSTATUS_STATUS_ERROR), + TargetPools: spec.TargetPools, + Version: new("current-version"), + } + + mockClient.EXPECT().GetLoadBalancer(gomock.Any(), gomock.Any()).Return(myLb, nil) + + _, err = loadBalancer.EnsureLoadBalancer(context.Background(), clusterName, svc, []*corev1.Node{}) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError(wantedErrorString)) + + }, + Entry("should return an error without specific errors", + []loadbalancer.LoadBalancerError{}, + "the load balancer is in an error state", + ), + Entry("should return an error with specific errors", + []loadbalancer.LoadBalancerError{ + { + Type: new(loadbalancer.LOADBALANCERERRORTYPE_TYPE_UNSPECIFIED), + Description: new("more details"), + }, + { + Type: new(loadbalancer.LOADBALANCERERRORTYPE_TYPE_UNSPECIFIED), + Description: new("even more details"), + }, + }, + "the load balancer is in an error state: [TYPE_UNSPECIFIED] more details; [TYPE_UNSPECIFIED] even more details", + ), + ) }) Describe("EnsureLoadBalancerDeleted", func() { It("should trigger load balancer deletion", func() { - mockClient.EXPECT().GetLoadBalancer(gomock.Any(), projectID, gomock.Any()).Return(&loadbalancer.LoadBalancer{}, nil) - mockClient.EXPECT().ListCredentials(gomock.Any(), projectID).Return(&loadbalancer.ListCredentialsResponse{ - Credentials: &[]loadbalancer.CredentialsResponse{}, + mockClient.EXPECT().GetLoadBalancer(gomock.Any(), gomock.Any()).Return(&loadbalancer.LoadBalancer{}, nil) + mockClient.EXPECT().ListCredentials(gomock.Any()).Return(&loadbalancer.ListCredentialsResponse{ + Credentials: []loadbalancer.CredentialsResponse{}, }, nil) - mockClient.EXPECT().DeleteLoadBalancer(gomock.Any(), projectID, gomock.Any()).MinTimes(1).Return(nil) + mockClient.EXPECT().DeleteLoadBalancer(gomock.Any(), gomock.Any()).MinTimes(1).Return(nil) err := loadBalancer.EnsureLoadBalancerDeleted(context.Background(), clusterName, minimalLoadBalancerService()) Expect(err).NotTo(HaveOccurred()) @@ -402,7 +500,7 @@ var _ = Describe("LoadBalancer", func() { }) It("should finalize deletion if LB API returns not found", func() { - mockClient.EXPECT().GetLoadBalancer(gomock.Any(), projectID, gomock.Any()).Return(nil, stackit.ErrorNotFound) + mockClient.EXPECT().GetLoadBalancer(gomock.Any(), gomock.Any()).Return(nil, &oapiError.GenericOpenAPIError{StatusCode: http.StatusNotFound}) err := loadBalancer.EnsureLoadBalancerDeleted(context.Background(), clusterName, minimalLoadBalancerService()) Expect(err).NotTo(HaveOccurred()) @@ -410,8 +508,8 @@ var _ = Describe("LoadBalancer", func() { }) It("should finalize deletion if load balancer is state terminating", func() { - mockClient.EXPECT().GetLoadBalancer(gomock.Any(), projectID, gomock.Any()).Return(&loadbalancer.LoadBalancer{ - Status: utils.Ptr(loadbalancer.LOADBALANCERSTATUS_TERMINATING), + mockClient.EXPECT().GetLoadBalancer(gomock.Any(), gomock.Any()).Return(&loadbalancer.LoadBalancer{ + Status: new(loadbalancer.LOADBALANCERSTATUS_STATUS_TERMINATING), }, nil) err := loadBalancer.EnsureLoadBalancerDeleted(context.Background(), clusterName, minimalLoadBalancerService()) @@ -420,7 +518,7 @@ var _ = Describe("LoadBalancer", func() { }) It("should report no error if LB not found", func() { - mockClient.EXPECT().GetLoadBalancer(gomock.Any(), projectID, gomock.Any()).Return(nil, stackit.ErrorNotFound) + mockClient.EXPECT().GetLoadBalancer(gomock.Any(), gomock.Any()).Return(nil, &oapiError.GenericOpenAPIError{StatusCode: http.StatusNotFound}) svc := minimalLoadBalancerService() @@ -429,11 +527,11 @@ var _ = Describe("LoadBalancer", func() { }) It("should trigger load balancer deletion", func() { - mockClient.EXPECT().GetLoadBalancer(gomock.Any(), projectID, gomock.Any()).Return(&loadbalancer.LoadBalancer{}, nil) - mockClient.EXPECT().ListCredentials(gomock.Any(), projectID).Return(&loadbalancer.ListCredentialsResponse{ - Credentials: &[]loadbalancer.CredentialsResponse{}, + mockClient.EXPECT().GetLoadBalancer(gomock.Any(), gomock.Any()).Return(&loadbalancer.LoadBalancer{}, nil) + mockClient.EXPECT().ListCredentials(gomock.Any()).Return(&loadbalancer.ListCredentialsResponse{ + Credentials: []loadbalancer.CredentialsResponse{}, }, nil) - mockClient.EXPECT().DeleteLoadBalancer(gomock.Any(), projectID, gomock.Any()).MinTimes(1).Return(nil) + mockClient.EXPECT().DeleteLoadBalancer(gomock.Any(), gomock.Any()).MinTimes(1).Return(nil) svc := minimalLoadBalancerService() @@ -446,28 +544,28 @@ var _ = Describe("LoadBalancer", func() { svc := minimalLoadBalancerService() name := loadBalancer.GetLoadBalancerName(context.Background(), "", svc) - mockClient.EXPECT().GetLoadBalancer(gomock.Any(), projectID, gomock.Any()).Return(&loadbalancer.LoadBalancer{ + mockClient.EXPECT().GetLoadBalancer(gomock.Any(), gomock.Any()).Return(&loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ Observability: &loadbalancer.LoadbalancerOptionObservability{ Metrics: &loadbalancer.LoadbalancerOptionMetrics{ - CredentialsRef: ptr.To(sampleCredentialsRef), - PushUrl: ptr.To("http://localhost"), + CredentialsRef: new(sampleCredentialsRef), + PushUrl: new("http://localhost"), }, }, - EphemeralAddress: ptr.To(false), + EphemeralAddress: new(false), }, - ExternalAddress: ptr.To("8.8.4.4"), - Listeners: &[]loadbalancer.Listener{}, + ExternalAddress: new("8.8.4.4"), + Listeners: []loadbalancer.Listener{}, }, nil) gomock.InOrder( - mockClient.EXPECT().UpdateLoadBalancer(gomock.Any(), projectID, name, gomock.All( + mockClient.EXPECT().UpdateLoadBalancer(gomock.Any(), name, gomock.All( hasNoObservabilityConfigured(), externalAddressSet("8.8.4.4"), )).MinTimes(1).Return(&loadbalancer.LoadBalancer{}, nil), - mockClient.EXPECT().DeleteCredentials(gomock.Any(), projectID, sampleCredentialsRef).MinTimes(1).Return(nil), - mockClient.EXPECT().ListCredentials(gomock.Any(), projectID).Return(&loadbalancer.ListCredentialsResponse{ - Credentials: &[]loadbalancer.CredentialsResponse{}, + mockClient.EXPECT().DeleteCredentials(gomock.Any(), sampleCredentialsRef).MinTimes(1).Return(nil), + mockClient.EXPECT().ListCredentials(gomock.Any()).Return(&loadbalancer.ListCredentialsResponse{ + Credentials: []loadbalancer.CredentialsResponse{}, }, nil), - mockClient.EXPECT().DeleteLoadBalancer(gomock.Any(), projectID, name).MinTimes(1).Return(nil), + mockClient.EXPECT().DeleteLoadBalancer(gomock.Any(), name).MinTimes(1).Return(nil), ) err := loadBalancer.EnsureLoadBalancerDeleted(context.Background(), clusterName, svc) @@ -480,28 +578,28 @@ var _ = Describe("LoadBalancer", func() { delete(svc.Annotations, externalIPAnnotation) name := loadBalancer.GetLoadBalancerName(context.Background(), "", svc) - mockClient.EXPECT().GetLoadBalancer(gomock.Any(), projectID, gomock.Any()).Return(&loadbalancer.LoadBalancer{ + mockClient.EXPECT().GetLoadBalancer(gomock.Any(), gomock.Any()).Return(&loadbalancer.LoadBalancer{ Options: &loadbalancer.LoadBalancerOptions{ Observability: &loadbalancer.LoadbalancerOptionObservability{ Metrics: &loadbalancer.LoadbalancerOptionMetrics{ - CredentialsRef: ptr.To(sampleCredentialsRef), - PushUrl: ptr.To("http://localhost"), + CredentialsRef: new(sampleCredentialsRef), + PushUrl: new("http://localhost"), }, }, - EphemeralAddress: ptr.To(true), + EphemeralAddress: new(true), }, - ExternalAddress: ptr.To("0.0.0.0 (ephemeral)"), - Listeners: &[]loadbalancer.Listener{}, + ExternalAddress: new("0.0.0.0 (ephemeral)"), + Listeners: []loadbalancer.Listener{}, }, nil) gomock.InOrder( - mockClient.EXPECT().UpdateLoadBalancer(gomock.Any(), projectID, name, gomock.All( + mockClient.EXPECT().UpdateLoadBalancer(gomock.Any(), name, gomock.All( hasNoObservabilityConfigured(), externalAddressNotSet(), ephemeralAddress(), )).MinTimes(1).Return(&loadbalancer.LoadBalancer{}, nil), - mockClient.EXPECT().DeleteCredentials(gomock.Any(), projectID, sampleCredentialsRef).MinTimes(1).Return(nil), - mockClient.EXPECT().ListCredentials(gomock.Any(), projectID).Return(&loadbalancer.ListCredentialsResponse{ - Credentials: &[]loadbalancer.CredentialsResponse{}, + mockClient.EXPECT().DeleteCredentials(gomock.Any(), sampleCredentialsRef).MinTimes(1).Return(nil), + mockClient.EXPECT().ListCredentials(gomock.Any()).Return(&loadbalancer.ListCredentialsResponse{ + Credentials: []loadbalancer.CredentialsResponse{}, }, nil), - mockClient.EXPECT().DeleteLoadBalancer(gomock.Any(), projectID, name).MinTimes(1).Return(nil), + mockClient.EXPECT().DeleteLoadBalancer(gomock.Any(), name).MinTimes(1).Return(nil), ) err := loadBalancer.EnsureLoadBalancerDeleted(context.Background(), clusterName, svc) @@ -511,7 +609,7 @@ var _ = Describe("LoadBalancer", func() { Describe("UpdateLoadBalancer", func() { It("should update targets", func() { - mockClient.EXPECT().UpdateTargetPool(gomock.Any(), projectID, gomock.Any(), "my-port", gomock.Any()).MinTimes(1) + mockClient.EXPECT().UpdateTargetPool(gomock.Any(), gomock.Any(), "my-port", gomock.Any()).MinTimes(1) svc := &corev1.Service{ ObjectMeta: metav1.ObjectMeta{ @@ -546,13 +644,13 @@ var _ = Describe("LoadBalancer", func() { It("should update credentials if they exist", func() { pushURL := "test-endpoint" - mockClient.EXPECT().UpdateCredentials(gomock.Any(), projectID, sampleCredentialsRef, gomock.Any()).MinTimes(1).Return(nil) + mockClient.EXPECT().UpdateCredentials(gomock.Any(), sampleCredentialsRef, gomock.Any()).MinTimes(1).Return(nil) credentialRef, err := lbInModeIgnoreAndObs.reconcileObservabilityCredentials(context.Background(), &loadbalancer.LoadBalancer{ - Name: ptr.To(sampleLBName), + Name: new(sampleLBName), Options: &loadbalancer.LoadBalancerOptions{ Observability: &loadbalancer.LoadbalancerOptionObservability{ Metrics: &loadbalancer.LoadbalancerOptionMetrics{ - CredentialsRef: ptr.To(sampleCredentialsRef), + CredentialsRef: new(sampleCredentialsRef), }, }, }, @@ -560,7 +658,7 @@ var _ = Describe("LoadBalancer", func() { Expect(err).NotTo(HaveOccurred()) Expect(*credentialRef).To(Equal(loadbalancer.LoadbalancerOptionObservability{ Metrics: &loadbalancer.LoadbalancerOptionMetrics{ - CredentialsRef: ptr.To(sampleCredentialsRef), + CredentialsRef: new(sampleCredentialsRef), PushUrl: &pushURL, }, })) @@ -568,13 +666,13 @@ var _ = Describe("LoadBalancer", func() { It("should try to update credentials if they exist", func() { errTest := errors.New("update credentials test error") - mockClient.EXPECT().UpdateCredentials(gomock.Any(), projectID, sampleCredentialsRef, gomock.Any()).MinTimes(1).Return(errTest) + mockClient.EXPECT().UpdateCredentials(gomock.Any(), sampleCredentialsRef, gomock.Any()).MinTimes(1).Return(errTest) credentialRef, err := lbInModeIgnoreAndObs.reconcileObservabilityCredentials(context.Background(), &loadbalancer.LoadBalancer{ - Name: ptr.To(sampleLBName), + Name: new(sampleLBName), Options: &loadbalancer.LoadBalancerOptions{ Observability: &loadbalancer.LoadbalancerOptionObservability{ Metrics: &loadbalancer.LoadbalancerOptionMetrics{ - CredentialsRef: ptr.To(sampleCredentialsRef), + CredentialsRef: new(sampleCredentialsRef), }, }, }, @@ -584,36 +682,36 @@ var _ = Describe("LoadBalancer", func() { }) It("should create credentials if they do not exist", func() { - mockClient.EXPECT().ListCredentials(gomock.Any(), projectID).Return(&loadbalancer.ListCredentialsResponse{ - Credentials: &[]loadbalancer.CredentialsResponse{}, + mockClient.EXPECT().ListCredentials(gomock.Any()).Return(&loadbalancer.ListCredentialsResponse{ + Credentials: []loadbalancer.CredentialsResponse{}, }, nil) - mockClient.EXPECT().CreateCredentials(gomock.Any(), projectID, gomock.Any()).MinTimes(1).Return(&loadbalancer.CreateCredentialsResponse{ + mockClient.EXPECT().CreateCredentials(gomock.Any(), gomock.Any()).MinTimes(1).Return(&loadbalancer.CreateCredentialsResponse{ Credential: &loadbalancer.CredentialsResponse{ - CredentialsRef: ptr.To(sampleCredentialsRef), - DisplayName: ptr.To(sampleLBName), - Username: ptr.To("test-username"), + CredentialsRef: new(sampleCredentialsRef), + DisplayName: new(sampleLBName), + Username: new("test-username"), }, }, nil) credentialRef, err := lbInModeIgnoreAndObs.reconcileObservabilityCredentials(context.Background(), &loadbalancer.LoadBalancer{ - Name: ptr.To(sampleLBName), + Name: new(sampleLBName), }, sampleLBName) Expect(err).NotTo(HaveOccurred()) Expect(*credentialRef).To(Equal(loadbalancer.LoadbalancerOptionObservability{ Metrics: &loadbalancer.LoadbalancerOptionMetrics{ - CredentialsRef: ptr.To(sampleCredentialsRef), - PushUrl: ptr.To("test-endpoint"), + CredentialsRef: new(sampleCredentialsRef), + PushUrl: new("test-endpoint"), }, })) }) It("should return error if creating new credentials fails", func() { - mockClient.EXPECT().ListCredentials(gomock.Any(), projectID).Return(&loadbalancer.ListCredentialsResponse{ - Credentials: &[]loadbalancer.CredentialsResponse{}, + mockClient.EXPECT().ListCredentials(gomock.Any()).Return(&loadbalancer.ListCredentialsResponse{ + Credentials: []loadbalancer.CredentialsResponse{}, }, nil) errTest := errors.New("delete credentials test error") - mockClient.EXPECT().CreateCredentials(gomock.Any(), projectID, gomock.Any()).MinTimes(1).Return(nil, errTest) + mockClient.EXPECT().CreateCredentials(gomock.Any(), gomock.Any()).MinTimes(1).Return(nil, errTest) credentialRef, err := lbInModeIgnoreAndObs.reconcileObservabilityCredentials(context.Background(), &loadbalancer.LoadBalancer{ - Name: ptr.To(sampleLBName), + Name: new(sampleLBName), }, sampleLBName) Expect(err).To(MatchError(errTest)) Expect(credentialRef).To(BeNil()) @@ -623,32 +721,32 @@ var _ = Describe("LoadBalancer", func() { Describe("cleanUpCredentials", func() { It("should delete matching and only matching observability credentials", func() { gomock.InOrder( - mockClient.EXPECT().ListCredentials(gomock.Any(), projectID).Return(&loadbalancer.ListCredentialsResponse{ - Credentials: &[]loadbalancer.CredentialsResponse{ + mockClient.EXPECT().ListCredentials(gomock.Any()).Return(&loadbalancer.ListCredentialsResponse{ + Credentials: []loadbalancer.CredentialsResponse{ { - CredentialsRef: ptr.To("matching-1"), - DisplayName: ptr.To("my-loadbalancer"), - Username: ptr.To("luke"), + CredentialsRef: new("matching-1"), + DisplayName: new("my-loadbalancer"), + Username: new("luke"), }, { - CredentialsRef: ptr.To("display-name-not-match"), - DisplayName: ptr.To("other-loadbalancer"), - Username: ptr.To("leia"), + CredentialsRef: new("display-name-not-match"), + DisplayName: new("other-loadbalancer"), + Username: new("leia"), }, { - CredentialsRef: ptr.To("matching-2"), - DisplayName: ptr.To("my-loadbalancer"), - Username: ptr.To("chewie"), + CredentialsRef: new("matching-2"), + DisplayName: new("my-loadbalancer"), + Username: new("chewie"), }, { - CredentialsRef: ptr.To("no-display-name"), + CredentialsRef: new("no-display-name"), DisplayName: nil, - Username: ptr.To("han"), + Username: new("han"), }, }, }, nil).MinTimes(1), - mockClient.EXPECT().DeleteCredentials(gomock.Any(), projectID, "matching-1").MinTimes(1), - mockClient.EXPECT().DeleteCredentials(gomock.Any(), projectID, "matching-2").MinTimes(1), + mockClient.EXPECT().DeleteCredentials(gomock.Any(), "matching-1").MinTimes(1), + mockClient.EXPECT().DeleteCredentials(gomock.Any(), "matching-2").MinTimes(1), ) Expect(lbInModeIgnoreAndObs.cleanUpCredentials(context.Background(), "my-loadbalancer")).To(Succeed()) }) @@ -661,13 +759,13 @@ var _ = DescribeTable("loadBalancerStatus", }, Entry("empty address", &loadbalancer.LoadBalancer{}, &corev1.Service{}, &corev1.LoadBalancerStatus{}), Entry("address present", - &loadbalancer.LoadBalancer{ExternalAddress: ptr.To("1.2.3.4")}, &corev1.Service{}, + &loadbalancer.LoadBalancer{ExternalAddress: new("1.2.3.4")}, &corev1.Service{}, &corev1.LoadBalancerStatus{Ingress: []corev1.LoadBalancerIngress{{IP: "1.2.3.4"}}}, ), Entry("IP mode proxy", - &loadbalancer.LoadBalancer{ExternalAddress: ptr.To("1.2.3.4")}, + &loadbalancer.LoadBalancer{ExternalAddress: new("1.2.3.4")}, &corev1.Service{ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{ipModeProxyAnnotation: "true"}}}, - &corev1.LoadBalancerStatus{Ingress: []corev1.LoadBalancerIngress{{IP: "1.2.3.4", IPMode: ptr.To(corev1.LoadBalancerIPModeProxy)}}}, + &corev1.LoadBalancerStatus{Ingress: []corev1.LoadBalancerIngress{{IP: "1.2.3.4", IPMode: new(corev1.LoadBalancerIPModeProxy)}}}, ), ) @@ -698,6 +796,14 @@ func versionMatcher(version string) gomock.Matcher { }) } +// statusNotSet ensures that the given UpdateLoadBalancerPayload does not set status. +func statusNotSet() gomock.Matcher { + return gomock.Cond(func(x any) bool { + lb := x.(*loadbalancer.UpdateLoadBalancerPayload) + return lb.Status == nil + }) +} + // hasNoObservabilityConfigured ensures that the given UpdateLoadBalancerPayload has no observability specified. func hasNoObservabilityConfigured() gomock.Matcher { return gomock.Cond(func(x any) bool { @@ -706,6 +812,33 @@ func hasNoObservabilityConfigured() gomock.Matcher { }) } +// hasNotEnabledDisableTargetSecurityGroupAssignment ensures that the given UpdateLoadBalancerPayload +// has not set DisableTargetSecurityGroupAssignment to true. +func hasNotEnabledDisableTargetSecurityGroupAssignment() gomock.Matcher { + return gomock.Cond(func(x any) bool { + lb := x.(*loadbalancer.UpdateLoadBalancerPayload) + return lb.DisableTargetSecurityGroupAssignment != nil && *lb.DisableTargetSecurityGroupAssignment != true + }) +} + +// hasEnabledDisableTargetSecurityGroupAssignment ensures that the given UpdateLoadBalancerPayload +// has set DisableTargetSecurityGroupAssignment to true. +func hasEnabledDisableTargetSecurityGroupAssignment() gomock.Matcher { + return gomock.Cond(func(x any) bool { + lb := x.(*loadbalancer.UpdateLoadBalancerPayload) + return lb.DisableTargetSecurityGroupAssignment != nil && *lb.DisableTargetSecurityGroupAssignment == true + }) +} + +// isCreatedWithEnabledDisableTargetSecurityGroupAssignment ensures that new lbs are always created +// with DisableTargetSecurityGroupAssignment set to true. +func isCreatedWithEnabledDisableTargetSecurityGroupAssignment() gomock.Matcher { + return gomock.Cond(func(x any) bool { + lb := x.(*loadbalancer.CreateLoadBalancerPayload) + return lb.DisableTargetSecurityGroupAssignment != nil && *lb.DisableTargetSecurityGroupAssignment == true + }) +} + // externalAddressSet ensures that the given UpdateLoadBalancerPayload has external address set to address. func externalAddressSet(address string) gomock.Matcher { return gomock.Cond(func(x any) bool { diff --git a/pkg/ccm/stackit.go b/pkg/ccm/stackit.go index 3e36f6d4..f3417d09 100644 --- a/pkg/ccm/stackit.go +++ b/pkg/ccm/stackit.go @@ -6,9 +6,9 @@ import ( "io" "os" + stackitclient "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/client" + stackitconfig "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/config" sdkconfig "github.com/stackitcloud/stackit-sdk-go/core/config" - "github.com/stackitcloud/stackit-sdk-go/services/iaas" - "github.com/stackitcloud/stackit-sdk-go/services/loadbalancer" "gopkg.in/yaml.v3" corev1 "k8s.io/api/core/v1" "k8s.io/client-go/kubernetes/scheme" @@ -18,7 +18,6 @@ import ( "k8s.io/klog/v2" "github.com/stackitcloud/cloud-provider-stackit/pkg/metrics" - "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit" ) const ( @@ -41,65 +40,52 @@ type CloudControllerManager struct { instances *Instances } -// Config is used to read and store information from the cloud configuration file -type Config struct { - ProjectID string `yaml:"projectId"` - NetworkID string `yaml:"networkId"` - ExtraLabels map[string]string `yaml:"extraLabels"` - Region string `yaml:"region"` - LoadBalancerAPI struct { - URL string `yaml:"url"` - } `yaml:"loadBalancerApi"` -} - func init() { cloudprovider.RegisterCloudProvider(ProviderName, func(config io.Reader) (cloudprovider.Interface, error) { - cfg, err := ReadConfig(config) + cfg, err := GetConfig(config) if err != nil { - klog.Warningf("failed to read config: %v", err) return nil, err } + + if cfg.Global.ProjectID == "" { + return nil, errors.New("projectId must be set") + } + if cfg.Global.Region == "" { + return nil, errors.New("region must be set") + } + + if cfg.LoadBalancer.NetworkID == "" { + return nil, errors.New("networkId must be set") + } + obs, err := BuildObservability() if err != nil { - klog.Warningf("failed to build metricsRemoteWrite: %v", err) return nil, err } cloud, err := NewCloudControllerManager(&cfg, obs) if err != nil { - klog.Warningf("failed to create STACKIT cloud provider: %v", err) + klog.Warningf("Failed to create STACKIT cloud provider: %v", err) } return cloud, err }) } -func ReadConfig(configReader io.Reader) (Config, error) { - if configReader == nil { - return Config{}, errors.New("cloud config is missing") - } - configBytes, err := io.ReadAll(configReader) - if err != nil { - return Config{}, err - } - config := Config{} - err = yaml.Unmarshal(configBytes, &config) +func GetConfig(reader io.Reader) (stackitconfig.CCMConfig, error) { + var cfg stackitconfig.CCMConfig + + content, err := io.ReadAll(reader) if err != nil { - return Config{}, err - } - if config.ProjectID == "" { - return Config{}, errors.New("projectId must be set") - } - if config.NetworkID == "" { - return Config{}, errors.New("networkId must be set") - } - if config.Region == "" { - return Config{}, errors.New("region must be set") + klog.ErrorS(err, "Failed to read config content") + return cfg, err } - if config.LoadBalancerAPI.URL == "" { - config.LoadBalancerAPI.URL = "https://load-balancer.api.eu01.stackit.cloud" + err = yaml.Unmarshal(content, &cfg) + if err != nil { + klog.ErrorS(err, "Failed to parse config as YAML") + return cfg, err } - return config, nil + return cfg, nil } func BuildObservability() (*MetricsRemoteWrite, error) { @@ -129,44 +115,48 @@ func BuildObservability() (*MetricsRemoteWrite, error) { return nil, fmt.Errorf("missing from env: %q", missingKeys) } -// NewCloudControllerManager creates a new instance of the stackit struct from a config struct -func NewCloudControllerManager(cfg *Config, obs *MetricsRemoteWrite) (*CloudControllerManager, error) { +// NewCloudControllerManager creates a new instance of the stackit struct from a stackitconfig struct +func NewCloudControllerManager(cfg *stackitconfig.CCMConfig, obs *MetricsRemoteWrite) (*CloudControllerManager, error) { lbOpts := []sdkconfig.ConfigurationOption{ - sdkconfig.WithEndpoint(cfg.LoadBalancerAPI.URL), - sdkconfig.WithHTTPClient(metrics.NewInstrumentedHTTPClient()), + sdkconfig.WithHTTPClient(metrics.NewHTTPClient("cloud-controller-manager")), + } + + if cfg.Global.APIEndpoints.LoadBalancerAPI != "" { + lbOpts = append(lbOpts, sdkconfig.WithEndpoint(cfg.Global.APIEndpoints.LoadBalancerAPI)) } // The token is only provided by the 'gardener-extension-provider-stackit' in case of emergency access. // In those cases, the [cfg.LoadBalancerAPI.URL] will also be different (direct API URL instead of the API Gateway) lbEmergencyAPIToken := os.Getenv(stackitLoadBalancerEmergencyAPIToken) if lbEmergencyAPIToken != "" { - klog.Warningf("using emergency token for loadbalancer api on host: %s", cfg.LoadBalancerAPI.URL) + klog.Warningf("Using emergency token for loadbalancer api on host: %s", cfg.Global.APIEndpoints.LoadBalancerAPI) lbOpts = append(lbOpts, sdkconfig.WithToken(lbEmergencyAPIToken)) } - innerClient, err := loadbalancer.NewAPIClient(lbOpts...) + loadbalancingClient, err := stackitclient.New(cfg.Global.Region, cfg.Global.ProjectID).LoadBalancing(lbOpts) if err != nil { - return nil, err + return nil, fmt.Errorf("failed to create lb client: %v", err) } - client, err := stackit.NewLoadbalancerClient(innerClient, cfg.Region) - if err != nil { - return nil, err + + iaasOpts := []sdkconfig.ConfigurationOption{ + sdkconfig.WithHTTPClient(metrics.NewHTTPClient("cloud-controller-manager")), } - iaasInnerClient, err := iaas.NewAPIClient() - if err != nil { - return nil, fmt.Errorf("failed to create IaaS client: %v", err) + if cfg.Global.APIEndpoints.IaasAPI != "" { + iaasOpts = append(iaasOpts, sdkconfig.WithEndpoint(cfg.Global.APIEndpoints.IaasAPI)) } - nodeClient, err := stackit.NewNodeClient(iaasInnerClient) + + iaasClient, err := stackitclient.New(cfg.Global.Region, cfg.Global.ProjectID).IaaS(iaasOpts) if err != nil { - return nil, fmt.Errorf("failed to create Node client: %v", err) + return nil, fmt.Errorf("failed to create IaaS client: %v", err) } - instances, err := NewInstance(nodeClient, cfg.ProjectID, cfg.Region) + + instances, err := NewInstance(iaasClient, cfg.Global.Region, cfg.Instance) if err != nil { return nil, err } - lb, err := NewLoadBalancer(client, cfg.ProjectID, cfg.NetworkID, cfg.ExtraLabels, obs) + lb, err := NewLoadBalancer(loadbalancingClient, cfg.LoadBalancer, obs) if err != nil { return nil, err } diff --git a/pkg/ccm/stackit_test.go b/pkg/ccm/stackit_test.go index 8c45ccb2..7c742539 100644 --- a/pkg/ccm/stackit_test.go +++ b/pkg/ccm/stackit_test.go @@ -1,12 +1,140 @@ -package ccm_test +package ccm import ( + "bytes" + "strings" + . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" + stackitconfig "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/config" ) -var _ = Describe("DummyTest", func() { - Describe("Should Pass", func() { - Expect(true).To(BeTrue()) +var _ = Describe("GetConfig", func() { + It("should parse valid YAML configuration", func() { + validYAML := ` +global: + projectId: "test-project" + region: "eu01" + apiEndpoints: + loadBalancerApi: "https://load-balancer.api.eu01.stackit.cloud" +metadata: + searchOrder: "metadataService,configDrive" +loadBalancer: + networkId: "test-network" +` + + config, err := GetConfig(strings.NewReader(validYAML)) + Expect(err).NotTo(HaveOccurred()) + Expect(config.Global.ProjectID).To(Equal("test-project")) + Expect(config.Global.Region).To(Equal("eu01")) + Expect(config.Global.APIEndpoints.LoadBalancerAPI).To(Equal("https://load-balancer.api.eu01.stackit.cloud")) + Expect(config.Metadata.SearchOrder).To(Equal("metadataService,configDrive")) + Expect(config.LoadBalancer.NetworkID).To(Equal("test-network")) + }) + + It("should handle missing optional fields", func() { + minimalYAML := ` +global: + projectId: "my-project" + region: "eu01" +loadBalancer: + networkId: "my-network" +` + + config, err := GetConfig(strings.NewReader(minimalYAML)) + Expect(err).NotTo(HaveOccurred()) + Expect(config.Global.ProjectID).To(Equal("my-project")) + Expect(config.Global.Region).To(Equal("eu01")) + Expect(config.Global.APIEndpoints.LoadBalancerAPI).To(BeEmpty()) + Expect(config.LoadBalancer.NetworkID).To(Equal("my-network")) + }) + + It("should handle configuration with extra labels", func() { + yamlWithLabels := ` +global: + projectId: "test-project" + region: "eu01" +loadBalancer: + networkId: "test-network" + extraLabels: + environment: "production" + team: "platform" +` + + config, err := GetConfig(strings.NewReader(yamlWithLabels)) + Expect(err).NotTo(HaveOccurred()) + Expect(config.LoadBalancer.ExtraLabels).To(HaveKeyWithValue("environment", "production")) + Expect(config.LoadBalancer.ExtraLabels).To(HaveKeyWithValue("team", "platform")) + }) + + It("should return error for malformed YAML", func() { + invalidYAML := ` +global: + projectId: "test-project" + region: "eu01" + invalid yaml syntax here [[[ +` + + _, err := GetConfig(strings.NewReader(invalidYAML)) + Expect(err).To(HaveOccurred()) + }) + + It("should handle empty YAML gracefully", func() { + emptyYAML := `` + + config, err := GetConfig(strings.NewReader(emptyYAML)) + Expect(err).NotTo(HaveOccurred()) + Expect(config).To(Equal(stackitconfig.CCMConfig{})) + }) + + It("should return error for invalid YAML structure", func() { + invalidStructure := ` +this is not valid yaml structure +- random: content +` + + _, err := GetConfig(strings.NewReader(invalidStructure)) + Expect(err).To(HaveOccurred()) + }) + + It("should handle YAML with comments", func() { + yamlWithComments := ` +# This is a comment +global: + projectId: "test-project" # inline comment + region: "eu01" +# Another comment +loadBalancer: + networkId: "test-network" +` + + config, err := GetConfig(strings.NewReader(yamlWithComments)) + Expect(err).NotTo(HaveOccurred()) + Expect(config.Global.ProjectID).To(Equal("test-project")) + Expect(config.LoadBalancer.NetworkID).To(Equal("test-network")) + }) + + It("should handle YAML with different string quote styles", func() { + mixedQuotesYAML := ` +global: + projectId: "test-project" + region: 'eu01' +loadBalancer: + networkId: test-network +` + + config, err := GetConfig(strings.NewReader(mixedQuotesYAML)) + Expect(err).NotTo(HaveOccurred()) + Expect(config.Global.ProjectID).To(Equal("test-project")) + Expect(config.Global.Region).To(Equal("eu01")) + Expect(config.LoadBalancer.NetworkID).To(Equal("test-network")) + }) + + It("should handle empty reader gracefully", func() { + emptyReader := bytes.NewReader([]byte{}) + + config, err := GetConfig(emptyReader) + Expect(err).NotTo(HaveOccurred()) + Expect(config).To(Equal(stackitconfig.CCMConfig{})) }) }) diff --git a/pkg/cmp/cmp_test.go b/pkg/cmp/cmp_test.go index a0f744ff..dc93a035 100644 --- a/pkg/cmp/cmp_test.go +++ b/pkg/cmp/cmp_test.go @@ -3,8 +3,6 @@ package cmp import ( . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" - - "github.com/stackitcloud/stackit-sdk-go/core/utils" ) type sliceEqualUnorderedTest struct { @@ -120,17 +118,17 @@ var _ = DescribeTable("PtrValEqual", Entry("nil vs value", &ptrValEqualTest{ want: false, a: nil, - b: utils.Ptr(""), + b: new(""), }), Entry("equal values", &ptrValEqualTest{ want: true, - a: utils.Ptr("c"), - b: utils.Ptr("c"), + a: new("c"), + b: new("c"), }), Entry("unequal values", &ptrValEqualTest{ want: false, - a: utils.Ptr("c"), - b: utils.Ptr("d"), + a: new("c"), + b: new("d"), }), ) @@ -153,17 +151,17 @@ var _ = DescribeTable("PtrValEqualFn", Entry("nil vs value", &ptrValEqualFnTest{ want: false, a: nil, - b: utils.Ptr(""), + b: new(""), }), Entry("equal values", &ptrValEqualFnTest{ want: true, - a: utils.Ptr("c"), - b: utils.Ptr("c"), + a: new("c"), + b: new("c"), }), Entry("unequal values", &ptrValEqualFnTest{ want: false, - a: utils.Ptr("c"), - b: utils.Ptr("d"), + a: new("c"), + b: new("d"), }), ) @@ -182,15 +180,15 @@ var _ = DescribeTable("LenSlicePtr", }), Entry("nil slice", &lenSlicePtrTest{ want: 0, - in: utils.Ptr[[]any](nil), + in: new([]any(nil)), }), Entry("empty slice", &lenSlicePtrTest{ want: 0, - in: utils.Ptr[[]any]([]any{}), + in: new([]any{}), }), Entry("length 1 slice", &lenSlicePtrTest{ want: 1, - in: utils.Ptr[[]any]([]any{nil}), + in: new([]any{nil}), }), ) @@ -205,6 +203,6 @@ var _ = Describe("UnpackPtr", func() { }) It("should", func() { - Expect(UnpackPtr(utils.Ptr("hello"))).To(Equal("hello")) + Expect(UnpackPtr(new("hello"))).To(Equal("hello")) }) }) diff --git a/pkg/csi/blockstorage/controllerserver.go b/pkg/csi/blockstorage/controllerserver.go index d9af791d..84921b0f 100644 --- a/pkg/csi/blockstorage/controllerserver.go +++ b/pkg/csi/blockstorage/controllerserver.go @@ -26,23 +26,22 @@ import ( "github.com/container-storage-interface/spec/lib/go/csi" "github.com/go-viper/mapstructure/v2" "github.com/kubernetes-csi/csi-lib-utils/protosanitizer" + sharedcsi "github.com/stackitcloud/cloud-provider-stackit/pkg/csi" "github.com/stackitcloud/cloud-provider-stackit/pkg/csi/util" - "github.com/stackitcloud/stackit-sdk-go/services/iaas" + stackitclient "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/client" + "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/stackiterrors" + iaas "github.com/stackitcloud/stackit-sdk-go/services/iaas/v2api" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" "google.golang.org/protobuf/types/known/timestamppb" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/klog/v2" "k8s.io/utils/ptr" - - sharedcsi "github.com/stackitcloud/cloud-provider-stackit/pkg/csi" - "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit" - stackiterrors "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/errors" ) type controllerServer struct { Driver *Driver - Instance stackit.IaasClient + Instance stackitclient.IaaSClient csi.UnimplementedControllerServer } @@ -59,7 +58,9 @@ type stackitParameterConfig struct { } const ( - blockStorageCSIClusterIDKey = "block-storage.csi.stackit.cloud/cluster" //nolint:unused // for later use + blockStorageCSIClusterIDKey = "block-storage.csi.stackit.cloud/cluster" + snapshotTypeSnapshot = "snapshot" + snapshotTypeBackup = "backup" ) func (cs *controllerServer) validateVolumeCapabilities(req []*csi.VolumeCapability) error { @@ -77,6 +78,10 @@ func (cs *controllerServer) CreateVolume(ctx context.Context, req *csi.CreateVol cloud := cs.Instance + if cs.Driver.blockVolumeCreation { + return nil, status.Errorf(codes.Unimplemented, "The %s driver is update/read-only mode please migrate to the new driver", legacyDriverName) + } + // Volume Name volName := req.GetName() volCapabilities := req.GetVolumeCapabilities() @@ -112,7 +117,11 @@ func (cs *controllerServer) CreateVolume(ctx context.Context, req *csi.CreateVol accessibleTopologyReq := req.GetAccessibilityRequirements() // Check from topology if accessibleTopologyReq != nil { - volAvailability = sharedcsi.GetAZFromTopology(topologyKey, accessibleTopologyReq) + if cs.Driver.legacyDriver { + volAvailability = sharedcsi.GetAZFromTopology(legacyTopologyKey, accessibleTopologyReq) + } else { + volAvailability = sharedcsi.GetAZFromTopology(topologyKey, accessibleTopologyReq) + } } } @@ -123,18 +132,24 @@ func (cs *controllerServer) CreateVolume(ctx context.Context, req *csi.CreateVol return nil, status.Errorf(codes.Internal, "Failed to get volumes: %v", err) } + if len(vols) > 1 { + klog.V(3).Infof("found multiple existing volumes with selected name (%s) during create", volName) + return nil, status.Error(codes.Internal, "Multiple volumes reported by Cinder with same name") + } + if len(vols) == 1 { - if volSizeGB != *vols[0].Size { + volume := vols[0] + if volSizeGB != volume.GetSize() { return nil, status.Error(codes.AlreadyExists, "Volume Already exists with same name and different capacity") } - if *vols[0].Status != stackit.VolumeAvailableStatus { - return nil, status.Error(codes.Internal, fmt.Sprintf("Volume %s is not in available state", *vols[0].Id)) + if volume.GetStatus() != stackitclient.VolumeAvailableStatus { + if cs.Driver.deleteVolumesInErrorState { + cs.deleteVolumeInError(ctx, &volume) + } + return nil, status.Errorf(codes.Internal, "Volume %s is not in available state", volume.GetId()) } - klog.V(4).Infof("Volume %s already exists in Availability Zone: %s of size %d GiB", *vols[0].Id, *vols[0].AvailabilityZone, *vols[0].Size) - return getCreateVolumeResponse(&vols[0]), nil - } else if len(vols) > 1 { - klog.V(3).Infof("found multiple existing volumes with selected name (%s) during create", volName) - return nil, status.Error(codes.Internal, "Multiple volumes reported by Cinder with same name") + klog.V(4).Infof("Volume %s already exists in Availability Zone: %s of size %d GiB", volume.GetId(), volume.GetAvailabilityZone(), volume.GetSize()) + return cs.getCreateVolumeResponse(&volume), nil } // Volume Create @@ -151,32 +166,27 @@ func (cs *controllerServer) CreateVolume(ctx context.Context, req *csi.CreateVol var sourceVolID string var sourceBackupID string var sourceSnapshotID string - var volumeSourceType stackit.VolumeSourceTypes + var volumeSourceType stackitclient.VolumeSourceTypes if content != nil && content.GetSnapshot() != nil { // Backups and Snapshots are the same for Kubernetes sourceSnapshotID = content.GetSnapshot().GetSnapshotId() sourceBackupID = content.GetSnapshot().GetSnapshotId() // By default, we try to clone volumes from snapshots - volumeSourceType = stackit.SnapshotSource + volumeSourceType = stackitclient.SnapshotSource - snap, err := cloud.GetSnapshotByID(ctx, sourceSnapshotID) + snap, err := cloud.GetSnapshot(ctx, sourceSnapshotID) if stackiterrors.IgnoreNotFound(err) != nil { return nil, status.Errorf(codes.Internal, "Failed to retrieve the source snapshot %s: %v", sourceSnapshotID, err) } // If the snapshot exists but is not yet available, fail. - if err == nil && *snap.Status != stackit.SnapshotReadyStatus { + if err == nil && *snap.Status != stackitclient.SnapshotReadyStatus { return nil, status.Errorf(codes.Unavailable, "VolumeContentSource Snapshot %s is not yet available. status: %s", sourceSnapshotID, *snap.Status) } // Only continue checking if the Snapshot is found if !stackiterrors.IsNotFound(err) { - // TODO: Remove cloud.GetVolume() once IaaS adds the AZ field in the response of GetSnapshotByID() - snapshotVolSrc, err := cloud.GetVolume(ctx, snap.GetVolumeId()) - if err != nil { - return nil, status.Errorf(codes.Internal, "Failed to retrieve the source volume of snapshot %s: %v", sourceSnapshotID, err) - } - if *snapshotVolSrc.AvailabilityZone != volAvailability { - return nil, status.Errorf(codes.ResourceExhausted, "Volume must be in the same availability zone as source Snapshot. Got %s Required: %s", volAvailability, *snapshotVolSrc.AvailabilityZone) + if snap.GetAvailabilityZone() != volAvailability { + return nil, status.Errorf(codes.ResourceExhausted, "Volume must be in the same availability zone as source Snapshot. Got %s Required: %s", volAvailability, snap.GetAvailabilityZone()) } } @@ -184,17 +194,17 @@ func (cs *controllerServer) CreateVolume(ctx context.Context, req *csi.CreateVol // check if a Backup with the same ID exists if stackiterrors.IsNotFound(err) { var back *iaas.Backup - back, err = cloud.GetBackupByID(ctx, sourceBackupID) + back, err = cloud.GetBackup(ctx, sourceBackupID) if err != nil { // If there is an error getting the backup as well, fail. return nil, status.Errorf(codes.NotFound, "VolumeContentSource Snapshot or Backup with ID %s not found", sourceBackupID) } - if *back.Status != stackit.SnapshotReadyStatus { + if *back.Status != stackitclient.SnapshotReadyStatus { // If the backup exists but is not yet available, fail. return nil, status.Errorf(codes.Unavailable, "VolumeContentSource Backup %s is not yet available. status: %s", sourceBackupID, *back.Status) } // If an available backup is found, create the volume from the backup. Implies that a Snapshot was not found. - volumeSourceType = stackit.BackupSource + volumeSourceType = stackitclient.BackupSource } } @@ -208,24 +218,24 @@ func (cs *controllerServer) CreateVolume(ctx context.Context, req *csi.CreateVol } return nil, status.Errorf(codes.Internal, "Failed to retrieve the source volume %s: %v", sourceVolID, err) } - if volAvailability != *sourceVolume.AvailabilityZone { - return nil, status.Errorf(codes.ResourceExhausted, "Volume must be in the same availability zone as source Volume. Got %s Required: %s", volAvailability, *sourceVolume.AvailabilityZone) + if volAvailability != sourceVolume.AvailabilityZone { + return nil, status.Errorf(codes.ResourceExhausted, "Volume must be in the same availability zone as source Volume. Got %s Required: %s", volAvailability, sourceVolume.AvailabilityZone) } - volumeSourceType = stackit.VolumeSource + volumeSourceType = stackitclient.VolumeSource } opts := &iaas.CreateVolumePayload{ - Name: ptr.To(volName), + Name: new(volName), PerformanceClass: volParams.PerformanceClass, - Size: ptr.To(volSizeGB), - AvailabilityZone: ptr.To(volAvailability), + Size: new(volSizeGB), + AvailabilityZone: volAvailability, //TODO: IaaS API does not allow dots or slashes. Additionally we would like to actually use metadata/annotations - //Labels: ptr.To(util.ConvertMapStringToInterface(properties)), + //Labels: new(util.ConvertMapStringToInterface(properties)), } // Only set CreateVolumePayload.Source when actually creating volume from source/snapshot/backup if volumeSourceType != "" { - if volumeSourceType == stackit.SnapshotSource || volumeSourceType == stackit.VolumeSource { + if volumeSourceType == stackitclient.SnapshotSource || volumeSourceType == stackitclient.VolumeSource { // Changing the performance class while restoring from Snapshot or Volume is not supported opts.PerformanceClass = nil } @@ -233,15 +243,15 @@ func (cs *controllerServer) CreateVolume(ctx context.Context, req *csi.CreateVol volumeSourceID := determineSourceIDForSourceType(volumeSourceType, sourceSnapshotID, sourceVolID) klog.V(4).Infof("Creating volume from %s source", volumeSourceType) opts.Source = &iaas.VolumeSource{ - Id: ptr.To(volumeSourceID), - Type: ptr.To(string(volumeSourceType)), + Id: volumeSourceID, + Type: string(volumeSourceType), } } // The encryption config is already set for volumes created from snapshot or volume. We MUST never set it when // restoring from snapshot or volume. - // TODO: Unclear if BackupSource is the same as the above or is actually changeable. IaaS is testing. - if volParams.Encrypted != nil && (volumeSourceType == "" || volumeSourceType == stackit.BackupSource) { + // This is not true for volumeSourceType == Backup. The encryptionConfig must be set BUT the parameters can be different. + if volParams.Encrypted != nil && (volumeSourceType == "" || volumeSourceType == stackitclient.BackupSource) { encrypted, err := strconv.ParseBool(*volParams.Encrypted) if err != nil { return nil, status.Error(codes.InvalidArgument, "parameter encrypted must be of type boolean") @@ -253,28 +263,53 @@ func (cs *controllerServer) CreateVolume(ctx context.Context, req *csi.CreateVol } } - vol, err := cloud.CreateVolume(ctx, opts) + vol, err := cloud.CreateVolume(ctx, *opts) if err != nil { klog.Errorf("Failed to CreateVolume: %v", err) return nil, status.Errorf(codes.Internal, "CreateVolume failed with error %v", err) } - targetStatus := []string{stackit.VolumeAvailableStatus} + targetStatus := []string{stackitclient.VolumeAvailableStatus} // Recheck after: 0s (immediate), 20s, 45.6s, 78.36s, 120.31s - err = cloud.WaitVolumeTargetStatusWithCustomBackoff(ctx, *vol.Id, targetStatus, - &wait.Backoff{ + updatedVol, err := cloud.WaitVolumeTargetStatusWithCustomBackoff(ctx, vol.GetId(), targetStatus, + wait.Backoff{ Duration: 20 * time.Second, Steps: 5, Factor: 1.28, }) + if updatedVol != nil { + vol = updatedVol + } if err != nil { - klog.Errorf("Failed to WaitVolumeTargetStatus of volume %s: %v", *vol.Id, err) + klog.Errorf("Failed to WaitVolumeTargetStatus of volume %s: %v", vol.GetId(), err) return nil, status.Error(codes.Internal, fmt.Sprintf("CreateVolume Volume %s failed getting available in time: %v", *vol.Id, err)) } - klog.V(4).Infof("CreateVolume: Successfully created volume %s in Availability Zone: %s of size %d GiB", *vol.Id, *vol.AvailabilityZone, *vol.Size) + klog.V(4).Infof("CreateVolume: Successfully created volume %s in Availability Zone: %s of size %d GiB", *vol.Id, vol.AvailabilityZone, *vol.Size) - return getCreateVolumeResponse(vol), nil + return cs.getCreateVolumeResponse(vol), nil +} + +func (cs *controllerServer) deleteVolumeInError(ctx context.Context, vol *iaas.Volume) { + if vol == nil { + return + } + + // only check for "ERROR" status + // these are unknown issue worth a recreation of the volume + // other errors are defined and not solveable by a recreation + if vol.GetStatus() != stackitclient.VolumeErrorStatus { + return + } + + cloud := cs.Instance + klog.Warningf("Volume %s entered ERROR status, attempting cleanup deletion...", vol.GetId()) + if deleteErr := cloud.DeleteVolume(ctx, vol.GetId()); deleteErr != nil { + klog.Errorf("Failed to delete erroneous volume %s: %v", vol.GetId(), deleteErr) + return + } + + klog.Infof("Successfully deleted erroneous volume %s", vol.GetId()) } func setVolumeEncryptionParameters(opts *iaas.CreateVolumePayload, volParams *stackitParameterConfig) error { @@ -289,10 +324,10 @@ func setVolumeEncryptionParameters(opts *iaas.CreateVolumePayload, volParams *st } encryptionConfig := &iaas.VolumeEncryptionParameter{ - KekKeyId: volParams.KMSKeyID, - KekKeyVersion: ptr.To(int64(kmsKeyVersionInt)), - KekKeyringId: volParams.KMSKeyringID, - ServiceAccount: volParams.KMSServiceAccount, + KekKeyId: *volParams.KMSKeyID, + KekKeyVersion: int64(kmsKeyVersionInt), + KekKeyringId: *volParams.KMSKeyringID, + ServiceAccount: *volParams.KMSServiceAccount, } if volParams.KMSProjectID != nil { @@ -352,7 +387,7 @@ func (cs *controllerServer) ControllerPublishVolume(ctx context.Context, req *cs return nil, status.Error(codes.InvalidArgument, "[ControllerPublishVolume] Volume capability must be provided") } - _, err := cloud.GetVolume(ctx, volumeID) + vol, err := cloud.GetVolume(ctx, volumeID) if err != nil { if stackiterrors.IsNotFound(err) { return nil, status.Errorf(codes.NotFound, "[ControllerPublishVolume] Volume %s not found", volumeID) @@ -360,7 +395,7 @@ func (cs *controllerServer) ControllerPublishVolume(ctx context.Context, req *cs return nil, status.Errorf(codes.Internal, "[ControllerPublishVolume] get volume failed with error %v", err) } - _, err = cloud.GetInstanceByID(ctx, instanceID) + _, err = cloud.GetServer(ctx, instanceID) if err != nil { if stackiterrors.IsNotFound(err) { return nil, status.Errorf(codes.NotFound, "[ControllerPublishVolume] Instance %s not found", instanceID) @@ -368,8 +403,24 @@ func (cs *controllerServer) ControllerPublishVolume(ctx context.Context, req *cs return nil, status.Errorf(codes.Internal, "[ControllerPublishVolume] GetInstanceByID failed with error %v", err) } - _, err = cloud.AttachVolume(ctx, instanceID, volumeID) + // If Volume is already mounted to target instanceID, return OK + if vol.ServerId != nil && *vol.ServerId == instanceID { + return &csi.ControllerPublishVolumeResponse{}, nil + } + + if vol.GetStatus() != stackitclient.VolumeAvailableStatus { + return nil, status.Errorf(codes.Internal, "[ControllerPublishVolume] Volume %s is not in an READY state. Got:%s Want:%s", volumeID, vol.GetStatus(), stackitclient.VolumeAvailableStatus) + } + + payload := iaas.AddVolumeToServerPayload{ + DeleteOnTermination: new(false), + } + _, err = cloud.AttachVolume(ctx, instanceID, volumeID, payload) if err != nil { + // Trigger's an immediate `NodeGetInfo` RPC call when MutableCSINodeAllocatableCount is enabled + if stackiterrors.IsTooManyDevicesError(err) { + return nil, status.Errorf(codes.ResourceExhausted, "[ControllerPublishVolume] Node can't accept any more volumes %v. All PCIe lanes are exhausted!", err) + } klog.Errorf("Failed to AttachVolume: %v", err) return nil, status.Errorf(codes.Internal, "[ControllerPublishVolume] Attach Volume failed with error %v", err) } @@ -397,7 +448,7 @@ func (cs *controllerServer) ControllerUnpublishVolume(ctx context.Context, req * if volumeID == "" { return nil, status.Error(codes.InvalidArgument, "[ControllerUnpublishVolume] Volume ID must be provided") } - _, err := cloud.GetInstanceByID(ctx, instanceID) + _, err := cloud.GetServer(ctx, instanceID) if err != nil { if stackiterrors.IsNotFound(err) { klog.V(3).Infof("ControllerUnpublishVolume assuming volume %s is detached, because node %s does not exist", volumeID, instanceID) @@ -434,6 +485,10 @@ func (cs *controllerServer) ControllerUnpublishVolume(ctx context.Context, req * func (cs *controllerServer) ListVolumes(ctx context.Context, req *csi.ListVolumesRequest) (*csi.ListVolumesResponse, error) { klog.V(4).Infof("ListVolumes: called with %+#v request", req) + if req.GetStartingToken() != "" { + return nil, status.Error(codes.Aborted, "starting_token is not supported") + } + if req.MaxEntries < 0 { return nil, status.Errorf(codes.InvalidArgument, "[ListVolumes] Invalid max entries request %v, must not be negative ", req.MaxEntries) } @@ -468,11 +523,15 @@ func (cs *controllerServer) CreateSnapshot(ctx context.Context, req *csi.CreateS cloud := cs.Instance + if cs.Driver.blockVolumeCreation { + return nil, status.Errorf(codes.Unimplemented, "The %s driver is update/read-only mode please migrate to the new driver", legacyDriverName) + } + name := req.Name volumeID := req.GetSourceVolumeId() - snapshotType := req.Parameters[stackit.SnapshotType] + snapshotType := req.Parameters[stackitclient.SnapshotType] filters := map[string]string{"Name": name} - backupMaxDurationSecondsPerGB := stackit.BackupMaxDurationSecondsPerGBDefault + backupMaxDurationSecondsPerGB := stackitclient.BackupMaxDurationSecondsPerGBDefault // Current time, used for CreatedAt var ctime *timestamppb.Timestamp @@ -487,7 +546,7 @@ func (cs *controllerServer) CreateSnapshot(ctx context.Context, req *csi.CreateS // Set snapshot type to 'snapshot' by default if snapshotType == "" { - snapshotType = "snapshot" + snapshotType = snapshotTypeSnapshot } if name == "" { @@ -499,12 +558,12 @@ func (cs *controllerServer) CreateSnapshot(ctx context.Context, req *csi.CreateS } // Verify snapshot type has a valid value - if snapshotType != "snapshot" && snapshotType != "backup" { + if snapshotType != snapshotTypeSnapshot && snapshotType != snapshotTypeBackup { return nil, status.Error(codes.InvalidArgument, "Snapshot type must be 'backup', 'snapshot' or not defined") } // Prechecks in case of a backup - if snapshotType == "backup" { + if snapshotType == snapshotTypeBackup { // Get a list of backups with the provided name backups, err = cloud.ListBackups(ctx, filters) if err != nil { @@ -531,7 +590,7 @@ func (cs *controllerServer) CreateSnapshot(ctx context.Context, req *csi.CreateS } // Get the max duration to wait in seconds per GB of snapshot and fail if parsing fails - if item, ok := (req.Parameters)[stackit.BackupMaxDurationPerGB]; ok { + if item, ok := (req.Parameters)[stackitclient.BackupMaxDurationPerGB]; ok { backupMaxDurationSecondsPerGB, err = strconv.Atoi(item) if err != nil { klog.Errorf("Setting backup-max-duration-seconds-per-gb failed due to a parsing error: %v", err) @@ -542,7 +601,7 @@ func (cs *controllerServer) CreateSnapshot(ctx context.Context, req *csi.CreateS // Create the snapshot if the backup does not already exist and wait for it to be ready if !backupAlreadyExists { - snap, err = cs.createSnapshot(ctx, cloud, name, volumeID, req.Parameters) + snap, err = cs.createSnapshot(ctx, name, volumeID, req.Parameters) if err != nil { return nil, err } @@ -562,12 +621,12 @@ func (cs *controllerServer) CreateSnapshot(ctx context.Context, req *csi.CreateS } // Early exit - if snapshotType == "snapshot" { + if snapshotType == snapshotTypeSnapshot { return &csi.CreateSnapshotResponse{ Snapshot: &csi.Snapshot{ SnapshotId: *snap.Id, SizeBytes: *snap.Size * util.GIBIBYTE, - SourceVolumeId: *snap.VolumeId, + SourceVolumeId: snap.VolumeId, CreationTime: ctime, ReadyToUse: true, }, @@ -595,7 +654,7 @@ func (cs *controllerServer) CreateSnapshot(ctx context.Context, req *csi.CreateS } // Necessary to get all the backup information, including size. - backup, err = cloud.GetBackupByID(ctx, *backup.Id) + backup, err = cloud.GetBackup(ctx, *backup.Id) if err != nil { klog.Errorf("Failed to GetBackupByID after backup creation: %v", err) return nil, status.Error(codes.Internal, fmt.Sprintf("GetBackupByID failed with error %v", err)) @@ -618,12 +677,12 @@ func (cs *controllerServer) CreateSnapshot(ctx context.Context, req *csi.CreateS }, nil } -func (cs *controllerServer) createSnapshot(ctx context.Context, cloud stackit.IaasClient, name, volumeID string, parameters map[string]string) (*iaas.Snapshot, error) { //nolint:lll // looks weird when shortened +func (cs *controllerServer) createSnapshot(ctx context.Context, name, volumeID string, parameters map[string]string) (*iaas.Snapshot, error) { filters := map[string]string{} filters["Name"] = name // List existing snapshots with the same name - snapshots, _, err := cloud.ListSnapshots(ctx, filters) + snapshots, _, err := cs.Instance.ListSnapshots(ctx, filters) if err != nil { klog.Errorf("Failed to query for existing Snapshot during CreateSnapshot: %v", err) return nil, status.Error(codes.Internal, "Failed to get snapshots") @@ -639,7 +698,7 @@ func (cs *controllerServer) createSnapshot(ctx context.Context, cloud stackit.Ia // Verify a snapshot with the provided name doesn't already exist for this tenant if len(snapshots) == 1 { snap := &snapshots[0] - if *snap.VolumeId != volumeID { + if snap.VolumeId != volumeID { return nil, status.Error(codes.AlreadyExists, "Snapshot with given name already exists, with different source volume ID") } @@ -661,7 +720,15 @@ func (cs *controllerServer) createSnapshot(ctx context.Context, cloud stackit.Ia } } - snap, err := cloud.CreateSnapshot(ctx, name, volumeID, properties) + payload := &iaas.CreateSnapshotPayload{ + Name: new(name), + VolumeId: volumeID, + } + if len(properties) > 0 { + payload.Labels = stackitclient.LabelsFromTags(properties) + } + + snap, err := cs.Instance.CreateSnapshot(ctx, *payload) if err != nil { klog.Errorf("Failed to Create snapshot: %v", err) return nil, status.Errorf(codes.Internal, "CreateSnapshot failed with error %v", err) @@ -672,7 +739,7 @@ func (cs *controllerServer) createSnapshot(ctx context.Context, cloud stackit.Ia return snap, nil } -func (cs *controllerServer) createBackup(ctx context.Context, cloud stackit.IaasClient, name, volumeID string, snap *iaas.Snapshot, parameters map[string]string) (*iaas.Backup, error) { //nolint:lll // looks weird when shortened +func (cs *controllerServer) createBackup(ctx context.Context, cloud stackitclient.IaaSClient, name, volumeID string, snap *iaas.Snapshot, parameters map[string]string) (*iaas.Backup, error) { //nolint:lll // looks weird when shortened // Add cluster ID to the snapshot metadata // TODO: Use once IaaS has extended the label regex to allow for forward slashes and dots // properties := map[string]string{blockStorageCSIClusterIDKey: cs.Driver.clusterID} @@ -680,7 +747,7 @@ func (cs *controllerServer) createBackup(ctx context.Context, cloud stackit.Iaas // see https://github.com/kubernetes-csi/external-snapshotter/pull/375/ // Also, we don't want to tag every param, but we do honor the RecognizedCSISnapshotterParams - for _, mKey := range append(sharedcsi.RecognizedCSISnapshotterParams, stackit.SnapshotType) { + for _, mKey := range append(sharedcsi.RecognizedCSISnapshotterParams, stackitclient.SnapshotType) { if v, ok := parameters[mKey]; ok { properties[mKey] = v } @@ -708,7 +775,7 @@ func (cs *controllerServer) DeleteSnapshot(ctx context.Context, req *csi.DeleteS } // If volumeSnapshot object was linked to a cinder backup, delete the backup. - back, err := cloud.GetBackupByID(ctx, id) + back, err := cloud.GetBackup(ctx, id) if err == nil && back != nil { err = cloud.DeleteBackup(ctx, id) if err != nil { @@ -735,78 +802,99 @@ func (cs *controllerServer) ListSnapshots(ctx context.Context, req *csi.ListSnap snapshotID := req.GetSnapshotId() if snapshotID != "" { - snap, err := cloud.GetSnapshotByID(ctx, snapshotID) + snap, err := cloud.GetSnapshot(ctx, snapshotID) if err != nil { - if stackiterrors.IsNotFound(err) { - klog.V(3).Infof("Snapshot %s not found", snapshotID) - return &csi.ListSnapshotsResponse{}, nil + if !stackiterrors.IsNotFound(err) { + return nil, status.Errorf(codes.Internal, "Failed to GetSnapshot %s: %v", snapshotID, err) } - return nil, status.Errorf(codes.Internal, "Failed to GetSnapshot %s: %v", snapshotID, err) - } - ctime := timestamppb.New(*snap.CreatedAt) + backup, backupErr := cloud.GetBackup(ctx, snapshotID) + if backupErr != nil { + if stackiterrors.IsNotFound(backupErr) { + klog.V(3).Infof("Snapshot or backup %s not found", snapshotID) + return &csi.ListSnapshotsResponse{}, nil + } + return nil, status.Errorf(codes.Internal, "Failed to GetBackup %s: %v", snapshotID, backupErr) + } - entry := &csi.ListSnapshotsResponse_Entry{ - Snapshot: &csi.Snapshot{ - SizeBytes: *snap.Size * util.GIBIBYTE, - SnapshotId: *snap.Id, - SourceVolumeId: *snap.VolumeId, - CreationTime: ctime, - ReadyToUse: true, - }, + entry := backupSnapshotEntry(backup) + return &csi.ListSnapshotsResponse{ + Entries: []*csi.ListSnapshotsResponse_Entry{entry}, + }, entry.Snapshot.CreationTime.CheckValid() } - entries := []*csi.ListSnapshotsResponse_Entry{entry} return &csi.ListSnapshotsResponse{ - Entries: entries, - }, ctime.CheckValid() + Entries: []*csi.ListSnapshotsResponse_Entry{snapshotEntry(snap)}, + }, timestamppb.New(*snap.CreatedAt).CheckValid() } - filters := map[string]string{} - - var slist []iaas.Snapshot - var err error - var nextPageToken string - - // Add the filters + filters := map[string]string{ + "Status": stackitclient.SnapshotReadyStatus, + } if req.GetSourceVolumeId() != "" { filters["VolumeID"] = req.GetSourceVolumeId() - } else { - filters["Limit"] = strconv.Itoa(int(req.MaxEntries)) - filters["Marker"] = req.StartingToken } - // Only retrieve snapshots that are available - filters["Status"] = stackit.SnapshotReadyStatus - slist, nextPageToken, err = cloud.ListSnapshots(ctx, filters) + snapshotList, _, err := cloud.ListSnapshots(ctx, filters) if err != nil { klog.Errorf("Failed to ListSnapshots: %v", err) return nil, status.Errorf(codes.Internal, "ListSnapshots failed with error %v", err) } - sentries := make([]*csi.ListSnapshotsResponse_Entry, 0, len(slist)) - for _, v := range slist { - ctime := timestamppb.New(*v.CreatedAt) - if err := ctime.CheckValid(); err != nil { - klog.Errorf("Error to convert time to timestamp: %v", err) - } - sentry := csi.ListSnapshotsResponse_Entry{ - Snapshot: &csi.Snapshot{ - SizeBytes: *v.Size * util.GIBIBYTE, - SnapshotId: *v.Id, - SourceVolumeId: *v.VolumeId, - CreationTime: ctime, - ReadyToUse: true, - }, - } - sentries = append(sentries, &sentry) + backupList, err := cloud.ListBackups(ctx, filters) + if err != nil { + klog.Errorf("Failed to ListBackups: %v", err) + return nil, status.Errorf(codes.Internal, "ListBackups failed with error %v", err) + } + + entries := make([]*csi.ListSnapshotsResponse_Entry, 0, len(snapshotList)+len(backupList)) + for i := range snapshotList { + entries = append(entries, snapshotEntry(&snapshotList[i])) + } + for i := range backupList { + entries = append(entries, backupSnapshotEntry(&backupList[i])) } + return &csi.ListSnapshotsResponse{ - Entries: sentries, - NextToken: nextPageToken, + Entries: entries, + NextToken: "", }, nil } +func snapshotEntry(snapshot *iaas.Snapshot) *csi.ListSnapshotsResponse_Entry { + ctime := timestamppb.New(*snapshot.CreatedAt) + if err := ctime.CheckValid(); err != nil { + klog.Errorf("Error to convert time to timestamp: %v", err) + } + + return &csi.ListSnapshotsResponse_Entry{ + Snapshot: &csi.Snapshot{ + SizeBytes: *snapshot.Size * util.GIBIBYTE, + SnapshotId: *snapshot.Id, + SourceVolumeId: snapshot.VolumeId, + CreationTime: ctime, + ReadyToUse: true, + }, + } +} + +func backupSnapshotEntry(backup *iaas.Backup) *csi.ListSnapshotsResponse_Entry { + ctime := timestamppb.New(*backup.CreatedAt) + if err := ctime.CheckValid(); err != nil { + klog.Errorf("Error to convert time to timestamp: %v", err) + } + + return &csi.ListSnapshotsResponse_Entry{ + Snapshot: &csi.Snapshot{ + SizeBytes: *backup.Size * util.GIBIBYTE, + SnapshotId: *backup.Id, + SourceVolumeId: *backup.VolumeId, + CreationTime: ctime, + ReadyToUse: true, + }, + } +} + // ControllerGetCapabilities implements the default GRPC callout. // Default supports all capabilities func (cs *controllerServer) ControllerGetCapabilities(_ context.Context, _ *csi.ControllerGetCapabilitiesRequest) (*csi.ControllerGetCapabilitiesResponse, error) { @@ -936,13 +1024,13 @@ func (cs *controllerServer) ControllerExpandVolume(ctx context.Context, req *csi }, nil } - err = cloud.ExpandVolume(ctx, volumeID, *volume.Status, volSizeGB) + err = cloud.ExpandVolume(ctx, volumeID, *volume.Status, iaas.ResizeVolumePayload{Size: volSizeGB}) if err != nil { return nil, status.Errorf(codes.Internal, "Could not resize volume %q to size %v: %v", volumeID, volSizeGB, err) } // we need wait for the volume to be available or InUse, it might be error_extending in some scenario - targetStatus := []string{stackit.VolumeAvailableStatus, stackit.VolumeAttachedStatus} + targetStatus := []string{stackitclient.VolumeAvailableStatus, stackitclient.VolumeAttachedStatus} err = cloud.WaitVolumeTargetStatus(ctx, volumeID, targetStatus) if err != nil { klog.Errorf("Failed to WaitVolumeTargetStatus of volume %s: %v", volumeID, err) @@ -957,50 +1045,55 @@ func (cs *controllerServer) ControllerExpandVolume(ctx context.Context, req *csi }, nil } -func getCreateVolumeResponse(vol *iaas.Volume) *csi.CreateVolumeResponse { +func (cs *controllerServer) getCreateVolumeResponse(vol *iaas.Volume) *csi.CreateVolumeResponse { var volsrc *csi.VolumeContentSource - var volumeSourceType stackit.VolumeSourceTypes + var volumeSourceType stackitclient.VolumeSourceTypes volCnx := map[string]string{} if vol.Source != nil { - volumeSourceType = stackit.VolumeSourceTypes(*vol.Source.Type) + volumeSourceType = stackitclient.VolumeSourceTypes(vol.Source.Type) switch volumeSourceType { - case stackit.VolumeSource: + case stackitclient.VolumeSource: volCnx[ResizeRequired] = "true" volsrc = &csi.VolumeContentSource{ Type: &csi.VolumeContentSource_Volume{ Volume: &csi.VolumeContentSource_VolumeSource{ - VolumeId: *vol.Source.Id, + VolumeId: vol.Source.Id, }, }, } - case stackit.BackupSource: + case stackitclient.BackupSource: volCnx[ResizeRequired] = "true" volsrc = &csi.VolumeContentSource{ Type: &csi.VolumeContentSource_Snapshot{ Snapshot: &csi.VolumeContentSource_SnapshotSource{ - SnapshotId: *vol.Source.Id, + SnapshotId: vol.Source.Id, }, }, } - case stackit.SnapshotSource: + case stackitclient.SnapshotSource: volCnx[ResizeRequired] = "true" volsrc = &csi.VolumeContentSource{ Type: &csi.VolumeContentSource_Snapshot{ Snapshot: &csi.VolumeContentSource_SnapshotSource{ - SnapshotId: *vol.Source.Id, + SnapshotId: vol.Source.Id, }, }, } } } + topoKey := topologyKey + if cs.Driver.legacyDriver { + topoKey = legacyTopologyKey + } + accessibleTopology := []*csi.Topology{ { - Segments: map[string]string{topologyKey: ptr.Deref(vol.AvailabilityZone, "")}, + Segments: map[string]string{topoKey: vol.AvailabilityZone}, }, } @@ -1017,14 +1110,14 @@ func getCreateVolumeResponse(vol *iaas.Volume) *csi.CreateVolumeResponse { return resp } -// determineSourceIDForSourceType returns the correct sourceID for the given stackit.VolumeSourceTypes -func determineSourceIDForSourceType(srcType stackit.VolumeSourceTypes, sourceSnapshotID, sourceVolID string) string { +// determineSourceIDForSourceType returns the correct sourceID for the given stackitclient.VolumeSourceTypes +func determineSourceIDForSourceType(srcType stackitclient.VolumeSourceTypes, sourceSnapshotID, sourceVolID string) string { switch srcType { - case stackit.BackupSource: + case stackitclient.BackupSource: return sourceSnapshotID - case stackit.SnapshotSource: + case stackitclient.SnapshotSource: return sourceSnapshotID - case stackit.VolumeSource: + case stackitclient.VolumeSource: return sourceVolID default: return "" diff --git a/pkg/csi/blockstorage/controllerserver_test.go b/pkg/csi/blockstorage/controllerserver_test.go index 6fcad907..b6e10039 100644 --- a/pkg/csi/blockstorage/controllerserver_test.go +++ b/pkg/csi/blockstorage/controllerserver_test.go @@ -10,25 +10,25 @@ import ( "github.com/container-storage-interface/spec/lib/go/csi" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" + sharedcsi "github.com/stackitcloud/cloud-provider-stackit/pkg/csi" "github.com/stackitcloud/cloud-provider-stackit/pkg/csi/util" + stackitclient "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/client" + stackitclientmock "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/client/mock" "github.com/stackitcloud/stackit-sdk-go/core/oapierror" - "github.com/stackitcloud/stackit-sdk-go/services/iaas" + iaas "github.com/stackitcloud/stackit-sdk-go/services/iaas/v2api" "go.uber.org/mock/gomock" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" "google.golang.org/protobuf/types/known/timestamppb" - "k8s.io/utils/ptr" - - "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit" ) var _ = Describe("ControllerServer test", Ordered, func() { var ( fakeCs *controllerServer - iaasClient *stackit.MockIaasClient + iaasClient *stackitclientmock.MockIaaSClient FakeEndpoint = "tcp://127.0.0.1:10000" FakeCluster = "cluster" - expandTargetStatus = []string{stackit.VolumeAvailableStatus, stackit.VolumeAttachedStatus} + expandTargetStatus = []string{stackitclient.VolumeAvailableStatus, stackitclient.VolumeAttachedStatus} stdCapRange = &csi.CapacityRange{ RequiredBytes: util.GIBIBYTE * 20, } @@ -52,7 +52,7 @@ var _ = Describe("ControllerServer test", Ordered, func() { d := NewDriver(&DriverOpts{Endpoint: FakeEndpoint, ClusterID: FakeCluster}) mockCtrl := gomock.NewController(GinkgoT()) - iaasClient = stackit.NewMockIaasClient(mockCtrl) + iaasClient = stackitclientmock.NewMockIaaSClient(mockCtrl) fakeCs = NewControllerServer(d, iaasClient) }) @@ -67,13 +67,15 @@ var _ = Describe("ControllerServer test", Ordered, func() { iaasClient.EXPECT().GetVolumesByName(gomock.Any(), "new volume").Return([]iaas.Volume{}, nil) - iaasClient.EXPECT().CreateVolume(gomock.Any(), gomock.Any()).Return(&iaas.Volume{ - Id: ptr.To("volume-id"), - Name: ptr.To("new volume"), - AvailabilityZone: ptr.To("eu01"), - Size: ptr.To(int64(20)), - }, nil) - iaasClient.EXPECT().WaitVolumeTargetStatusWithCustomBackoff(gomock.Any(), "volume-id", gomock.Any(), gomock.Any()).Return(nil) + vol := &iaas.Volume{ + Id: new("volume-id"), + Name: new("new volume"), + AvailabilityZone: "eu01", + Size: new(int64(20)), + } + + iaasClient.EXPECT().CreateVolume(gomock.Any(), gomock.Any()).Return(vol, nil) + iaasClient.EXPECT().WaitVolumeTargetStatusWithCustomBackoff(gomock.Any(), vol.GetId(), gomock.Any(), gomock.Any()).Return(vol, nil) resp, err := fakeCs.CreateVolume(context.Background(), req) Expect(err).ToNot(HaveOccurred()) @@ -122,13 +124,15 @@ var _ = Describe("ControllerServer test", Ordered, func() { iaasClient.EXPECT().GetVolumesByName(gomock.Any(), "volume name").Return([]iaas.Volume{}, nil) - iaasClient.EXPECT().CreateVolume(gomock.Any(), gomock.Any()).Return(&iaas.Volume{ - Id: ptr.To("volume-id"), - Name: ptr.To("volume name"), - AvailabilityZone: ptr.To("zone-from-parameters"), - Size: ptr.To(int64(20)), - }, nil) - iaasClient.EXPECT().WaitVolumeTargetStatusWithCustomBackoff(gomock.Any(), "volume-id", gomock.Any(), gomock.Any()).Return(nil) + vol := &iaas.Volume{ + Id: new("volume-id"), + Name: new("volume name"), + AvailabilityZone: "zone-from-parameters", + Size: new(int64(20)), + } + + iaasClient.EXPECT().CreateVolume(gomock.Any(), gomock.Any()).Return(vol, nil) + iaasClient.EXPECT().WaitVolumeTargetStatusWithCustomBackoff(gomock.Any(), vol.GetId(), gomock.Any(), gomock.Any()).Return(vol, nil) _, err := fakeCs.CreateVolume(context.Background(), req) Expect(err).ToNot(HaveOccurred()) @@ -150,13 +154,15 @@ var _ = Describe("ControllerServer test", Ordered, func() { iaasClient.EXPECT().GetVolumesByName(gomock.Any(), "volume name").Return([]iaas.Volume{}, nil) - iaasClient.EXPECT().CreateVolume(gomock.Any(), gomock.Any()).Return(&iaas.Volume{ - Id: ptr.To("volume-id"), - Name: ptr.To("volume name"), - AvailabilityZone: ptr.To("zone-from-accessibility-reqs"), - Size: ptr.To(int64(20)), - }, nil) - iaasClient.EXPECT().WaitVolumeTargetStatusWithCustomBackoff(gomock.Any(), "volume-id", gomock.Any(), gomock.Any()).Return(nil) + vol := &iaas.Volume{ + Id: new("volume-id"), + Name: new("volume name"), + AvailabilityZone: "zone-from-accessibility-reqs", + Size: new(int64(20)), + } + + iaasClient.EXPECT().CreateVolume(gomock.Any(), gomock.Any()).Return(vol, nil) + iaasClient.EXPECT().WaitVolumeTargetStatusWithCustomBackoff(gomock.Any(), vol.GetId(), gomock.Any(), gomock.Any()).Return(vol, nil) _, err := fakeCs.CreateVolume(context.Background(), req) Expect(err).ToNot(HaveOccurred()) @@ -186,11 +192,11 @@ var _ = Describe("ControllerServer test", Ordered, func() { iaasClient.EXPECT().GetVolumesByName(gomock.Any(), "new volume").Return([]iaas.Volume{ { - Id: ptr.To("existing-available-volume-id"), - Name: ptr.To("new volume"), - Size: ptr.To(int64(20)), - Status: ptr.To(stackit.VolumeAvailableStatus), - AvailabilityZone: ptr.To("eu01"), + Id: new("existing-available-volume-id"), + Name: new("new volume"), + Size: new(int64(20)), + Status: new(stackitclient.VolumeAvailableStatus), + AvailabilityZone: "eu01", }, }, nil) @@ -210,11 +216,11 @@ var _ = Describe("ControllerServer test", Ordered, func() { iaasClient.EXPECT().GetVolumesByName(gomock.Any(), "new volume").Return([]iaas.Volume{ { - Id: ptr.To("existing-available-volume-id"), - Name: ptr.To("new volume"), - Size: ptr.To(int64(30)), - Status: ptr.To(stackit.VolumeAvailableStatus), - AvailabilityZone: ptr.To("eu01"), + Id: new("existing-available-volume-id"), + Name: new("new volume"), + Size: new(int64(30)), + Status: new(stackitclient.VolumeAvailableStatus), + AvailabilityZone: "eu01", }, }, nil) @@ -232,13 +238,38 @@ var _ = Describe("ControllerServer test", Ordered, func() { iaasClient.EXPECT().GetVolumesByName(gomock.Any(), "new volume").Return([]iaas.Volume{ { - Id: ptr.To("existing-available-volume-id"), - Name: ptr.To("new volume"), - Size: ptr.To(int64(20)), - Status: ptr.To(stackit.VolumeAttachedStatus), - AvailabilityZone: ptr.To("eu01"), + Id: new("existing-available-volume-id"), + Name: new("new volume"), + Size: new(int64(20)), + Status: new(stackitclient.VolumeAttachedStatus), + AvailabilityZone: "eu01", + }, + }, nil) + + _, err := fakeCs.CreateVolume(context.Background(), req) + Expect(err).To(HaveOccurred()) + Expect(status.Code(err)).To(Equal(codes.Internal)) + Expect(err.Error()).To(ContainSubstring("is not in available state")) + }) + + It("should delete an existing volume in error state when cleanup is enabled", func() { + req := &csi.CreateVolumeRequest{ + Name: "new volume", + VolumeCapabilities: stdVolCaps, + CapacityRange: stdCapRange, + } + fakeCs.Driver.deleteVolumesInErrorState = true + + iaasClient.EXPECT().GetVolumesByName(gomock.Any(), "new volume").Return([]iaas.Volume{ + { + Id: new("existing-error-volume-id"), + Name: new("new volume"), + Size: new(int64(20)), + Status: new(stackitclient.VolumeErrorStatus), + AvailabilityZone: "eu01", }, }, nil) + iaasClient.EXPECT().DeleteVolume(gomock.Any(), "existing-error-volume-id").Return(nil) _, err := fakeCs.CreateVolume(context.Background(), req) Expect(err).To(HaveOccurred()) @@ -255,10 +286,10 @@ var _ = Describe("ControllerServer test", Ordered, func() { iaasClient.EXPECT().GetVolumesByName(gomock.Any(), "new volume").Return([]iaas.Volume{ { - Id: ptr.To("volume-0"), + Id: new("volume-0"), }, { - Id: ptr.To("volume-1"), + Id: new("volume-1"), }, }, nil) @@ -297,27 +328,29 @@ var _ = Describe("ControllerServer test", Ordered, func() { }, } - iaasClient.EXPECT().GetSnapshotByID(gomock.Any(), "snapshot-id").Return(&iaas.Snapshot{ - Id: ptr.To("snapshot-id"), - Status: ptr.To("AVAILABLE"), - VolumeId: ptr.To("snapshot-volume-id"), + iaasClient.EXPECT().GetSnapshot(gomock.Any(), "snapshot-id").Return(&iaas.Snapshot{ + Id: new("snapshot-id"), + Status: new("AVAILABLE"), + VolumeId: "snapshot-volume-id", + AvailabilityZone: new("eu01"), }, nil) - iaasClient.EXPECT().GetVolume(gomock.Any(), "snapshot-volume-id").Return(&iaas.Volume{ - Id: ptr.To("snapshot-volume-id"), - AvailabilityZone: ptr.To("eu01"), - }, nil) - iaasClient.EXPECT().CreateVolume(gomock.Any(), gomock.Any()). - Do(func(_ context.Context, opts *iaas.CreateVolumePayload) { - Expect(*opts.Source.Id).To(Equal("snapshot-id")) - Expect(*opts.Source.Type).To(Equal("snapshot")) - }). - Return(&iaas.Volume{ - Id: ptr.To("volume-id"), - Name: ptr.To("new volume"), - AvailabilityZone: ptr.To("eu01"), - Size: ptr.To(int64(20)), - }, nil) - iaasClient.EXPECT().WaitVolumeTargetStatusWithCustomBackoff(gomock.Any(), "volume-id", gomock.Any(), gomock.Any()).Return(nil) + + vol := &iaas.Volume{ + Id: new("volume-id"), + Name: new("new volume"), + AvailabilityZone: "eu01", + Size: new(int64(20)), + } + + iaasClient.EXPECT(). + CreateVolume(gomock.Any(), gomock.Any()). + DoAndReturn(func(_ context.Context, opts iaas.CreateVolumePayload) (*iaas.Volume, error) { + Expect(opts.Source.Id).To(Equal("snapshot-id")) + Expect(opts.Source.Type).To(Equal("snapshot")) + + return vol, nil + }) + iaasClient.EXPECT().WaitVolumeTargetStatusWithCustomBackoff(gomock.Any(), vol.GetId(), gomock.Any(), gomock.Any()).Return(vol, nil) _, err := fakeCs.CreateVolume(context.Background(), req) Expect(err).ToNot(HaveOccurred()) @@ -332,7 +365,7 @@ var _ = Describe("ControllerServer test", Ordered, func() { }, } - iaasClient.EXPECT().GetSnapshotByID(gomock.Any(), "snapshot-id").Return(nil, fmt.Errorf("injected error")) + iaasClient.EXPECT().GetSnapshot(gomock.Any(), "snapshot-id").Return(nil, fmt.Errorf("injected error")) _, err := fakeCs.CreateVolume(context.Background(), req) Expect(err).To(HaveOccurred()) @@ -348,9 +381,9 @@ var _ = Describe("ControllerServer test", Ordered, func() { }, } - iaasClient.EXPECT().GetSnapshotByID(gomock.Any(), "snapshot-id").Return(&iaas.Snapshot{ - Id: ptr.To("snapshot-id"), - Status: ptr.To("creating"), + iaasClient.EXPECT().GetSnapshot(gomock.Any(), "snapshot-id").Return(&iaas.Snapshot{ + Id: new("snapshot-id"), + Status: new("creating"), }, nil) _, err := fakeCs.CreateVolume(context.Background(), req) @@ -368,26 +401,31 @@ var _ = Describe("ControllerServer test", Ordered, func() { }, } - iaasClient.EXPECT().GetSnapshotByID(gomock.Any(), "snapshot-id").Return(nil, + iaasClient.EXPECT().GetSnapshot(gomock.Any(), "snapshot-id").Return(nil, &oapierror.GenericOpenAPIError{ StatusCode: http.StatusNotFound, }) - iaasClient.EXPECT().GetBackupByID(gomock.Any(), "snapshot-id").Return(&iaas.Backup{ - Status: ptr.To("AVAILABLE"), - AvailabilityZone: ptr.To("eu01"), + iaasClient.EXPECT().GetBackup(gomock.Any(), "snapshot-id").Return(&iaas.Backup{ + Status: new("AVAILABLE"), + AvailabilityZone: new("eu01"), }, nil) - iaasClient.EXPECT().CreateVolume(gomock.Any(), gomock.Any()). - Do(func(_ context.Context, opts *iaas.CreateVolumePayload) { - Expect(*opts.Source.Id).To(Equal("snapshot-id")) - Expect(*opts.Source.Type).To(Equal("backup")) - }). - Return(&iaas.Volume{ - Id: ptr.To("volume-id"), - Name: ptr.To("new volume"), - AvailabilityZone: ptr.To("eu01"), - Size: ptr.To(int64(20)), - }, nil) - iaasClient.EXPECT().WaitVolumeTargetStatusWithCustomBackoff(gomock.Any(), "volume-id", gomock.Any(), gomock.Any()).Return(nil) + + vol := &iaas.Volume{ + Id: new("volume-id"), + Name: new("new volume"), + AvailabilityZone: "eu01", + Size: new(int64(20)), + } + + iaasClient.EXPECT(). + CreateVolume(gomock.Any(), gomock.Any()). + DoAndReturn(func(_ context.Context, opts iaas.CreateVolumePayload) (*iaas.Volume, error) { + Expect(opts.Source.Id).To(Equal("snapshot-id")) + Expect(opts.Source.Type).To(Equal("backup")) + + return vol, nil + }) + iaasClient.EXPECT().WaitVolumeTargetStatusWithCustomBackoff(gomock.Any(), vol.GetId(), gomock.Any(), gomock.Any()).Return(vol, nil) _, err := fakeCs.CreateVolume(context.Background(), req) Expect(err).ToNot(HaveOccurred()) @@ -407,15 +445,11 @@ var _ = Describe("ControllerServer test", Ordered, func() { }, } - iaasClient.EXPECT().GetSnapshotByID(gomock.Any(), "snapshot-id").Return(&iaas.Snapshot{ - Id: ptr.To("snapshot-id"), - VolumeId: ptr.To("volume-id"), - Status: ptr.To("AVAILABLE"), - }, nil) - iaasClient.EXPECT().GetVolume(gomock.Any(), "volume-id").Return(&iaas.Volume{ - Status: ptr.To("AVAILABLE"), - AvailabilityZone: ptr.To("eu01"), - Id: ptr.To("volume-id"), + iaasClient.EXPECT().GetSnapshot(gomock.Any(), "snapshot-id").Return(&iaas.Snapshot{ + Id: new("snapshot-id"), + VolumeId: "volume-id", + Status: new("AVAILABLE"), + AvailabilityZone: new("eu01"), }, nil) _, err := fakeCs.CreateVolume(context.Background(), req) @@ -433,11 +467,11 @@ var _ = Describe("ControllerServer test", Ordered, func() { }, } - iaasClient.EXPECT().GetSnapshotByID(gomock.Any(), "snapshot-id").Return(nil, + iaasClient.EXPECT().GetSnapshot(gomock.Any(), "snapshot-id").Return(nil, &oapierror.GenericOpenAPIError{ StatusCode: http.StatusNotFound, }) - iaasClient.EXPECT().GetBackupByID(gomock.Any(), "snapshot-id").Return(nil, + iaasClient.EXPECT().GetBackup(gomock.Any(), "snapshot-id").Return(nil, &oapierror.GenericOpenAPIError{ StatusCode: http.StatusNotFound, }) @@ -457,12 +491,12 @@ var _ = Describe("ControllerServer test", Ordered, func() { }, } - iaasClient.EXPECT().GetSnapshotByID(gomock.Any(), "snapshot-id").Return(nil, + iaasClient.EXPECT().GetSnapshot(gomock.Any(), "snapshot-id").Return(nil, &oapierror.GenericOpenAPIError{ StatusCode: http.StatusNotFound, }) - iaasClient.EXPECT().GetBackupByID(gomock.Any(), "snapshot-id").Return(&iaas.Backup{ - Status: ptr.To("creating"), + iaasClient.EXPECT().GetBackup(gomock.Any(), "snapshot-id").Return(&iaas.Backup{ + Status: new("creating"), }, nil) _, err := fakeCs.CreateVolume(context.Background(), req) @@ -481,22 +515,27 @@ var _ = Describe("ControllerServer test", Ordered, func() { } iaasClient.EXPECT().GetVolume(gomock.Any(), "volume-source-id").Return(&iaas.Volume{ - Id: ptr.To("volume-source-id"), - Status: ptr.To("AVAILABLE"), - AvailabilityZone: ptr.To("eu01"), + Id: new("volume-source-id"), + Status: new("AVAILABLE"), + AvailabilityZone: "eu01", }, nil) - iaasClient.EXPECT().CreateVolume(gomock.Any(), gomock.Any()). - Do(func(_ context.Context, opts *iaas.CreateVolumePayload) { - Expect(*opts.Source.Id).To(Equal("volume-source-id")) - Expect(*opts.Source.Type).To(Equal("volume")) - }). - Return(&iaas.Volume{ - Id: ptr.To("volume-id"), - Name: ptr.To("new volume"), - AvailabilityZone: ptr.To("eu01"), - Size: ptr.To(int64(20)), - }, nil) - iaasClient.EXPECT().WaitVolumeTargetStatusWithCustomBackoff(gomock.Any(), "volume-id", gomock.Any(), gomock.Any()).Return(nil) + + vol := &iaas.Volume{ + Id: new("volume-id"), + Name: new("new volume"), + AvailabilityZone: "eu01", + Size: new(int64(20)), + } + + iaasClient.EXPECT(). + CreateVolume(gomock.Any(), gomock.Any()). + DoAndReturn(func(_ context.Context, opts iaas.CreateVolumePayload) (*iaas.Volume, error) { + Expect(opts.Source.Id).To(Equal("volume-source-id")) + Expect(opts.Source.Type).To(Equal("volume")) + + return vol, nil + }) + iaasClient.EXPECT().WaitVolumeTargetStatusWithCustomBackoff(gomock.Any(), vol.GetId(), gomock.Any(), gomock.Any()).Return(vol, nil) _, err := fakeCs.CreateVolume(context.Background(), req) Expect(err).ToNot(HaveOccurred()) @@ -567,14 +606,16 @@ var _ = Describe("ControllerServer test", Ordered, func() { iaasClient.EXPECT().GetVolumesByName(gomock.Any(), "new volume").Return([]iaas.Volume{}, nil) - iaasClient.EXPECT().CreateVolume(gomock.Any(), gomock.Any()).Return(&iaas.Volume{ - Id: ptr.To("volume-id"), - Name: ptr.To("new volume"), - AvailabilityZone: ptr.To("eu01"), - Size: ptr.To(int64(20)), - }, nil) - iaasClient.EXPECT().WaitVolumeTargetStatusWithCustomBackoff(gomock.Any(), "volume-id", gomock.Any(), gomock.Any()). - Return(fmt.Errorf("injected error")) + vol := &iaas.Volume{ + Id: new("volume-id"), + Name: new("new volume"), + AvailabilityZone: "eu01", + Size: new(int64(20)), + } + + iaasClient.EXPECT().CreateVolume(gomock.Any(), gomock.Any()).Return(vol, nil) + iaasClient.EXPECT().WaitVolumeTargetStatusWithCustomBackoff(gomock.Any(), vol.GetId(), gomock.Any(), gomock.Any()). + Return(nil, fmt.Errorf("injected error")) _, err := fakeCs.CreateVolume(context.Background(), req) Expect(err).To(HaveOccurred()) @@ -624,17 +665,17 @@ var _ = Describe("ControllerServer test", Ordered, func() { // Pagination is not supported by the API yet, so the arguments are ignored iaasClient.EXPECT().ListVolumes(gomock.Any(), gomock.Any(), gomock.Any()).Return([]iaas.Volume{ { - Id: ptr.To("fake"), - Status: ptr.To("AVAILABLE"), - Name: ptr.To("fake"), - Size: ptr.To(int64(10)), + Id: new("fake"), + Status: new("AVAILABLE"), + Name: new("fake"), + Size: new(int64(10)), }, { - Id: ptr.To("fake1"), - Status: ptr.To("AVAILABLE"), - Name: ptr.To("fake1"), - Size: ptr.To(int64(10)), - ServerId: ptr.To("serverID"), + Id: new("fake1"), + Status: new("AVAILABLE"), + Name: new("fake1"), + Size: new(int64(10)), + ServerId: new("serverID"), }, }, "", nil) resp, err := fakeCs.ListVolumes(context.Background(), req) @@ -649,13 +690,32 @@ var _ = Describe("ControllerServer test", Ordered, func() { NodeId: "fake", VolumeCapability: stdVolCap, } - iaasClient.EXPECT().GetVolume(gomock.Any(), req.VolumeId).Return(&iaas.Volume{}, nil) - iaasClient.EXPECT().GetInstanceByID(gomock.Any(), "fake").Return(&iaas.Server{}, nil) - iaasClient.EXPECT().AttachVolume(gomock.Any(), req.NodeId, req.VolumeId).Return(req.VolumeId, nil) + iaasClient.EXPECT().GetVolume(gomock.Any(), req.VolumeId).Return(&iaas.Volume{Status: new("AVAILABLE")}, nil) + iaasClient.EXPECT().GetServer(gomock.Any(), "fake").Return(&iaas.Server{}, nil) + iaasClient.EXPECT().AttachVolume(gomock.Any(), req.NodeId, req.VolumeId, gomock.Any()).Return(req.VolumeId, nil) iaasClient.EXPECT().WaitDiskAttached(gomock.Any(), req.NodeId, req.VolumeId).Return(nil) _, err := fakeCs.ControllerPublishVolume(context.Background(), req) Expect(err).To(Not(HaveOccurred())) }) + + It("should return resource exhausted when node cannot attach more disks", func() { + req := &csi.ControllerPublishVolumeRequest{ + VolumeId: "fake", + NodeId: "fake", + VolumeCapability: stdVolCap, + } + iaasClient.EXPECT().GetVolume(gomock.Any(), req.VolumeId).Return(&iaas.Volume{Status: new("AVAILABLE")}, nil) + iaasClient.EXPECT().GetServer(gomock.Any(), req.NodeId).Return(&iaas.Server{}, nil) + iaasClient.EXPECT().AttachVolume(gomock.Any(), req.NodeId, req.VolumeId, gomock.Any()).Return("", &oapierror.GenericOpenAPIError{ + StatusCode: http.StatusForbidden, + Body: []byte("maximum allowed number of disk devices"), + }) + + _, err := fakeCs.ControllerPublishVolume(context.Background(), req) + Expect(err).To(HaveOccurred()) + Expect(status.Code(err)).To(Equal(codes.ResourceExhausted)) + Expect(status.Convert(err).Message()).To(ContainSubstring("Node can't accept any more volumes")) + }) }) Describe("ControllerUnpublishVolume", func() { It("should successfully detach volume from node", func() { @@ -663,7 +723,7 @@ var _ = Describe("ControllerServer test", Ordered, func() { VolumeId: "fake", NodeId: "fake", } - iaasClient.EXPECT().GetInstanceByID(gomock.Any(), "fake").Return(&iaas.Server{}, nil) + iaasClient.EXPECT().GetServer(gomock.Any(), "fake").Return(&iaas.Server{}, nil) iaasClient.EXPECT().DetachVolume(gomock.Any(), req.NodeId, req.VolumeId).Return(nil) iaasClient.EXPECT().WaitDiskDetached(gomock.Any(), req.NodeId, req.VolumeId).Return(nil) _, err := fakeCs.ControllerUnpublishVolume(context.Background(), req) @@ -676,8 +736,8 @@ var _ = Describe("ControllerServer test", Ordered, func() { VolumeId: "fake", } expectedVol := &iaas.Volume{ - ServerId: ptr.To("fake"), - Size: ptr.To(100 * util.GIBIBYTE), + ServerId: new("fake"), + Size: new(100 * util.GIBIBYTE), } iaasClient.EXPECT().GetVolume(gomock.Any(), req.VolumeId).Return(expectedVol, nil) resp, err := fakeCs.ControllerGetVolume(context.Background(), req) @@ -694,10 +754,10 @@ var _ = Describe("ControllerServer test", Ordered, func() { } volSizeGB := util.RoundUpSize(req.GetCapacityRange().GetRequiredBytes(), util.GIBIBYTE) iaasClient.EXPECT().GetVolume(gomock.Any(), req.VolumeId).Return(&iaas.Volume{ - Size: ptr.To(int64(10)), - Status: ptr.To(stackit.VolumeAvailableStatus), + Size: new(int64(10)), + Status: new(stackitclient.VolumeAvailableStatus), }, nil) - iaasClient.EXPECT().ExpandVolume(gomock.Any(), req.VolumeId, stackit.VolumeAvailableStatus, volSizeGB).Return(nil) + iaasClient.EXPECT().ExpandVolume(gomock.Any(), req.VolumeId, stackitclient.VolumeAvailableStatus, iaas.ResizeVolumePayload{Size: volSizeGB}).Return(nil) iaasClient.EXPECT().WaitVolumeTargetStatus(gomock.Any(), req.VolumeId, expandTargetStatus).Return(nil) _, err := fakeCs.ControllerExpandVolume(context.Background(), req) Expect(err).To(Not(HaveOccurred())) @@ -707,12 +767,16 @@ var _ = Describe("ControllerServer test", Ordered, func() { VolumeId: "fake", CapacityRange: stdCapRange, } + volSizeGB := util.RoundUpSize(req.GetCapacityRange().GetRequiredBytes(), util.GIBIBYTE) iaasClient.EXPECT().GetVolume(gomock.Any(), req.VolumeId).Return(&iaas.Volume{ - Size: ptr.To(int64(10)), - Status: ptr.To("ERROR"), + Size: new(int64(10)), + Status: new("ERROR"), }, nil) - iaasClient.EXPECT().ExpandVolume(gomock.Any(), req.VolumeId, "ERROR", volSizeGB).Return(fmt.Errorf("volume cannot be resized, when status is ERROR")) + iaasClient.EXPECT().ExpandVolume(gomock.Any(), req.VolumeId, "ERROR", iaas.ResizeVolumePayload{ + Size: volSizeGB, + }).Return(fmt.Errorf("volume cannot be resized, when status is ERROR")) + _, err := fakeCs.ControllerExpandVolume(context.Background(), req) Expect(err).To(HaveOccurred()) Expect(status.Convert(err).Code()).To(Equal(codes.Internal)) @@ -731,37 +795,35 @@ var _ = Describe("ControllerServer test", Ordered, func() { }) It("should create backup successfully", func() { // TODO: Use once IaaS has extended the label regex to allow for forward slashes and dots - // properties := map[string]string{blockStorageCSIClusterIDKey: "cluster"} - properties := map[string]string{} expectedSnap := &iaas.Snapshot{ - Id: ptr.To("fake-snapshot"), - Name: ptr.To("fake-snapshot"), - Status: ptr.To("AVAILABLE"), - Size: ptr.To(int64(10)), - CreatedAt: ptr.To(time.Now()), + Id: new("fake-snapshot"), + Name: new("fake-snapshot"), + Status: new("AVAILABLE"), + Size: new(int64(10)), + CreatedAt: new(time.Now()), } expectedBackup := &iaas.Backup{ - Id: ptr.To("fake-backup"), - Name: ptr.To("fake-backup"), - Status: ptr.To("AVAILABLE"), - SnapshotId: ptr.To("fake-snapshot"), - Size: ptr.To(int64(10)), - VolumeId: ptr.To(req.GetSourceVolumeId()), - CreatedAt: ptr.To(time.Now()), + Id: new("fake-backup"), + Name: new("fake-backup"), + Status: new("AVAILABLE"), + SnapshotId: new("fake-snapshot"), + Size: new(int64(10)), + VolumeId: new(req.GetSourceVolumeId()), + CreatedAt: new(time.Now()), } iaasClient.EXPECT().ListBackups(gomock.Any(), gomock.Any()).Return([]iaas.Backup{}, nil) // Backups are created from snapshots iaasClient.EXPECT().ListSnapshots(gomock.Any(), gomock.Any()).Return([]iaas.Snapshot{}, "", nil) - iaasClient.EXPECT().CreateSnapshot(gomock.Any(), "fake-snapshot", req.SourceVolumeId, properties).Return(expectedSnap, nil) + iaasClient.EXPECT().CreateSnapshot(gomock.Any(), gomock.Any()).Return(expectedSnap, nil) iaasClient.EXPECT().WaitSnapshotReady(gomock.Any(), "fake-snapshot").Return(expectedSnap.Status, nil) // Actually create the backup from the snapshot iaasClient.EXPECT().CreateBackup(gomock.Any(), "fake-snapshot", req.GetSourceVolumeId(), "fake-snapshot", gomock.Any()).Return(expectedBackup, nil) - iaasClient.EXPECT().WaitBackupReady(gomock.Any(), "fake-backup", *expectedSnap.Size, stackit.BackupMaxDurationSecondsPerGBDefault). - Return(ptr.To("AVAILABLE"), nil) - iaasClient.EXPECT().GetBackupByID(gomock.Any(), "fake-backup").Return(expectedBackup, nil) + iaasClient.EXPECT().WaitBackupReady(gomock.Any(), "fake-backup", *expectedSnap.Size, stackitclient.BackupMaxDurationSecondsPerGBDefault). + Return(new("AVAILABLE"), nil) + iaasClient.EXPECT().GetBackup(gomock.Any(), "fake-backup").Return(expectedBackup, nil) // Remove the snapshot after the backup is created iaasClient.EXPECT().DeleteSnapshot(gomock.Any(), "fake-snapshot").Return(nil) @@ -771,18 +833,18 @@ var _ = Describe("ControllerServer test", Ordered, func() { }) It("should skip snapshot creation when backup already exists", func() { expectedBackup := &iaas.Backup{ - Id: ptr.To("fake-backup"), - Name: ptr.To("fake-backup"), - Status: ptr.To("AVAILABLE"), - SnapshotId: ptr.To("fake-snapshot"), - Size: ptr.To(int64(10)), - VolumeId: ptr.To(req.GetSourceVolumeId()), - CreatedAt: ptr.To(time.Now()), + Id: new("fake-backup"), + Name: new("fake-backup"), + Status: new("AVAILABLE"), + SnapshotId: new("fake-snapshot"), + Size: new(int64(10)), + VolumeId: new(req.GetSourceVolumeId()), + CreatedAt: new(time.Now()), } iaasClient.EXPECT().ListBackups(gomock.Any(), gomock.Any()).Return([]iaas.Backup{*expectedBackup}, nil) - iaasClient.EXPECT().WaitBackupReady(gomock.Any(), "fake-backup", int64(0), stackit.BackupMaxDurationSecondsPerGBDefault).Return(ptr.To("AVAILABLE"), nil) - iaasClient.EXPECT().GetBackupByID(gomock.Any(), "fake-backup").Return(expectedBackup, nil) + iaasClient.EXPECT().WaitBackupReady(gomock.Any(), "fake-backup", int64(0), stackitclient.BackupMaxDurationSecondsPerGBDefault).Return(new("AVAILABLE"), nil) + iaasClient.EXPECT().GetBackup(gomock.Any(), "fake-backup").Return(expectedBackup, nil) // Remove the snapshot after the backup is created iaasClient.EXPECT().DeleteSnapshot(gomock.Any(), *expectedBackup.SnapshotId).Return(nil) @@ -793,10 +855,10 @@ var _ = Describe("ControllerServer test", Ordered, func() { It("should find multiple backups and report with error", func() { iaasClient.EXPECT().ListBackups(gomock.Any(), gomock.Any()).Return([]iaas.Backup{ { - Id: ptr.To("fake-snapshot"), + Id: new("fake-snapshot"), }, { - Id: ptr.To("fake-snapshot2"), + Id: new("fake-snapshot2"), }, }, nil) _, err := fakeCs.CreateSnapshot(context.Background(), req) @@ -806,8 +868,8 @@ var _ = Describe("ControllerServer test", Ordered, func() { }) It("should return error when backup is found with same name but different volSourceId", func() { expectedBackup := &iaas.Backup{ - Id: ptr.To("fake-backup"), - VolumeId: ptr.To("another-fake"), + Id: new("fake-backup"), + VolumeId: new("another-fake"), } iaasClient.EXPECT().ListBackups(gomock.Any(), gomock.Any()).Return([]iaas.Backup{*expectedBackup}, nil) @@ -818,44 +880,42 @@ var _ = Describe("ControllerServer test", Ordered, func() { }) It("should honor custom wait time for backup creation", func() { req.Parameters = map[string]string{ - stackit.BackupMaxDurationPerGB: "120", - stackit.SnapshotType: "backup", + stackitclient.BackupMaxDurationPerGB: "120", + stackitclient.SnapshotType: "backup", } - customWaitTime, err := strconv.Atoi((req.Parameters)[stackit.BackupMaxDurationPerGB]) + customWaitTime, err := strconv.Atoi((req.Parameters)[stackitclient.BackupMaxDurationPerGB]) Expect(err).To(Not(HaveOccurred())) // TODO: Use once IaaS has extended the label regex to allow for forward slashes and dots - // properties := map[string]string{blockStorageCSIClusterIDKey: "cluster"} - properties := map[string]string{} expectedSnap := &iaas.Snapshot{ - Id: ptr.To("fake-snapshot"), - Name: ptr.To("fake-snapshot"), - Status: ptr.To("AVAILABLE"), - Size: ptr.To(int64(10)), - CreatedAt: ptr.To(time.Now()), + Id: new("fake-snapshot"), + Name: new("fake-snapshot"), + Status: new("AVAILABLE"), + Size: new(int64(10)), + CreatedAt: new(time.Now()), } expectedBackup := &iaas.Backup{ - Id: ptr.To("fake-backup"), - Name: ptr.To("fake-backup"), - Status: ptr.To("AVAILABLE"), - SnapshotId: ptr.To("fake-snapshot"), - Size: ptr.To(int64(10)), - VolumeId: ptr.To(req.GetSourceVolumeId()), - CreatedAt: ptr.To(time.Now()), + Id: new("fake-backup"), + Name: new("fake-backup"), + Status: new("AVAILABLE"), + SnapshotId: new("fake-snapshot"), + Size: new(int64(10)), + VolumeId: new(req.GetSourceVolumeId()), + CreatedAt: new(time.Now()), } iaasClient.EXPECT().ListBackups(gomock.Any(), gomock.Any()).Return([]iaas.Backup{}, nil) // Backups are created from snapshots iaasClient.EXPECT().ListSnapshots(gomock.Any(), gomock.Any()).Return([]iaas.Snapshot{}, "", nil) - iaasClient.EXPECT().CreateSnapshot(gomock.Any(), "fake-snapshot", req.SourceVolumeId, properties).Return(expectedSnap, nil) + iaasClient.EXPECT().CreateSnapshot(gomock.Any(), gomock.Any()).Return(expectedSnap, nil) iaasClient.EXPECT().WaitSnapshotReady(gomock.Any(), "fake-snapshot").Return(expectedSnap.Status, nil) // Actually create the backup from the snapshot iaasClient.EXPECT().CreateBackup(gomock.Any(), "fake-snapshot", req.GetSourceVolumeId(), "fake-snapshot", gomock.Any()).Return(expectedBackup, nil) - iaasClient.EXPECT().WaitBackupReady(gomock.Any(), "fake-backup", *expectedSnap.Size, customWaitTime).Return(ptr.To("AVAILABLE"), nil) - iaasClient.EXPECT().GetBackupByID(gomock.Any(), "fake-backup").Return(expectedBackup, nil) + iaasClient.EXPECT().WaitBackupReady(gomock.Any(), "fake-backup", *expectedSnap.Size, customWaitTime).Return(new("AVAILABLE"), nil) + iaasClient.EXPECT().GetBackup(gomock.Any(), "fake-backup").Return(expectedBackup, nil) // Remove the snapshot after the backup is created iaasClient.EXPECT().DeleteSnapshot(gomock.Any(), "fake-snapshot").Return(nil) @@ -875,36 +935,65 @@ var _ = Describe("ControllerServer test", Ordered, func() { }) It("should create snapshot successfully", func() { expectedSnap := &iaas.Snapshot{ - Id: ptr.To("fake-snapshot"), - Name: ptr.To("fake-snapshot45"), - VolumeId: ptr.To("fake"), - Size: ptr.To(int64(10)), - CreatedAt: ptr.To(time.Now()), + Id: new("fake-snapshot"), + Name: new("fake-snapshot45"), + VolumeId: "fake", + Size: new(int64(10)), + CreatedAt: new(time.Now()), } - // TODO: Use once IaaS has extended the label regex to allow for forward slashes and dots - // properties := map[string]string{blockStorageCSIClusterIDKey: "cluster"} - properties := map[string]string{} - // TODO: Again filters are not implemented yet by the API iaasClient.EXPECT().ListSnapshots(gomock.Any(), gomock.Any()).Return([]iaas.Snapshot{}, "", nil) - iaasClient.EXPECT().CreateSnapshot(gomock.Any(), "fake-snapshot", req.SourceVolumeId, properties).Return(expectedSnap, nil) + iaasClient.EXPECT().CreateSnapshot(gomock.Any(), gomock.Any()).Return(expectedSnap, nil) iaasClient.EXPECT().WaitSnapshotReady(gomock.Any(), "fake-snapshot").Return(expectedSnap.Status, nil) _, err := fakeCs.CreateSnapshot(context.Background(), req) Expect(err).ToNot(HaveOccurred()) }) + It("should pass recognized snapshotter metadata when creating snapshots", func() { + req.Parameters = map[string]string{ + stackitclient.SnapshotType: "snapshot", + sharedcsi.VolSnapshotNameKey: "snapshot-name", + sharedcsi.VolSnapshotNamespaceKey: "snapshot-namespace", + sharedcsi.VolSnapshotContentNameKey: "snapshot-content", + "ignored": "value", + } + + expectedSnap := &iaas.Snapshot{ + Id: new("fake-snapshot"), + Name: new("fake-snapshot45"), + VolumeId: "fake", + Status: new("AVAILABLE"), + Size: new(int64(10)), + CreatedAt: new(time.Now()), + } + + iaasClient.EXPECT().ListSnapshots(gomock.Any(), gomock.Any()).Return([]iaas.Snapshot{}, "", nil) + iaasClient.EXPECT().CreateSnapshot(gomock.Any(), gomock.Any()). + DoAndReturn(func(_ context.Context, payload iaas.CreateSnapshotPayload) (*iaas.Snapshot, error) { + Expect(payload.Labels).To(Equal(map[string]any{ + sharedcsi.VolSnapshotNameKey: "snapshot-name", + sharedcsi.VolSnapshotNamespaceKey: "snapshot-namespace", + sharedcsi.VolSnapshotContentNameKey: "snapshot-content", + })) + return expectedSnap, nil + }) + iaasClient.EXPECT().WaitSnapshotReady(gomock.Any(), "fake-snapshot").Return(expectedSnap.Status, nil) + + _, err := fakeCs.CreateSnapshot(context.Background(), req) + Expect(err).ToNot(HaveOccurred()) + }) It("should return snapshot without creating a new one when already exists", func() { expectedSnap := &iaas.Snapshot{ - Id: ptr.To("fake-snapshot"), - Name: ptr.To("fake-snapshot45"), - VolumeId: ptr.To("fake"), - Status: ptr.To("AVAILABLE"), - Size: ptr.To(int64(10)), - CreatedAt: ptr.To(time.Now()), + Id: new("fake-snapshot"), + Name: new("fake-snapshot45"), + VolumeId: "fake", + Status: new("AVAILABLE"), + Size: new(int64(10)), + CreatedAt: new(time.Now()), } // TODO: Again filters are not implemented yet by the API iaasClient.EXPECT().ListSnapshots(gomock.Any(), gomock.Any()).Return([]iaas.Snapshot{*expectedSnap}, "", nil) - iaasClient.EXPECT().WaitSnapshotReady(gomock.Any(), "fake-snapshot").Return(ptr.To("AVAILABLE"), nil) + iaasClient.EXPECT().WaitSnapshotReady(gomock.Any(), "fake-snapshot").Return(new("AVAILABLE"), nil) _, err := fakeCs.CreateSnapshot(context.Background(), req) Expect(err).ToNot(HaveOccurred()) }) @@ -912,10 +1001,10 @@ var _ = Describe("ControllerServer test", Ordered, func() { // TODO: Again filters are not implemented yet by the API iaasClient.EXPECT().ListSnapshots(gomock.Any(), gomock.Any()).Return([]iaas.Snapshot{ { - Id: ptr.To("fake-snapshot"), + Id: new("fake-snapshot"), }, { - Id: ptr.To("fake-snapshot2"), + Id: new("fake-snapshot2"), }, }, "", nil) _, err := fakeCs.CreateSnapshot(context.Background(), req) @@ -927,8 +1016,8 @@ var _ = Describe("ControllerServer test", Ordered, func() { // TODO: Again filters are not implemented yet by the API iaasClient.EXPECT().ListSnapshots(gomock.Any(), gomock.Any()).Return([]iaas.Snapshot{ { - Id: ptr.To("fake-snapshot"), - VolumeId: ptr.To("something-different"), + Id: new("fake-snapshot"), + VolumeId: "something-different", }, }, "", nil) _, err := fakeCs.CreateSnapshot(context.Background(), req) @@ -955,43 +1044,160 @@ var _ = Describe("ControllerServer test", Ordered, func() { }, }, } - iaasClient.EXPECT().GetSnapshotByID(gomock.Any(), "special-snapshot").Return(&iaas.Snapshot{ - Id: ptr.To("special-snapshot"), - VolumeId: ptr.To("fake"), - Size: ptr.To(int64(10)), - CreatedAt: ptr.To(snapShotCreationTime), + iaasClient.EXPECT().GetSnapshot(gomock.Any(), "special-snapshot").Return(&iaas.Snapshot{ + Id: new("special-snapshot"), + VolumeId: "fake", + Size: new(int64(10)), + CreatedAt: new(snapShotCreationTime), + }, nil) + resp, err := fakeCs.ListSnapshots(context.Background(), req) + Expect(err).To(Not(HaveOccurred())) + Expect(resp.GetEntries()).Should(Equal(expectedSnapshotListResponse)) + Expect(resp.GetEntries()).To(HaveLen(1)) + }) + + It("should fall back to a backup when the snapshot ID resolves to a backup", func() { + req := &csi.ListSnapshotsRequest{ + SnapshotId: "special-backup", + } + backupCreationTime := time.Now() + expectedSnapshotListResponse := []*csi.ListSnapshotsResponse_Entry{ + { + Snapshot: &csi.Snapshot{ + SnapshotId: "special-backup", + SizeBytes: 10 * util.GIBIBYTE, + CreationTime: timestamppb.New(backupCreationTime), + SourceVolumeId: "fake-volume", + ReadyToUse: true, + }, + }, + } + + iaasClient.EXPECT().GetSnapshot(gomock.Any(), "special-backup").Return(nil, &oapierror.GenericOpenAPIError{ + StatusCode: http.StatusNotFound, + }) + iaasClient.EXPECT().GetBackup(gomock.Any(), "special-backup").Return(&iaas.Backup{ + Id: new("special-backup"), + VolumeId: new("fake-volume"), + Size: new(int64(10)), + CreatedAt: new(backupCreationTime), }, nil) + resp, err := fakeCs.ListSnapshots(context.Background(), req) Expect(err).To(Not(HaveOccurred())) Expect(resp.GetEntries()).Should(Equal(expectedSnapshotListResponse)) Expect(resp.GetEntries()).To(HaveLen(1)) }) - It("should successfully list snapshots", func() { + + It("should return an empty response when neither snapshot nor backup can be found", func() { + req := &csi.ListSnapshotsRequest{ + SnapshotId: "missing-snapshot", + } + + iaasClient.EXPECT().GetSnapshot(gomock.Any(), "missing-snapshot").Return(nil, &oapierror.GenericOpenAPIError{ + StatusCode: http.StatusNotFound, + }) + iaasClient.EXPECT().GetBackup(gomock.Any(), "missing-snapshot").Return(nil, &oapierror.GenericOpenAPIError{ + StatusCode: http.StatusNotFound, + }) + + resp, err := fakeCs.ListSnapshots(context.Background(), req) + Expect(err).To(Not(HaveOccurred())) + Expect(resp.GetEntries()).To(BeEmpty()) + }) + + It("should successfully list snapshots and backups without imposing an order", func() { req := &csi.ListSnapshotsRequest{} - snapShotCreationTime := time.Now() + firstSnapshotTime := time.Date(2024, time.January, 1, 10, 0, 0, 0, time.UTC) + backupCreationTime := firstSnapshotTime.Add(1 * time.Hour) + secondSnapshotTime := firstSnapshotTime.Add(2 * time.Hour) expectedSnapshotListResponse := []*csi.ListSnapshotsResponse_Entry{ { Snapshot: &csi.Snapshot{ SnapshotId: "fake-snapshot", SizeBytes: 10 * util.GIBIBYTE, - CreationTime: timestamppb.New(snapShotCreationTime), + CreationTime: timestamppb.New(firstSnapshotTime), + SourceVolumeId: "something-different", + ReadyToUse: true, + }, + }, + { + Snapshot: &csi.Snapshot{ + SnapshotId: "fake-backup", + SizeBytes: 20 * util.GIBIBYTE, + CreationTime: timestamppb.New(backupCreationTime), + SourceVolumeId: "something-different", + ReadyToUse: true, + }, + }, + { + Snapshot: &csi.Snapshot{ + SnapshotId: "later-snapshot", + SizeBytes: 30 * util.GIBIBYTE, + CreationTime: timestamppb.New(secondSnapshotTime), SourceVolumeId: "something-different", ReadyToUse: true, }, }, } - iaasClient.EXPECT().ListSnapshots(gomock.Any(), gomock.Any()).Return([]iaas.Snapshot{{ - Id: ptr.To("fake-snapshot"), - VolumeId: ptr.To("something-different"), - Size: ptr.To(int64(10)), - CreatedAt: ptr.To(snapShotCreationTime), - }}, "", nil) + iaasClient.EXPECT().ListSnapshots(gomock.Any(), gomock.Any()).Return([]iaas.Snapshot{ + { + Id: new("later-snapshot"), + VolumeId: "something-different", + Size: new(int64(30)), + CreatedAt: new(secondSnapshotTime), + Status: new("AVAILABLE"), + }, + { + Id: new("fake-snapshot"), + VolumeId: "something-different", + Size: new(int64(10)), + CreatedAt: new(firstSnapshotTime), + Status: new("AVAILABLE"), + }, + }, "", nil) + iaasClient.EXPECT().ListBackups(gomock.Any(), gomock.Any()).Return([]iaas.Backup{ + { + Id: new("fake-backup"), + VolumeId: new("something-different"), + Size: new(int64(20)), + CreatedAt: new(backupCreationTime), + Status: new("AVAILABLE"), + }, + }, nil) + resp, err := fakeCs.ListSnapshots(context.Background(), req) Expect(err).To(Not(HaveOccurred())) - Expect(resp.GetEntries()).Should(Equal(expectedSnapshotListResponse)) + Expect(resp.GetEntries()).Should(ConsistOf(expectedSnapshotListResponse)) + Expect(resp.GetNextToken()).To(BeEmpty()) }) + + It("should pass the source volume filter to snapshots and backups", func() { + req := &csi.ListSnapshotsRequest{ + SourceVolumeId: "volume-1", + } + + expectedFilters := map[string]string{ + "Status": stackitclient.SnapshotReadyStatus, + "VolumeID": "volume-1", + } + + iaasClient.EXPECT().ListSnapshots(gomock.Any(), gomock.Any()).DoAndReturn(func(_ context.Context, filters map[string]string) ([]iaas.Snapshot, string, error) { + Expect(filters).To(Equal(expectedFilters)) + return []iaas.Snapshot{}, "", nil + }) + iaasClient.EXPECT().ListBackups(gomock.Any(), gomock.Any()).DoAndReturn(func(_ context.Context, filters map[string]string) ([]iaas.Backup, error) { + Expect(filters).To(Equal(expectedFilters)) + return []iaas.Backup{}, nil + }) + + resp, err := fakeCs.ListSnapshots(context.Background(), req) + Expect(err).To(Not(HaveOccurred())) + Expect(resp.GetEntries()).To(BeEmpty()) + }) + }) }) diff --git a/pkg/csi/blockstorage/driver.go b/pkg/csi/blockstorage/driver.go index 1effd50c..e0994d7f 100644 --- a/pkg/csi/blockstorage/driver.go +++ b/pkg/csi/blockstorage/driver.go @@ -4,7 +4,8 @@ import ( "fmt" "github.com/container-storage-interface/spec/lib/go/csi" - "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit" + stackitclient "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/client" + stackitconfig "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/config" corev1 "k8s.io/client-go/listers/core/v1" "k8s.io/klog/v2" @@ -14,8 +15,10 @@ import ( ) const ( - driverName = "block-storage.csi.stackit.cloud" - topologyKey = "topology." + driverName + "/zone" + driverName = "block-storage.csi.stackit.cloud" + legacyDriverName = "cinder.csi.openstack.org" + topologyKey = "topology." + driverName + "/zone" + legacyTopologyKey = "topology." + legacyDriverName + "/zone" // ResizeRequired parameter, if set to true, will trigger a resize on mount operation ResizeRequired = driverName + "/resizeRequired" @@ -23,15 +26,18 @@ const ( var ( // CSI spec version - specVersion = "1.12.0" + specVersion = "1.13.0" Version = "1.0.0" ) type Driver struct { - name string - fqVersion string // Fully qualified version in format {Version}@{CPO version} - endpoint string - clusterID string + name string + fqVersion string // Fully qualified version in format {Version}@{CPO version} + endpoint string + clusterID string + legacyDriver bool + blockVolumeCreation bool + deleteVolumesInErrorState bool ids *identityServer cs *controllerServer @@ -46,8 +52,11 @@ type Driver struct { } type DriverOpts struct { - ClusterID string - Endpoint string + ClusterID string + Endpoint string + LegacyDriverName bool + BlockVolumeCreation bool + DeleteVolumesInErrorState bool PVCLister corev1.PersistentVolumeClaimLister } @@ -61,6 +70,19 @@ func NewDriver(o *DriverOpts) *Driver { pvcLister: o.PVCLister, } + if o.LegacyDriverName { + d.name = legacyDriverName + d.legacyDriver = true + } + + if o.DeleteVolumesInErrorState { + d.deleteVolumesInErrorState = true + } + + if o.BlockVolumeCreation { + d.blockVolumeCreation = true + } + klog.Info("Driver: ", d.name) klog.Info("Driver version: ", d.fqVersion) klog.Info("CSI Spec version: ", specVersion) @@ -133,12 +155,12 @@ func (d *Driver) AddNodeServiceCapabilities(nl []csi.NodeServiceCapability_RPC_T return nil } -func (d *Driver) SetupControllerService(instance stackit.IaasClient) { +func (d *Driver) SetupControllerService(instance stackitclient.IaaSClient) { klog.Info("Providing controller service") d.cs = NewControllerServer(d, instance) } -func (d *Driver) SetupNodeService(mountProvider mount.IMount, metadataProvider metadata.IMetadata, opts stackit.BlockStorageOpts) { +func (d *Driver) SetupNodeService(mountProvider mount.IMount, metadataProvider metadata.IMetadata, opts stackitconfig.BlockStorageOpts) { klog.Info("Providing node service") d.ns = NewNodeServer(d, mountProvider, metadataProvider, opts) } diff --git a/pkg/csi/blockstorage/nodeserver.go b/pkg/csi/blockstorage/nodeserver.go index 514830bb..5b3cc838 100644 --- a/pkg/csi/blockstorage/nodeserver.go +++ b/pkg/csi/blockstorage/nodeserver.go @@ -26,6 +26,7 @@ import ( "github.com/container-storage-interface/spec/lib/go/csi" "github.com/kubernetes-csi/csi-lib-utils/protosanitizer" "github.com/stackitcloud/cloud-provider-stackit/pkg/csi/util" + stackitconfig "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/config" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" "k8s.io/klog/v2" @@ -35,15 +36,23 @@ import ( sharedcsi "github.com/stackitcloud/cloud-provider-stackit/pkg/csi" "github.com/stackitcloud/cloud-provider-stackit/pkg/csi/util/blockdevice" "github.com/stackitcloud/cloud-provider-stackit/pkg/csi/util/mount" - "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit" "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/metadata" ) +var ( + ValidFSTypes = map[string]struct{}{ + util.FSTypeExt3: {}, + util.FSTypeExt4: {}, + util.FSTypeXfs: {}, + util.FSTypeBtrfs: {}, + } +) + type nodeServer struct { Driver *Driver Mount mount.IMount Metadata metadata.IMetadata - Opts stackit.BlockStorageOpts + Opts stackitconfig.BlockStorageOpts csi.UnimplementedNodeServer } @@ -199,12 +208,18 @@ func (ns *nodeServer) NodeStageVolume(ctx context.Context, req *csi.NodeStageVol // Volume Mount if notMnt { // set default fstype is ext4 - fsType := "ext4" + fsType := util.FSTypeExt4 var options []string if mnt := volumeCapability.GetMount(); mnt != nil { if mnt.FsType != "" { fsType = mnt.FsType } + + _, ok := ValidFSTypes[strings.ToLower(fsType)] + if !ok { + return nil, status.Errorf(codes.InvalidArgument, "NodeStageVolume: invalid fstype %s. Only supported fsTypes are xfs or ext4 (default)", fsType) + } + mountFlags := mnt.GetMountFlags() options = append(options, collectMountOptions(fsType, mountFlags)...) } @@ -260,7 +275,15 @@ func validateNodeStageVolumeRequest(req *csi.NodeStageVolumeRequest) (stagingTar // If the initial mount fails, it rescans the device and retries the mount operation. func (ns *nodeServer) formatAndMountRetry(devicePath, stagingTarget, fsType string, options []string) error { m := ns.Mount - err := m.Mounter().FormatAndMount(devicePath, stagingTarget, fsType, options) + var err error + if fsType == util.FSTypeXfs { + // With newer xfsProgs version newer features are enabled by default. This forces mkfs.xfs to use flags compatible + // with the linux LTS 5.10 kernel + formatOptions := []string{"-n", "parent=0", "-i", "exchange=0,nrext64=0"} + err = m.Mounter().FormatAndMountSensitiveWithFormatOptions(devicePath, stagingTarget, fsType, options, nil, formatOptions) + } else { + err = m.Mounter().FormatAndMount(devicePath, stagingTarget, fsType, options) + } if err != nil { klog.Infof("Initial format and mount failed: %v. Attempting rescan.", err) // Attempting rescan if the initial mount fails @@ -302,19 +325,9 @@ func (ns *nodeServer) NodeGetInfo(ctx context.Context, _ *csi.NodeGetInfoRequest return nil, status.Errorf(codes.Internal, "[NodeGetInfo] unable to retrieve instance id of node %v", err) } - flavor, err := ns.Metadata.GetFlavor(ctx) - if err != nil { - return nil, status.Errorf(codes.Internal, "[NodeGetInfo] unable to retrieve flavor of node %v", err) - } - - maxVolumesPerNode := DetermineMaxVolumesByFlavor(flavor) - // Subtract 1 for root disk and another for configDrive/spare - maxVolumesPerNode -= 2 - klog.V(4).Infof("Determined node to support %d volumes", maxVolumesPerNode) - nodeInfo := &csi.NodeGetInfoResponse{ NodeId: nodeID, - MaxVolumesPerNode: maxVolumesPerNode, + MaxVolumesPerNode: ns.calculateMaxVolumesPerNode(), } zone, err := ns.Metadata.GetAvailabilityZone(ctx) @@ -322,9 +335,14 @@ func (ns *nodeServer) NodeGetInfo(ctx context.Context, _ *csi.NodeGetInfoRequest return nil, status.Errorf(codes.Internal, "[NodeGetInfo] Unable to retrieve availability zone of node %v", err) } + topoKey := topologyKey + if ns.Driver.legacyDriver { + topoKey = legacyTopologyKey + } + //TODO: support well-known topology key "topology.kubernetes.io/zone" segments := map[string]string{ - topologyKey: zone, + topoKey: zone, } nodeInfo.AccessibleTopology = &csi.Topology{Segments: segments} @@ -332,6 +350,28 @@ func (ns *nodeServer) NodeGetInfo(ctx context.Context, _ *csi.NodeGetInfoRequest return nodeInfo, nil } +func (ns *nodeServer) calculateMaxVolumesPerNode() int64 { + freePCIeRootPorts, err := mount.CountFreePCIeSlots() + if err != nil { + klog.Errorf("[NodeGetInfo] unable to retrieve PCIe root ports: %v", err) + freePCIeRootPorts = 0 + } + + csiDriverName := driverName + if ns.Driver.legacyDriver { + // If driver launched in legacy-mode use "cinder.csi.openstack.org" + csiDriverName = legacyDriverName + } + + mountedCSIVolumes, err := mount.CountLocalCSIVolumes(csiDriverName) + if err != nil { + klog.Errorf("[NodeGetInfo] unable to retrieve volume count: %v", err) + mountedCSIVolumes = 0 + } + + return freePCIeRootPorts + mountedCSIVolumes +} + func (ns *nodeServer) NodeGetCapabilities(_ context.Context, req *csi.NodeGetCapabilitiesRequest) (*csi.NodeGetCapabilitiesResponse, error) { klog.V(5).Infof("NodeGetCapabilities called with req: %#v", req) @@ -478,7 +518,7 @@ func collectMountOptions(fsType string, mntFlags []string) []string { // By default, xfs does not allow mounting of two volumes with the same filesystem uuid. // Force ignore this uuid to be able to mount volume + its clone / restored snapshot on the same node. - if fsType == "xfs" { + if fsType == util.FSTypeXfs { options = append(options, "nouuid") } return options diff --git a/pkg/csi/blockstorage/nodeserver_test.go b/pkg/csi/blockstorage/nodeserver_test.go index 5d90d75a..2c4376e9 100644 --- a/pkg/csi/blockstorage/nodeserver_test.go +++ b/pkg/csi/blockstorage/nodeserver_test.go @@ -6,7 +6,7 @@ import ( "github.com/container-storage-interface/spec/lib/go/csi" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" - "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit" + stackitconfig "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/config" "go.uber.org/mock/gomock" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" @@ -42,7 +42,7 @@ var _ = Describe("NodeServer", func() { d, mountMock, metadataMock, - stackit.BlockStorageOpts{}, + stackitconfig.BlockStorageOpts{}, ) }) diff --git a/pkg/csi/blockstorage/sanity_test.go b/pkg/csi/blockstorage/sanity_test.go new file mode 100644 index 00000000..01462ec4 --- /dev/null +++ b/pkg/csi/blockstorage/sanity_test.go @@ -0,0 +1,475 @@ +package blockstorage + +import ( + "context" + "net/http" + "os" + "path" + "strconv" + "time" + + "github.com/container-storage-interface/spec/lib/go/csi" + "github.com/google/uuid" + "github.com/kubernetes-csi/csi-test/v5/pkg/sanity" + . "github.com/onsi/ginkgo/v2" + "github.com/stackitcloud/cloud-provider-stackit/pkg/csi/util/mount" + stackitclient "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/client" + stackitclientmock "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/client/mock" + stackitconfig "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/config" + "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/metadata" + "github.com/stackitcloud/stackit-sdk-go/core/oapierror" + iaas "github.com/stackitcloud/stackit-sdk-go/services/iaas/v2api" + "go.uber.org/mock/gomock" + mountutils "k8s.io/mount-utils" + exec "k8s.io/utils/exec/testing" +) + +var _ = Describe("CSI sanity test", Ordered, func() { + Context("Base config", func() { + var ( + driver *Driver + opts *DriverOpts + iaasClient *stackitclientmock.MockIaaSClient + mountMock *mount.MockIMount + metadataMock *metadata.MockIMetadata + FakeEndpoint string + FakeCluster = "cluster" + FakeInstanceID = "321a8b81-3660-43e5-bab8-6470b65ee4e8" + FakeDevicePath = "/dev/xxx" + Socket string + ) + + Socket = path.Join(os.TempDir(), "csi.sock") + FakeEndpoint = "unix://" + Socket + + BeforeAll(func() { + ctrl := gomock.NewController(GinkgoT()) + + opts = &DriverOpts{ + ClusterID: FakeCluster, + Endpoint: FakeEndpoint, + } + driver = NewDriver(opts) + driver.AddNodeServiceCapabilities( + []csi.NodeServiceCapability_RPC_Type{ + csi.NodeServiceCapability_RPC_STAGE_UNSTAGE_VOLUME, + csi.NodeServiceCapability_RPC_GET_VOLUME_STATS, + }) + + // --- Initialize Mocks --- + iaasClient = stackitclientmock.NewMockIaaSClient(ctrl) + mountMock = mount.NewMockIMount(ctrl) + metadataMock = metadata.NewMockIMetadata(ctrl) + + // --- Mock State --- + createdVolumes := make(map[string]*iaas.Volume) + createdSnapshots := make(map[string]*iaas.Snapshot) + createdBackups := make(map[string]*iaas.Backup) + createdInstances := make(map[string]*iaas.Server) + + // --- Mock Mounter Setup --- + mountPoints := make([]mountutils.MountPoint, 0) + fakeMounter := mountutils.NewFakeMounter(mountPoints) + fakeExec := &exec.FakeExec{DisableScripts: true} + safeMounter := &mountutils.SafeFormatAndMount{ + Interface: fakeMounter, + Exec: fakeExec, + } + + // --- 1. Mock IaaS Client (Volumes) --- + + iaasClient.EXPECT().CreateVolume( + gomock.Any(), // context + gomock.Any(), // create options + ).DoAndReturn(func(_ context.Context, opts iaas.CreateVolumePayload) (*iaas.Volume, error) { + size := opts.Size + if size == nil { + size = new(int64(10)) // Default to 10GiB + } + newVol := &iaas.Volume{ + Id: new(uuid.New().String()), // Create a random ID + Name: opts.Name, + Size: size, + Status: new(stackitclient.VolumeAvailableStatus), + AvailabilityZone: opts.AvailabilityZone, + Source: opts.Source, + } + createdVolumes[*newVol.Id] = newVol // Store the pointer in the map + return newVol, nil + }).AnyTimes() + + iaasClient.EXPECT().GetVolume( + gomock.Any(), // context + gomock.Any(), // volumeID + ).DoAndReturn(func(_ context.Context, volumeID string) (*iaas.Volume, error) { + vol, ok := createdVolumes[volumeID] + if !ok { + return nil, &oapierror.GenericOpenAPIError{StatusCode: http.StatusNotFound} + } + return vol, nil + }).AnyTimes() + + iaasClient.EXPECT().GetVolumesByName( + gomock.Any(), // context + gomock.Any(), // volName (string) + ).DoAndReturn(func(_ context.Context, name string) ([]iaas.Volume, error) { + var found []iaas.Volume + for _, vol := range createdVolumes { + if vol.Name != nil && *vol.Name == name { + found = append(found, *vol) // Append the value + } + } + return found, nil + }).AnyTimes() + + iaasClient.EXPECT().ListVolumes( + gomock.Any(), gomock.Any(), gomock.Eq(""), + ).DoAndReturn(func(_ context.Context, _ int, _ string) ([]iaas.Volume, string, error) { + var volList []iaas.Volume + for _, vol := range createdVolumes { + volList = append(volList, *vol) // Append the value + } + return volList, "", nil + }).AnyTimes() + + iaasClient.EXPECT().DeleteVolume( + gomock.Any(), // context + gomock.Any(), // volume ID + ).DoAndReturn(func(_ context.Context, volID string) error { + delete(createdVolumes, volID) + return nil + }).AnyTimes() + + iaasClient.EXPECT().WaitVolumeTargetStatusWithCustomBackoff( + gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), + ).Return(nil, nil).AnyTimes() + + iaasClient.EXPECT().ExpandVolume( + gomock.Any(), // context + gomock.Any(), // volumeID + gomock.Any(), // status + gomock.Any(), // size + ).Return(nil).AnyTimes() + + iaasClient.EXPECT().WaitVolumeTargetStatus( + gomock.Any(), // context + gomock.Any(), // volumeID + gomock.Any(), // tStatus + ).Return(nil).AnyTimes() + + // --- 2. Mock IaaS Client (Snapshots) --- + + iaasClient.EXPECT().CreateSnapshot( + gomock.Any(), // context + gomock.Any(), // payload + ).DoAndReturn(func(_ context.Context, payload iaas.CreateSnapshotPayload) (*iaas.Snapshot, error) { + newSnap := &iaas.Snapshot{ + Id: new(uuid.New().String()), + Name: payload.Name, + Status: new(stackitclient.SnapshotReadyStatus), + CreatedAt: new(time.Now()), + Size: new(int64(10)), // 10 GiB + VolumeId: payload.VolumeId, + } + createdSnapshots[*newSnap.Id] = newSnap + return newSnap, nil + }).AnyTimes() + + iaasClient.EXPECT().GetSnapshot( + gomock.Any(), // context + gomock.Any(), // snapshotID + ).DoAndReturn(func(_ context.Context, snapshotID string) (*iaas.Snapshot, error) { + snap, ok := createdSnapshots[snapshotID] + if !ok { + return nil, &oapierror.GenericOpenAPIError{StatusCode: http.StatusNotFound} + } + return snap, nil + }).AnyTimes() + + iaasClient.EXPECT().ListSnapshots( + gomock.Any(), // context + gomock.Any(), // filters + ).DoAndReturn(func(_ context.Context, filters map[string]string) ([]iaas.Snapshot, string, error) { + var snapshots []iaas.Snapshot + + markerFilter := filters["Marker"] + limitFilter := filters["Limit"] + nameFilter := filters["Name"] + volumeIDFilter := filters["VolumeID"] + + for _, value := range createdSnapshots { + if volumeIDFilter != "" { + if value.VolumeId == volumeIDFilter { + snapshots = append(snapshots, *value) + break + } + } else if nameFilter != "" { + if value.Name != nil && *value.Name == nameFilter { + snapshots = append(snapshots, *value) + break + } + } else { + snapshots = append(snapshots, *value) + } + } + + if markerFilter != "" { + marker, _ := strconv.Atoi(markerFilter) + + if marker >= 0 && marker < len(snapshots) { + snapshots = snapshots[marker:] + } else if marker >= len(snapshots) { + snapshots = []iaas.Snapshot{} + } + } + + retToken := "" + if limitFilter != "" { + limit, _ := strconv.Atoi(limitFilter) + + if limit > 0 && limit <= len(snapshots) { + snapshots = snapshots[:limit] + } + retToken = limitFilter + } + return snapshots, retToken, nil + }).AnyTimes() + + iaasClient.EXPECT().DeleteSnapshot( + gomock.Any(), // context + gomock.Any(), // snapshotID + ).DoAndReturn(func(_ context.Context, snapshotID string) error { + delete(createdSnapshots, snapshotID) + return nil + }).AnyTimes() + + iaasClient.EXPECT().WaitSnapshotReady( + gomock.Any(), // context + gomock.Any(), // snapshotID + ).Return( + new(stackitclient.SnapshotReadyStatus), + nil, + ).AnyTimes() + + // --- 3. Mock IaaS Client (Backups) --- + + iaasClient.EXPECT().CreateBackup( + gomock.Any(), // context + gomock.Any(), // name + gomock.Any(), // volID + gomock.Any(), // snapshotID + gomock.Any(), // tags + ).DoAndReturn(func(_ context.Context, name, volID, snapshotID string, _ map[string]string) (*iaas.Backup, error) { + newBackup := &iaas.Backup{ + Id: new(uuid.New().String()), + Name: new(name), + Status: new("AVAILABLE"), + VolumeId: new(volID), + SnapshotId: new(snapshotID), + CreatedAt: new(time.Now()), + } + createdBackups[*newBackup.Id] = newBackup + return newBackup, nil + }).AnyTimes() + + iaasClient.EXPECT().GetBackup( + gomock.Any(), // context + gomock.Any(), // backupID + ).DoAndReturn(func(_ context.Context, backupID string) (*iaas.Backup, error) { + backup, ok := createdBackups[backupID] + if !ok { + return nil, &oapierror.GenericOpenAPIError{StatusCode: http.StatusNotFound} + } + return backup, nil + }).AnyTimes() + + iaasClient.EXPECT().ListBackups( + gomock.Any(), // context + gomock.Any(), // filters + ).DoAndReturn(func(_ context.Context, _ map[string]string) ([]iaas.Backup, error) { + var backupList []iaas.Backup + for _, backup := range createdBackups { + backupList = append(backupList, *backup) + } + return backupList, nil + }).AnyTimes() + + iaasClient.EXPECT().DeleteBackup( + gomock.Any(), // context + gomock.Any(), // backupID + ).DoAndReturn(func(_ context.Context, backupID string) error { + delete(createdBackups, backupID) + return nil + }).AnyTimes() + + // --- 4. Mock IaaS Client (Instances & Attach/Detach) --- + + iaasClient.EXPECT().GetServer( + gomock.Any(), // context + gomock.Any(), // instanceID + ).DoAndReturn(func(_ context.Context, instanceID string) (*iaas.Server, error) { + if _, ok := createdInstances[FakeInstanceID]; !ok { + createdInstances[FakeInstanceID] = &iaas.Server{} + } + server, ok := createdInstances[instanceID] + if !ok { + return nil, &oapierror.GenericOpenAPIError{StatusCode: http.StatusNotFound} + } + return server, nil + }).AnyTimes() + + iaasClient.EXPECT().AttachVolume( + gomock.Any(), // context + gomock.Any(), // instanceID + gomock.Any(), // volumeID + gomock.Any(), // payload + ).DoAndReturn(func(_ context.Context, instanceID string, volumeID string, _ iaas.AddVolumeToServerPayload) (string, error) { + vol, ok := createdVolumes[volumeID] + if !ok { + return "", &oapierror.GenericOpenAPIError{StatusCode: http.StatusNotFound} + } + vol.ServerId = new(instanceID) + vol.Status = new("ATTACHED") + return *vol.Id, nil + }).AnyTimes() + + iaasClient.EXPECT().WaitDiskAttached( + gomock.Any(), // context + gomock.Any(), // instanceID + gomock.Any(), // volumeID + ).Return(nil).AnyTimes() + + iaasClient.EXPECT().DetachVolume( + gomock.Any(), // context + gomock.Any(), // instanceID + gomock.Any(), // volumeID + ).DoAndReturn(func(_ context.Context, _, volumeID string) error { + vol, ok := createdVolumes[volumeID] + if !ok { + return &oapierror.GenericOpenAPIError{StatusCode: http.StatusNotFound} + } + vol.ServerId = nil + vol.Status = new("AVAILABLE") + return nil + }).AnyTimes() + + iaasClient.EXPECT().WaitDiskDetached( + gomock.Any(), // context + gomock.Any(), // instanceID + gomock.Any(), // volumeID + ).Return(nil).AnyTimes() + + // --- 5. Mock Metadata Service --- + + metadataMock.EXPECT().GetInstanceID( + gomock.Any(), // context + ).Return( + FakeInstanceID, // A fake node ID for the NodeGetInfo test + nil, // no error + ).AnyTimes() + + metadataMock.EXPECT().GetFlavor( + gomock.Any(), // context + ).Return( + "mock-flavor", // A fake flavor name + nil, // no error + ).AnyTimes() + + metadataMock.EXPECT().GetAvailabilityZone( + gomock.Any(), // context + ).Return( + "eu01", // A fake availability zone + nil, // no error + ).AnyTimes() + + // --- 6. Mock Mount Utilities --- + + mountMock.EXPECT().UnmountPath( + gomock.Any(), // mountPath + ).DoAndReturn(func(mountPath string) error { //nolint:gocritic // false positive unlambda + return os.RemoveAll(mountPath) + }).AnyTimes() + + mountMock.EXPECT().MakeDir( + gomock.Any(), // pathname + ).Return(nil).AnyTimes() + + mountMock.EXPECT().MakeFile( + gomock.Any(), // pathname + ).Return(nil).AnyTimes() + + mountMock.EXPECT().GetDevicePath( + gomock.Any(), // volumeID + ).Return(FakeDevicePath, nil).AnyTimes() + + mountMock.EXPECT().GetDeviceStats( + gomock.Any(), // path + ).DoAndReturn(func(_ string) (*mount.DeviceStats, error) { + return &mount.DeviceStats{ + Block: true, + TotalBytes: 1000, + }, nil + }).AnyTimes() + + mountMock.EXPECT().GetMountFs( + gomock.Any(), // volumePath + ).DoAndReturn(func(volumePath string) ([]byte, error) { + args := []string{"-o", "source", "--first-only", "--noheadings", "--target", volumePath} + return safeMounter.Exec.Command("findmnt", args...).CombinedOutput() + }).AnyTimes() + + mountMock.EXPECT().IsLikelyNotMountPointAttach( + gomock.Any(), // targetpath + ).DoAndReturn(func(mountPath string) (bool, error) { + // This complex mock is needed for the sanity test. + // It checks if the path exists, and if not, *creates it* + // to simulate what NodeStageVolume is expected to do. + notMnt, err := safeMounter.IsLikelyNotMountPoint(mountPath) + if err != nil { + if os.IsNotExist(err) { + // Create the directory on the real filesystem + if errMkdir := os.MkdirAll(mountPath, 0750); errMkdir != nil { + return false, errMkdir + } + // Successfully created the dir, so it's not a mount point + return true, nil + } + // It was some other error + return false, err + } + // Path existed, return its original status + return notMnt, nil + }).AnyTimes() + + mountMock.EXPECT().Mounter().Return(safeMounter).AnyTimes() + + // --- Driver Setup & Run --- + driver.SetupControllerService(iaasClient) + driver.SetupNodeService(mountMock, metadataMock, stackitconfig.BlockStorageOpts{}) + + go func() { + defer GinkgoRecover() + driver.Run() + }() + }) + + AfterEach(func() { + os.Remove(Socket) + }) + + Describe("CSI sanity", func() { + BeforeEach(func() { + if CurrentSpecReport().LeafNodeText == "should return next token when a limited number of entries are requested" && + CurrentSpecReport().FullText() == "CSI sanity test Base config CSI sanity ListSnapshots [Controller Server] should return next token when a limited number of entries are requested" { + Skip("ListSnapshots pagination is intentionally not supported by this driver") + } + }) + + config := sanity.NewTestConfig() + config.Address = FakeEndpoint + + sanity.GinkgoTest(&config) + }) + + }) +}) diff --git a/pkg/csi/blockstorage/server.go b/pkg/csi/blockstorage/server.go index c0112f03..735eb60e 100644 --- a/pkg/csi/blockstorage/server.go +++ b/pkg/csi/blockstorage/server.go @@ -105,7 +105,7 @@ func (s *nonBlockingGRPCServer) serve(endpoint string, ids csi.IdentityServer, c csi.RegisterNodeServer(server, ns) } - klog.Infof("Listening for connections on address: %#v", listener.Addr()) + klog.Infof("Listening for connections on address: %s", listener.Addr().String()) if err := server.Serve(listener); err != nil { klog.Infof("Server stopped with: %v", err) diff --git a/pkg/csi/blockstorage/utils.go b/pkg/csi/blockstorage/utils.go index eec4015b..cafa546e 100644 --- a/pkg/csi/blockstorage/utils.go +++ b/pkg/csi/blockstorage/utils.go @@ -7,7 +7,8 @@ import ( "sync/atomic" "github.com/stackitcloud/cloud-provider-stackit/pkg/csi/util/mount" - "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit" + stackitclient "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/client" + stackitconfig "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/config" "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/metadata" "github.com/container-storage-interface/spec/lib/go/csi" @@ -16,7 +17,7 @@ import ( "k8s.io/klog/v2" ) -var serverGRPCEndpointCallCounter uint64 +var serverGRPCEndpointCallCounter atomic.Uint64 func NewControllerServiceCapability(rpcType csi.ControllerServiceCapability_RPC_Type) *csi.ControllerServiceCapability { return &csi.ControllerServiceCapability{ @@ -43,7 +44,7 @@ func NewVolumeCapabilityAccessMode(mode csi.VolumeCapability_AccessMode_Mode) *c } //revive:disable:unexported-return -func NewControllerServer(d *Driver, instance stackit.IaasClient) *controllerServer { +func NewControllerServer(d *Driver, instance stackitclient.IaaSClient) *controllerServer { return &controllerServer{ Driver: d, Instance: instance, @@ -56,7 +57,7 @@ func NewIdentityServer(d *Driver) *identityServer { } } -func NewNodeServer(d *Driver, mountProvider mount.IMount, metadataProvider metadata.IMetadata, opts stackit.BlockStorageOpts) *nodeServer { //nolint:lll // looks weird when shortened +func NewNodeServer(d *Driver, mountProvider mount.IMount, metadataProvider metadata.IMetadata, opts stackitconfig.BlockStorageOpts) *nodeServer { //nolint:lll // looks weird when shortened return &nodeServer{ Driver: d, Mount: mountProvider, @@ -83,25 +84,8 @@ func ParseEndpoint(ep string) (proto, addr string, err error) { return "", "", fmt.Errorf("invalid endpoint: %v", ep) } -func DetermineMaxVolumesByFlavor(flavor string) int64 { - flavorParts := strings.Split(flavor, ".") - - // The following numbers were specified by the IaaS team. They are based on actual tests. - switch { - case strings.HasPrefix(flavor, "n"): - // Flavors starting with 'n' are nvidia GPU flavors, all GPU VM's can only mount 10 volumes - return 10 - case strings.HasSuffix(flavorParts[0], "2a"): - // AMD 2nd Gen - return 159 - default: - // All other flavors can mount 28 volumes - return 25 - } -} - -func logGRPC(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (interface{}, error) { - callID := atomic.AddUint64(&serverGRPCEndpointCallCounter, 1) +func logGRPC(ctx context.Context, req any, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (any, error) { + callID := serverGRPCEndpointCallCounter.Add(1) klog.V(3).Infof("[ID:%d] GRPC call: %s", callID, info.FullMethod) klog.V(5).Infof("[ID:%d] GRPC request: %s", callID, protosanitizer.StripSecrets(req)) diff --git a/pkg/csi/blockstorage/utils_test.go b/pkg/csi/blockstorage/utils_test.go deleted file mode 100644 index f9261de4..00000000 --- a/pkg/csi/blockstorage/utils_test.go +++ /dev/null @@ -1,25 +0,0 @@ -package blockstorage - -import ( - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" -) - -var _ = Describe("Util Test", func() { - - Context("DetermineMaxVolumesByFlavor", func() { - DescribeTable("should return the correct maximum volume count for different flavors", func(flavor string, expectedMaxVolumes int) { - maxVolumes := DetermineMaxVolumesByFlavor(flavor) - Expect(maxVolumes).To(Equal(int64(expectedMaxVolumes))) - }, - Entry("Intel 3rd Gen", "c3i.2", 25), - Entry("Intel 2rd Gen", "c2i.2", 25), - Entry("Intel 1st Gen", "c1.2", 25), - Entry("AMD 1st Gen without overprovisioning", "s1a.8d", 25), - Entry("AMD 2nd Gen without overprovisioning", "s2a.8d", 159), - Entry("Nvidia GPU", "n2.14d.g1", 10), - Entry("Nvidia GPU", "n2.56d.g4", 10), - Entry("ARM Gen1Link without CPU-overprovisioning ARM Gen1", "g1r.4d", 25), - ) - }) -}) diff --git a/pkg/csi/util/mount/mount.go b/pkg/csi/util/mount/mount.go index a51496ca..0e458cc5 100644 --- a/pkg/csi/util/mount/mount.go +++ b/pkg/csi/util/mount/mount.go @@ -20,6 +20,7 @@ import ( "fmt" "os" "path" + "slices" "strings" "time" @@ -171,12 +172,10 @@ func (m *Mount) getDevicePathBySerialID(volumeID string) string { } for _, f := range files { - for _, c := range candidateDeviceNodes { - if c == f.Name() { - klog.V(4).Infof("Found disk attached as %q; full devicepath: %s\n", - f.Name(), path.Join("/dev/disk/by-id/", f.Name())) - return path.Join("/dev/disk/by-id/", f.Name()) - } + if slices.Contains(candidateDeviceNodes, f.Name()) { + klog.V(4).Infof("Found disk attached as %q; full devicepath: %s\n", + f.Name(), path.Join("/dev/disk/by-id/", f.Name())) + return path.Join("/dev/disk/by-id/", f.Name()) } } diff --git a/pkg/csi/util/mount/mount_darwin.go b/pkg/csi/util/mount/mount_darwin.go index 122f4c1c..34d63055 100644 --- a/pkg/csi/util/mount/mount_darwin.go +++ b/pkg/csi/util/mount/mount_darwin.go @@ -17,3 +17,13 @@ func newDeviceStats(statfs *unix.Statfs_t) *DeviceStats { UsedInodes: int64(statfs.Files) - int64(statfs.Ffree), } } + +func CountLocalCSIVolumes(_ string) (int64, error) { + // not implemented + return 0, nil +} + +func CountFreePCIeSlots() (int64, error) { + // not implemented + return 0, nil +} diff --git a/pkg/csi/util/mount/mount_helper.go b/pkg/csi/util/mount/mount_helper.go new file mode 100644 index 00000000..e74e4064 --- /dev/null +++ b/pkg/csi/util/mount/mount_helper.go @@ -0,0 +1,121 @@ +package mount + +import ( + "bytes" + "encoding/json" + "fmt" + "os" + "path/filepath" + + "k8s.io/klog/v2" +) + +var ( + // pciClassBridgePCI matches the Linux PCI-to-PCI bridge class prefix. + pciClassBridgePCI = []byte("0x0604") +) + +const ( + globalMountDir = "globalmount" + volumeDevicesDir = "volumeDevices" + volumeDataDir = "data" + volumeDataFile = "vol_data.json" + driverNameKey = "driverName" +) + +func countFreePCIeSlotsAt(devicesPath string) (int64, error) { + devices, err := os.ReadDir(devicesPath) + if err != nil { + return 0, fmt.Errorf("failed to read PCI bus: %w", err) + } + + var freePCIeSlots int64 + + for _, dev := range devices { + devPath := filepath.Join(devicesPath, dev.Name()) + + classBuf, err := os.ReadFile(filepath.Join(devPath, "class")) + if err != nil { + klog.Errorf("failed to read PCI device class %s: %v", devPath, err) + continue + } + + if !bytes.HasPrefix(bytes.TrimSpace(classBuf), pciClassBridgePCI) { + continue + } + + children, err := filepath.Glob(filepath.Join(devPath, "????:??:??.?")) + if err != nil { + klog.Errorf("failed to glob PCI children for %s: %v", devPath, err) + continue + } + + if len(children) == 0 { + freePCIeSlots++ + } + } + + return freePCIeSlots, nil +} + +func countLocalCSIVolumesAt(csiPluginDir, driverName string) (int64, error) { + driverPluginDir := filepath.Join(csiPluginDir, driverName) + + filesystemVolumes, err := countLocalCSIFilesystemVolumesAt(driverPluginDir) + if err != nil { + return 0, err + } + + blockVolumes, err := countLocalCSIBlockVolumesAt(csiPluginDir, driverName) + if err != nil { + return 0, err + } + + return filesystemVolumes + blockVolumes, nil +} + +func countLocalCSIFilesystemVolumesAt(driverPluginDir string) (int64, error) { + volumeMounts, err := filepath.Glob(filepath.Join(driverPluginDir, "*", globalMountDir)) + if err != nil { + return 0, fmt.Errorf("failed to glob CSI volume mounts in %s: %w", driverPluginDir, err) + } + + return int64(len(volumeMounts)), nil +} + +func countLocalCSIBlockVolumesAt(csiPluginDir, driverName string) (int64, error) { + volumeMetadataFiles, err := filepath.Glob(filepath.Join(csiPluginDir, volumeDevicesDir, "*", volumeDataDir, volumeDataFile)) + if err != nil { + return 0, fmt.Errorf("failed to glob CSI block volume metadata in %s: %w", csiPluginDir, err) + } + + var blockVolumes int64 + + for _, metadataPath := range volumeMetadataFiles { + metadata, err := readCSIVolumeDeviceMetadata(metadataPath) + if err != nil { + klog.Errorf("failed to read CSI block volume metadata %s: %v", metadataPath, err) + continue + } + + if metadata[driverNameKey] == driverName { + blockVolumes++ + } + } + + return blockVolumes, nil +} + +func readCSIVolumeDeviceMetadata(metadataPath string) (map[string]string, error) { + metadataBuf, err := os.ReadFile(metadataPath) + if err != nil { + return nil, fmt.Errorf("read file: %w", err) + } + + var metadata map[string]string + if err := json.Unmarshal(metadataBuf, &metadata); err != nil { + return nil, fmt.Errorf("parse JSON: %w", err) + } + + return metadata, nil +} diff --git a/pkg/csi/util/mount/mount_helper_test.go b/pkg/csi/util/mount/mount_helper_test.go new file mode 100644 index 00000000..5cd9cd89 --- /dev/null +++ b/pkg/csi/util/mount/mount_helper_test.go @@ -0,0 +1,199 @@ +package mount + +import ( + "os" + "path/filepath" + + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" +) + +var _ = Describe("Mount helpers", func() { + Describe("countFreePCIeSlotsAt", func() { + It("returns an error when the PCI devices root is missing", func() { + _, err := countFreePCIeSlotsAt(filepath.Join(GinkgoT().TempDir(), "missing")) + Expect(err).To(HaveOccurred()) + }) + + It("counts only free bridge-backed PCIe slots", func() { + devicesPath := GinkgoT().TempDir() + + createPCIDevice(devicesPath, "0000:00:00.0", "0x060400") + createPCIDevice(devicesPath, "0000:00:01.0", "0x060400", "0000:01:00.0") + createPCIDevice(devicesPath, "0000:00:02.0", "0x010000", "0000:02:00.0") + + count, err := countFreePCIeSlotsAt(devicesPath) + Expect(err).NotTo(HaveOccurred()) + Expect(count).To(Equal(int64(1))) + }) + + It("skips devices whose class cannot be read", func() { + devicesPath := GinkgoT().TempDir() + + createPCIDevice(devicesPath, "0000:00:00.0", "0x060400") + mustMkdirAll(filepath.Join(devicesPath, "0000:00:01.0")) + + count, err := countFreePCIeSlotsAt(devicesPath) + Expect(err).NotTo(HaveOccurred()) + Expect(count).To(Equal(int64(1))) + }) + + It("ignores non-PCI child entries when checking bridge occupancy", func() { + devicesPath := GinkgoT().TempDir() + devPath := filepath.Join(devicesPath, "0000:00:00.0") + mustMkdirAll(devPath) + mustWriteFile(filepath.Join(devPath, "class"), "0x060400") + mustMkdirAll(filepath.Join(devPath, "driver")) + mustMkdirAll(filepath.Join(devPath, "not-a-pci-child")) + + count, err := countFreePCIeSlotsAt(devicesPath) + Expect(err).NotTo(HaveOccurred()) + Expect(count).To(Equal(int64(1))) + }) + }) + + Describe("countLocalCSIVolumesAt", func() { + It("returns zero for a missing driver directory", func() { + tempDir := GinkgoT().TempDir() + + count, err := countLocalCSIVolumesAt(tempDir, "block-storage.csi.stackit.cloud") + Expect(err).NotTo(HaveOccurred()) + Expect(count).To(BeZero()) + }) + + It("counts filesystem and block volumes together", func() { + csiPluginDir := GinkgoT().TempDir() + driverPluginDir := filepath.Join(csiPluginDir, "block-storage.csi.stackit.cloud") + + mustMkdirAll(filepath.Join(driverPluginDir, "volume-a", globalMountDir)) + mustMkdirAll(filepath.Join(driverPluginDir, "volume-b", globalMountDir)) + mustMkdirAll(filepath.Join(driverPluginDir, "volume-c", "not-a-globalmount")) + mustWriteVolumeMetadata(csiPluginDir, "block-volume-a", "block-storage.csi.stackit.cloud") + mustWriteVolumeMetadata(csiPluginDir, "block-volume-b", "block-storage.csi.stackit.cloud") + mustWriteVolumeMetadata(csiPluginDir, "other-driver-volume", "other.csi.example") + + count, err := countLocalCSIVolumesAt(csiPluginDir, "block-storage.csi.stackit.cloud") + Expect(err).NotTo(HaveOccurred()) + Expect(count).To(Equal(int64(4))) + }) + + It("returns zero for an empty driver directory", func() { + csiPluginDir := GinkgoT().TempDir() + + count, err := countLocalCSIVolumesAt(csiPluginDir, "block-storage.csi.stackit.cloud") + Expect(err).NotTo(HaveOccurred()) + Expect(count).To(BeZero()) + }) + + It("returns zero when the computed driver path is a file", func() { + csiPluginDir := GinkgoT().TempDir() + driverPluginDir := filepath.Join(csiPluginDir, "block-storage.csi.stackit.cloud") + mustWriteFile(driverPluginDir, "not a directory") + + count, err := countLocalCSIVolumesAt(csiPluginDir, "block-storage.csi.stackit.cloud") + Expect(err).NotTo(HaveOccurred()) + Expect(count).To(BeZero()) + }) + + It("still counts filesystem volumes when volumeDevices is missing", func() { + csiPluginDir := GinkgoT().TempDir() + driverPluginDir := filepath.Join(csiPluginDir, "block-storage.csi.stackit.cloud") + mustMkdirAll(filepath.Join(driverPluginDir, "volume-a", globalMountDir)) + + count, err := countLocalCSIVolumesAt(csiPluginDir, "block-storage.csi.stackit.cloud") + Expect(err).NotTo(HaveOccurred()) + Expect(count).To(Equal(int64(1))) + }) + + It("ignores block metadata for other CSI drivers", func() { + csiPluginDir := GinkgoT().TempDir() + mustWriteVolumeMetadata(csiPluginDir, "block-volume-a", "other.csi.example") + + count, err := countLocalCSIVolumesAt(csiPluginDir, "block-storage.csi.stackit.cloud") + Expect(err).NotTo(HaveOccurred()) + Expect(count).To(BeZero()) + }) + + It("counts volumes for a non-default CSI driver name", func() { + csiPluginDir := GinkgoT().TempDir() + driverName := "other.csi.example" + driverPluginDir := filepath.Join(csiPluginDir, driverName) + + mustMkdirAll(filepath.Join(driverPluginDir, "volume-a", globalMountDir)) + mustWriteVolumeMetadata(csiPluginDir, "block-volume-a", driverName) + mustWriteVolumeMetadata(csiPluginDir, "block-volume-b", "block-storage.csi.stackit.cloud") + + count, err := countLocalCSIVolumesAt(csiPluginDir, driverName) + Expect(err).NotTo(HaveOccurred()) + Expect(count).To(Equal(int64(2))) + }) + + It("skips malformed or unreadable block metadata files", func() { + csiPluginDir := GinkgoT().TempDir() + mustWriteVolumeMetadata(csiPluginDir, "good-volume", "block-storage.csi.stackit.cloud") + malformedPath := filepath.Join(csiPluginDir, volumeDevicesDir, "malformed-volume", volumeDataDir, volumeDataFile) + mustMkdirAll(filepath.Dir(malformedPath)) + mustWriteFile(malformedPath, "{not-json") + unreadablePath := filepath.Join(csiPluginDir, volumeDevicesDir, "unreadable-volume", volumeDataDir, volumeDataFile) + mustMkdirAll(filepath.Dir(unreadablePath)) + mustWriteFile(unreadablePath, `{"driverName":"block-storage.csi.stackit.cloud"}`) + Expect(os.Chmod(unreadablePath, 0o000)).To(Succeed()) + defer func() { + Expect(os.Chmod(unreadablePath, 0o644)).To(Succeed()) + }() + + count, err := countLocalCSIVolumesAt(csiPluginDir, "block-storage.csi.stackit.cloud") + Expect(err).NotTo(HaveOccurred()) + Expect(count).To(Equal(int64(1))) + }) + + It("does not count publish or staging directories without metadata", func() { + csiPluginDir := GinkgoT().TempDir() + mustMkdirAll(filepath.Join(csiPluginDir, volumeDevicesDir, "spec-a", "publish", "pod-a")) + mustMkdirAll(filepath.Join(csiPluginDir, volumeDevicesDir, "spec-b", "staging")) + + count, err := countLocalCSIVolumesAt(csiPluginDir, "block-storage.csi.stackit.cloud") + Expect(err).NotTo(HaveOccurred()) + Expect(count).To(BeZero()) + }) + }) + + Describe("countLocalCSIBlockVolumesAt", func() { + It("returns zero when volumeDevices is missing", func() { + count, err := countLocalCSIBlockVolumesAt(GinkgoT().TempDir(), "block-storage.csi.stackit.cloud") + Expect(err).NotTo(HaveOccurred()) + Expect(count).To(BeZero()) + }) + }) +}) + +func createPCIDevice(rootPath, deviceName, class string, children ...string) { + GinkgoHelper() + + devPath := filepath.Join(rootPath, deviceName) + mustMkdirAll(devPath) + mustWriteFile(filepath.Join(devPath, "class"), class) + + for _, child := range children { + mustMkdirAll(filepath.Join(devPath, child)) + } +} + +func mustMkdirAll(path string) { + GinkgoHelper() + Expect(os.MkdirAll(path, 0o755)).To(Succeed()) +} + +func mustWriteFile(path, content string) { + GinkgoHelper() + mustMkdirAll(filepath.Dir(path)) + Expect(os.WriteFile(path, []byte(content), 0o644)).To(Succeed()) +} + +func mustWriteVolumeMetadata(csiPluginDir, volumeName, driverName string) { + GinkgoHelper() + mustWriteFile( + filepath.Join(csiPluginDir, volumeDevicesDir, volumeName, volumeDataDir, volumeDataFile), + `{"driverName":"`+driverName+`"}`, + ) +} diff --git a/pkg/csi/util/mount/mount_linux.go b/pkg/csi/util/mount/mount_linux.go index b525b753..2ae3f423 100644 --- a/pkg/csi/util/mount/mount_linux.go +++ b/pkg/csi/util/mount/mount_linux.go @@ -2,7 +2,16 @@ package mount -import "golang.org/x/sys/unix" +import ( + "path/filepath" + + "golang.org/x/sys/unix" +) + +const ( + pciDevicesPath = "/sys/bus/pci/devices" + kubeletDir = "/var/lib/kubelet" +) func newDeviceStats(statfs *unix.Statfs_t) *DeviceStats { return &DeviceStats{ @@ -17,3 +26,14 @@ func newDeviceStats(statfs *unix.Statfs_t) *DeviceStats { UsedInodes: int64(statfs.Files) - int64(statfs.Ffree), } } + +// CountFreePCIeSlots returns the number of PCIe root ports that are not occupied. +func CountFreePCIeSlots() (int64, error) { + return countFreePCIeSlotsAt(pciDevicesPath) +} + +// CountLocalCSIVolumes counts staged CSI volumes for the given driver. +func CountLocalCSIVolumes(driverName string) (int64, error) { + csiPluginDir := filepath.Join(kubeletDir, "plugins", "kubernetes.io", "csi") + return countLocalCSIVolumesAt(csiPluginDir, driverName) +} diff --git a/pkg/csi/util/mount/suite_test.go b/pkg/csi/util/mount/suite_test.go new file mode 100644 index 00000000..02e3ae62 --- /dev/null +++ b/pkg/csi/util/mount/suite_test.go @@ -0,0 +1,13 @@ +package mount + +import ( + "testing" + + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" +) + +func TestMount(t *testing.T) { + RegisterFailHandler(Fail) + RunSpecs(t, "Mount Suite") +} diff --git a/pkg/csi/util/util.go b/pkg/csi/util/util.go index f57f171b..ef29d42b 100644 --- a/pkg/csi/util/util.go +++ b/pkg/csi/util/util.go @@ -8,6 +8,13 @@ const ( TEBIBYTE ) +const ( + FSTypeExt3 = "ext3" + FSTypeExt4 = "ext4" + FSTypeXfs = "xfs" + FSTypeBtrfs = "btrfs" +) + // RoundUpSize calculates how many allocation units are needed to accommodate // a volume of given size. E.g. when user wants 1500MiB volume, while AWS EBS // allocates volumes in gibibyte-sized chunks, diff --git a/pkg/metrics/http.go b/pkg/metrics/http.go index 047032e6..02de268f 100644 --- a/pkg/metrics/http.go +++ b/pkg/metrics/http.go @@ -1,69 +1,128 @@ package metrics import ( - "fmt" "net/http" + "runtime" + "strconv" "strings" "time" + "unicode" + "unicode/utf8" "github.com/prometheus/client_golang/prometheus" ) -func NewInstrumentedHTTPClient() *http.Client { - return &http.Client{ - Transport: &InstrumentedRoundTripper{http.DefaultTransport}, +const UnknownOperation = "UnknownOperation" + +func NewHTTPClient(componentName string) *http.Client { + return WrapHTTPClient(http.DefaultClient, componentName) +} + +func WrapHTTPClient(client *http.Client, componentName string) *http.Client { + if client == nil { + return nil } + wrappedClient := *client + + baseTransport := client.Transport + if baseTransport == nil { + baseTransport = http.DefaultTransport + } + + // Chain your instrumented round tripper + wrappedClient.Transport = &InstrumentedRoundTripper{ + base: baseTransport, + componentName: componentName, + } + + return &wrappedClient } type InstrumentedRoundTripper struct { - base http.RoundTripper + base http.RoundTripper + componentName string } func (rt *InstrumentedRoundTripper) RoundTrip(request *http.Request) (*http.Response, error) { - operation := operationFromRequest(request) - startTime := time.Now() response, err := rt.base.RoundTrip(request) duration := time.Since(startTime) - LoadBalancerResponseTimeHistogram. - With(prometheus.Labels{operationLabel: operation}). - Observe(float64(duration.Seconds())) - LoadBalancerRequestCount. - With(prometheus.Labels{operationLabel: operation}). - Inc() + statusCode := "network_error" + if response != nil { + statusCode = strconv.Itoa(response.StatusCode) + } + + // request.Host is optional so we can fallback to request.URL.Host (if available) + host := request.Host + if host == "" && request.URL != nil { + host = request.URL.Host + } + + labels := prometheus.Labels{ + componentLabel: rt.componentName, + hostLabel: host, + methodLabel: request.Method, + operationLabel: getSDKOperationName(), + codeLabel: statusCode, + } - if response != nil && response.StatusCode >= http.StatusInternalServerError { - LoadBalancerErrorCount.Inc() + HTTPRequestDurationHistogram.With(labels).Observe(duration.Seconds()) + HTTPRequestCount.With(labels).Inc() + + isHTTPError := response != nil && response.StatusCode >= 400 + isNetworkError := err != nil + + if isHTTPError || isNetworkError { + HTTPErrorCount.With(labels).Inc() } return response, err } -func operationFromRequest(request *http.Request) string { - verb := strings.ToLower(request.Method) +// getSDKOperationName returns the name of the STACKIT SDK function. To do this the function gets the last 10 callers and checks +// for functions from the stackitcloud/stackit-sdk-go. It fall back to UnknownOperation if no function was found. +func getSDKOperationName() string { + pc := make([]uintptr, 10) - pathElements := strings.Split(request.URL.Path, "/") - if len(pathElements) <= 1 { - return fmt.Sprintf("%s_%s", verb, request.URL.Path) + // Skip 3 because the first 3 are always Callers, getSDKOperationName, RoundTrip. + n := runtime.Callers(3, pc) + if n == 0 { + return UnknownOperation } - // since the path starts with a '/', the first path element is the empty string - pathElements = pathElements[1:] - - // the subject is always the last or the second to last element: - // .../subject -> even number of path elements - // .../subject/ -> odd number of path elements - var subject string - if len(pathElements) == 1 { - // edge case - subject = pathElements[0] - } else if len(pathElements)%2 == 0 { - // even - subject = pathElements[len(pathElements)-1] - } else { - // odd - subject = pathElements[len(pathElements)-2] + "_instance" + + frames := runtime.CallersFrames(pc[:n]) + moreFrames := true + for moreFrames { + var frame runtime.Frame + frame, moreFrames = frames.Next() + + if !strings.Contains(frame.Function, "stackitcloud/stackit-sdk-go") { + continue + } + + parts := strings.Split(frame.Function, ".") + if len(parts) > 0 { + funcName := parts[len(parts)-1] + + // Skip function names with 0 len + // Skip Execute, because there is a function with more detailed name + // Skip RoundTrip, because this only the RoundTrip for the AuthFlow + if funcName == "" || + funcName == "Execute" || + funcName == "RoundTrip" { + continue + } + + // Skip Private functions + r, _ := utf8.DecodeRuneInString(funcName) + if !unicode.IsUpper(r) { + continue + } + + return strings.TrimSuffix(funcName, "Execute") + } } - return fmt.Sprintf("%s_%s", verb, subject) + return UnknownOperation } diff --git a/pkg/metrics/http_test.go b/pkg/metrics/http_test.go index 1ffcc08f..a9fa6b85 100644 --- a/pkg/metrics/http_test.go +++ b/pkg/metrics/http_test.go @@ -1,25 +1,216 @@ package metrics import ( + "context" "net/http" + "net/http/httptest" "net/url" + "github.com/google/uuid" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" + "github.com/prometheus/client_golang/prometheus" + "github.com/prometheus/client_golang/prometheus/testutil" + dto "github.com/prometheus/client_model/go" + sdkconfig "github.com/stackitcloud/stackit-sdk-go/core/config" + iaas "github.com/stackitcloud/stackit-sdk-go/services/iaas/v2api" ) var _ = Describe("Metrics", func() { - DescribeTable("operationFromRequest", func(method, path, expected string) { - requestURL, _ := url.Parse("https://host" + path) - request := &http.Request{ - Method: method, - URL: requestURL, - } - op := operationFromRequest(request) - Expect(op).To(Equal(expected)) - }, - Entry("post token", "POST", "/token", "post_token"), - Entry("get load-balancers", "GET", "/v2/projects/6-a-4-8-c/regions/eu01/load-balancers", "get_load-balancers"), - Entry("get load-balancers instance", "GET", "/v2/projects/6-a-4-8-c/regions/eu01/load-balancers/id", "get_load-balancers_instance"), - ) + Describe("getSDKOperationName", func() { + var ( + server *httptest.Server + host string + component = "test" + iaasClient *iaas.APIClient + ) + + BeforeEach(func() { + server = httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { + w.WriteHeader(http.StatusOK) + })) + url, err := url.Parse(server.URL) + Expect(err).NotTo(HaveOccurred()) + host = url.Host + + HTTPRequestCount.Reset() + HTTPErrorCount.Reset() + HTTPRequestDurationHistogram.Reset() + + iaasClient, err = iaas.NewAPIClient( + sdkconfig.WithHTTPClient(NewHTTPClient(component)), + sdkconfig.WithEndpoint(server.URL), + sdkconfig.WithoutAuthentication(), + ) + Expect(err).NotTo(HaveOccurred()) + }) + + AfterEach(func() { + server.Close() + }) + + It("should return DeleteVolume as operation", func() { + err := iaasClient.DefaultAPI.DeleteVolume(context.TODO(), uuid.New().String(), "", uuid.New().String()).Execute() + Expect(err).NotTo(HaveOccurred()) + + labels := prometheus.Labels{ + hostLabel: host, + componentLabel: component, + methodLabel: "DELETE", + operationLabel: "DeleteVolume", + codeLabel: "200", + } + + Expect(testutil.ToFloat64(HTTPRequestCount.With(labels))).To(Equal(float64(1))) + }) + + It("should return DeleteServer as operation", func() { + err := iaasClient.DefaultAPI.DeleteServer(context.TODO(), uuid.New().String(), "", uuid.New().String()).Execute() + Expect(err).NotTo(HaveOccurred()) + + labels := prometheus.Labels{ + hostLabel: host, + componentLabel: component, + methodLabel: "DELETE", + operationLabel: "DeleteServer", + codeLabel: "200", + } + + Expect(testutil.ToFloat64(HTTPRequestCount.With(labels))).To(Equal(float64(1))) + }) + }) + + Describe("InstrumentedRoundTripper", func() { + var ( + server *httptest.Server + httpClient *http.Client + host string + component = "test" + ) + + BeforeEach(func() { + server = httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + switch r.URL.Path { + case "/404": + w.WriteHeader(http.StatusNotFound) + case "/500": + w.WriteHeader(http.StatusInternalServerError) + case "/400": + w.WriteHeader(http.StatusBadRequest) + default: + w.WriteHeader(http.StatusOK) + } + })) + url, err := url.Parse(server.URL) + Expect(err).NotTo(HaveOccurred()) + host = url.Host + httpClient = NewHTTPClient(component) + + HTTPRequestCount.Reset() + HTTPErrorCount.Reset() + HTTPRequestDurationHistogram.Reset() + }) + + AfterEach(func() { + server.Close() + }) + + It("increments HTTPRequestCount for responses", func() { + labels := prometheus.Labels{ + hostLabel: host, + componentLabel: component, + methodLabel: "GET", + operationLabel: UnknownOperation, + codeLabel: "200", + } + + response, err := httpClient.Get(server.URL + "/request-count-test") + Expect(err).NotTo(HaveOccurred()) + defer response.Body.Close() + + Expect(testutil.ToFloat64(HTTPRequestCount.With(labels))).To(Equal(float64(1))) + }) + + It("records HTTPRequestDurationHistogram observations for responses", func() { + labels := prometheus.Labels{ + hostLabel: host, + componentLabel: component, + methodLabel: "GET", + operationLabel: UnknownOperation, + codeLabel: "200", + } + + response, err := httpClient.Get(server.URL + "/request-duration-test") + Expect(err).NotTo(HaveOccurred()) + defer response.Body.Close() + + Expect(histogramSampleCount(HTTPRequestDurationHistogram.With(labels))).To(Equal(uint64(1))) + }) + + It("increments HTTPErrorCount for error responses (400, 404, 500)", func() { + labels400 := prometheus.Labels{ + hostLabel: host, + componentLabel: component, + methodLabel: http.MethodGet, + operationLabel: UnknownOperation, + codeLabel: "400", + } + labels404 := prometheus.Labels{ + hostLabel: host, + componentLabel: component, + methodLabel: http.MethodGet, + operationLabel: UnknownOperation, + codeLabel: "404", + } + labels500 := prometheus.Labels{ + hostLabel: host, + componentLabel: component, + methodLabel: http.MethodPost, + operationLabel: UnknownOperation, + codeLabel: "500", + } + + response1, err := httpClient.Get(server.URL + "/400") + Expect(err).NotTo(HaveOccurred()) + defer response1.Body.Close() + + response2, err := httpClient.Get(server.URL + "/404") + Expect(err).NotTo(HaveOccurred()) + defer response2.Body.Close() + + response3, err := httpClient.Post(server.URL+"/500", "application/json", nil) + Expect(err).NotTo(HaveOccurred()) + defer response3.Body.Close() + + Expect(testutil.ToFloat64(HTTPErrorCount.With(labels400))).To(Equal(float64(1))) + Expect(testutil.ToFloat64(HTTPErrorCount.With(labels404))).To(Equal(float64(1))) + Expect(testutil.ToFloat64(HTTPErrorCount.With(labels500))).To(Equal(float64(1))) + }) + + It("does not increment HTTPErrorCount for successful responses", func() { + labels := prometheus.Labels{ + hostLabel: host, + componentLabel: component, + methodLabel: http.MethodGet, + operationLabel: UnknownOperation, + codeLabel: "200", + } + + response, err := httpClient.Get(server.URL) + Expect(err).NotTo(HaveOccurred()) + defer response.Body.Close() + + Expect(testutil.ToFloat64(HTTPErrorCount.With(labels))).To(Equal(float64(0))) + }) + }) }) + +func histogramSampleCount(observer prometheus.Observer) uint64 { + metric, ok := observer.(prometheus.Metric) + Expect(ok).To(BeTrue()) + + dtoMetric := &dto.Metric{} + Expect(metric.Write(dtoMetric)).To(Succeed()) + + return dtoMetric.GetHistogram().GetSampleCount() +} diff --git a/pkg/metrics/metrics.go b/pkg/metrics/metrics.go index dd21347f..d6ad9db2 100644 --- a/pkg/metrics/metrics.go +++ b/pkg/metrics/metrics.go @@ -5,63 +5,49 @@ import ( ) const ( - cloudProviderMetricPrefix = "cloud_provider_stackit" - loadBalancerSubSystem = "lb" - operationLabel = "op" + metricPrefix = "stackit_api" + componentLabel = "component" + hostLabel = "host" + methodLabel = "method" + operationLabel = "operation" + codeLabel = "status_code" ) var ( - LoadBalancerRequestCount = prometheus.NewCounterVec(prometheus.CounterOpts{ - Namespace: cloudProviderMetricPrefix, - Subsystem: loadBalancerSubSystem, - Name: "requests_total", - Help: "the number of requests to the load balancer API", - ConstLabels: nil, - }, []string{operationLabel}) - - LoadBalancerErrorCount = prometheus.NewCounter(prometheus.CounterOpts{ - Namespace: cloudProviderMetricPrefix, - Subsystem: loadBalancerSubSystem, - Name: "errors_total", - Help: "the number of server errors reported when calling the load balancer API", - ConstLabels: nil, - }) - - LoadBalancerResponseTimeHistogram = prometheus.NewHistogramVec(prometheus.HistogramOpts{ - Namespace: cloudProviderMetricPrefix, - Subsystem: loadBalancerSubSystem, - Name: "request_duration_seconds", - Help: "the response times of the load balancer API", - ConstLabels: nil, - Buckets: nil, - }, []string{operationLabel}) + HTTPRequestCount = prometheus.NewCounterVec(prometheus.CounterOpts{ + Namespace: metricPrefix, + Name: "http_requests_total", + Help: "The number of requests to external APIs", + }, []string{componentLabel, hostLabel, methodLabel, operationLabel, codeLabel}) + + HTTPErrorCount = prometheus.NewCounterVec(prometheus.CounterOpts{ + Namespace: metricPrefix, + Name: "http_errors_total", + Help: "Number of HTTP errors returned by external APIs", + }, []string{componentLabel, hostLabel, methodLabel, operationLabel, codeLabel}) + + HTTPRequestDurationHistogram = prometheus.NewHistogramVec(prometheus.HistogramOpts{ + Namespace: metricPrefix, + Name: "http_request_duration_seconds", + Help: "The response times of external API requests", + }, []string{componentLabel, hostLabel, methodLabel, operationLabel, codeLabel}) ) type Exporter struct { } func NewExporter() *Exporter { - e := &Exporter{} - - return e + return &Exporter{} } func (e *Exporter) Describe(descs chan<- *prometheus.Desc) { - e.describeCloudProvider(descs) + HTTPRequestCount.Describe(descs) + HTTPErrorCount.Describe(descs) + HTTPRequestDurationHistogram.Describe(descs) } func (e *Exporter) Collect(metrics chan<- prometheus.Metric) { - e.collectCloudProvider(metrics) -} - -func (e *Exporter) describeCloudProvider(descs chan<- *prometheus.Desc) { - LoadBalancerRequestCount.Describe(descs) - LoadBalancerErrorCount.Describe(descs) - LoadBalancerResponseTimeHistogram.Describe(descs) -} - -func (e *Exporter) collectCloudProvider(metrics chan<- prometheus.Metric) { - LoadBalancerRequestCount.Collect(metrics) - LoadBalancerErrorCount.Collect(metrics) - LoadBalancerResponseTimeHistogram.Collect(metrics) + HTTPRequestCount.Collect(metrics) + HTTPErrorCount.Collect(metrics) + HTTPRequestDurationHistogram.Collect(metrics) } diff --git a/pkg/metrics/server.go b/pkg/metrics/server.go index 6b375ad5..b2fc9055 100644 --- a/pkg/metrics/server.go +++ b/pkg/metrics/server.go @@ -16,7 +16,7 @@ func Run(ctx context.Context, metricsAddr string) error { return errors.New("metrics address is empty") } - klog.Infof("starting prometheus listener on address %s", metricsAddr) + klog.Infof("Starting prometheus listener on address %s", metricsAddr) mux := http.NewServeMux() mux.Handle("/metrics", promhttp.Handler()) @@ -39,7 +39,7 @@ func Run(ctx context.Context, metricsAddr string) error { g.Go(func() error { <-gCtx.Done() - klog.Info("shutdown prometheus listener") + klog.Info("Shutdown prometheus listener") return serv.Shutdown(gCtx) }) diff --git a/pkg/mock/iaas/iaas.go b/pkg/mock/iaas/iaas.go index f0443c1a..92421e6e 100644 --- a/pkg/mock/iaas/iaas.go +++ b/pkg/mock/iaas/iaas.go @@ -1,9 +1,9 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: github.com/stackitcloud/stackit-sdk-go/services/iaas (interfaces: ApiAddNetworkToServerRequest,ApiAddNicToServerRequest,ApiAddPublicIpToServerRequest,ApiAddRoutesToRoutingTableRequest,ApiAddRoutingTableToAreaRequest,ApiAddSecurityGroupToServerRequest,ApiAddServiceAccountToServerRequest,ApiAddVolumeToServerRequest,ApiCreateAffinityGroupRequest,ApiCreateBackupRequest,ApiCreateImageRequest,ApiCreateKeyPairRequest,ApiCreateNetworkAreaRangeRequest,ApiCreateNetworkAreaRegionRequest,ApiCreateNetworkAreaRequest,ApiCreateNetworkAreaRouteRequest,ApiCreateNetworkRequest,ApiCreateNicRequest,ApiCreatePublicIPRequest,ApiCreateSecurityGroupRequest,ApiCreateSecurityGroupRuleRequest,ApiCreateServerRequest,ApiCreateSnapshotRequest,ApiCreateVolumeRequest,ApiDeallocateServerRequest,ApiDeleteAffinityGroupRequest,ApiDeleteBackupRequest,ApiDeleteImageRequest,ApiDeleteImageShareConsumerRequest,ApiDeleteImageShareRequest,ApiDeleteKeyPairRequest,ApiDeleteNetworkAreaRangeRequest,ApiDeleteNetworkAreaRegionRequest,ApiDeleteNetworkAreaRequest,ApiDeleteNetworkAreaRouteRequest,ApiDeleteNetworkRequest,ApiDeleteNicRequest,ApiDeletePublicIPRequest,ApiDeleteRouteFromRoutingTableRequest,ApiDeleteRoutingTableFromAreaRequest,ApiDeleteSecurityGroupRequest,ApiDeleteSecurityGroupRuleRequest,ApiDeleteServerRequest,ApiDeleteSnapshotRequest,ApiDeleteVolumeRequest,ApiGetAffinityGroupRequest,ApiGetAttachedVolumeRequest,ApiGetBackupRequest,ApiGetImageRequest,ApiGetImageShareConsumerRequest,ApiGetImageShareRequest,ApiGetKeyPairRequest,ApiGetMachineTypeRequest,ApiGetNetworkAreaRangeRequest,ApiGetNetworkAreaRegionRequest,ApiGetNetworkAreaRequest,ApiGetNetworkAreaRouteRequest,ApiGetNetworkRequest,ApiGetNicRequest,ApiGetOrganizationRequestRequest,ApiGetProjectDetailsRequest,ApiGetProjectNICRequest,ApiGetProjectRequestRequest,ApiGetPublicIPRequest,ApiGetRouteOfRoutingTableRequest,ApiGetRoutingTableOfAreaRequest,ApiGetSecurityGroupRequest,ApiGetSecurityGroupRuleRequest,ApiGetServerConsoleRequest,ApiGetServerLogRequest,ApiGetServerRequest,ApiGetSnapshotRequest,ApiGetVolumePerformanceClassRequest,ApiGetVolumeRequest,ApiListAffinityGroupsRequest,ApiListAttachedVolumesRequest,ApiListAvailabilityZonesRequest,ApiListBackupsRequest,ApiListImagesRequest,ApiListKeyPairsRequest,ApiListMachineTypesRequest,ApiListNetworkAreaProjectsRequest,ApiListNetworkAreaRangesRequest,ApiListNetworkAreaRegionsRequest,ApiListNetworkAreaRoutesRequest,ApiListNetworkAreasRequest,ApiListNetworksRequest,ApiListNicsRequest,ApiListProjectNICsRequest,ApiListPublicIPRangesRequest,ApiListPublicIPsRequest,ApiListQuotasRequest,ApiListRoutesOfRoutingTableRequest,ApiListRoutingTablesOfAreaRequest,ApiListSecurityGroupRulesRequest,ApiListSecurityGroupsRequest,ApiListServerNICsRequest,ApiListServerServiceAccountsRequest,ApiListServersRequest,ApiListSnapshotsInProjectRequest,ApiListVolumePerformanceClassesRequest,ApiListVolumesRequest,ApiPartialUpdateNetworkAreaRequest,ApiPartialUpdateNetworkRequest,ApiRebootServerRequest,ApiRemoveNetworkFromServerRequest,ApiRemoveNicFromServerRequest,ApiRemovePublicIpFromServerRequest,ApiRemoveSecurityGroupFromServerRequest,ApiRemoveServiceAccountFromServerRequest,ApiRemoveVolumeFromServerRequest,ApiRescueServerRequest,ApiResizeServerRequest,ApiResizeVolumeRequest,ApiRestoreBackupRequest,ApiSetImageShareRequest,ApiStartServerRequest,ApiStopServerRequest,ApiUnrescueServerRequest,ApiUpdateAttachedVolumeRequest,ApiUpdateBackupRequest,ApiUpdateImageRequest,ApiUpdateImageShareRequest,ApiUpdateKeyPairRequest,ApiUpdateNetworkAreaRegionRequest,ApiUpdateNetworkAreaRouteRequest,ApiUpdateNicRequest,ApiUpdatePublicIPRequest,ApiUpdateRouteOfRoutingTableRequest,ApiUpdateRoutingTableOfAreaRequest,ApiUpdateSecurityGroupRequest,ApiUpdateServerRequest,ApiUpdateSnapshotRequest,ApiUpdateVolumeRequest,DefaultApi) +// Source: github.com/stackitcloud/stackit-sdk-go/services/iaas/v2api (interfaces: DefaultAPI) // // Generated by this command: // -// mockgen -destination ./pkg/mock/iaas/iaas.go -package iaas github.com/stackitcloud/stackit-sdk-go/services/iaas ApiAddNetworkToServerRequest,ApiAddNicToServerRequest,ApiAddPublicIpToServerRequest,ApiAddRoutesToRoutingTableRequest,ApiAddRoutingTableToAreaRequest,ApiAddSecurityGroupToServerRequest,ApiAddServiceAccountToServerRequest,ApiAddVolumeToServerRequest,ApiCreateAffinityGroupRequest,ApiCreateBackupRequest,ApiCreateImageRequest,ApiCreateKeyPairRequest,ApiCreateNetworkAreaRangeRequest,ApiCreateNetworkAreaRegionRequest,ApiCreateNetworkAreaRequest,ApiCreateNetworkAreaRouteRequest,ApiCreateNetworkRequest,ApiCreateNicRequest,ApiCreatePublicIPRequest,ApiCreateSecurityGroupRequest,ApiCreateSecurityGroupRuleRequest,ApiCreateServerRequest,ApiCreateSnapshotRequest,ApiCreateVolumeRequest,ApiDeallocateServerRequest,ApiDeleteAffinityGroupRequest,ApiDeleteBackupRequest,ApiDeleteImageRequest,ApiDeleteImageShareConsumerRequest,ApiDeleteImageShareRequest,ApiDeleteKeyPairRequest,ApiDeleteNetworkAreaRangeRequest,ApiDeleteNetworkAreaRegionRequest,ApiDeleteNetworkAreaRequest,ApiDeleteNetworkAreaRouteRequest,ApiDeleteNetworkRequest,ApiDeleteNicRequest,ApiDeletePublicIPRequest,ApiDeleteRouteFromRoutingTableRequest,ApiDeleteRoutingTableFromAreaRequest,ApiDeleteSecurityGroupRequest,ApiDeleteSecurityGroupRuleRequest,ApiDeleteServerRequest,ApiDeleteSnapshotRequest,ApiDeleteVolumeRequest,ApiGetAffinityGroupRequest,ApiGetAttachedVolumeRequest,ApiGetBackupRequest,ApiGetImageRequest,ApiGetImageShareConsumerRequest,ApiGetImageShareRequest,ApiGetKeyPairRequest,ApiGetMachineTypeRequest,ApiGetNetworkAreaRangeRequest,ApiGetNetworkAreaRegionRequest,ApiGetNetworkAreaRequest,ApiGetNetworkAreaRouteRequest,ApiGetNetworkRequest,ApiGetNicRequest,ApiGetOrganizationRequestRequest,ApiGetProjectDetailsRequest,ApiGetProjectNICRequest,ApiGetProjectRequestRequest,ApiGetPublicIPRequest,ApiGetRouteOfRoutingTableRequest,ApiGetRoutingTableOfAreaRequest,ApiGetSecurityGroupRequest,ApiGetSecurityGroupRuleRequest,ApiGetServerConsoleRequest,ApiGetServerLogRequest,ApiGetServerRequest,ApiGetSnapshotRequest,ApiGetVolumePerformanceClassRequest,ApiGetVolumeRequest,ApiListAffinityGroupsRequest,ApiListAttachedVolumesRequest,ApiListAvailabilityZonesRequest,ApiListBackupsRequest,ApiListImagesRequest,ApiListKeyPairsRequest,ApiListMachineTypesRequest,ApiListNetworkAreaProjectsRequest,ApiListNetworkAreaRangesRequest,ApiListNetworkAreaRegionsRequest,ApiListNetworkAreaRoutesRequest,ApiListNetworkAreasRequest,ApiListNetworksRequest,ApiListNicsRequest,ApiListProjectNICsRequest,ApiListPublicIPRangesRequest,ApiListPublicIPsRequest,ApiListQuotasRequest,ApiListRoutesOfRoutingTableRequest,ApiListRoutingTablesOfAreaRequest,ApiListSecurityGroupRulesRequest,ApiListSecurityGroupsRequest,ApiListServerNICsRequest,ApiListServerServiceAccountsRequest,ApiListServersRequest,ApiListSnapshotsInProjectRequest,ApiListVolumePerformanceClassesRequest,ApiListVolumesRequest,ApiPartialUpdateNetworkAreaRequest,ApiPartialUpdateNetworkRequest,ApiRebootServerRequest,ApiRemoveNetworkFromServerRequest,ApiRemoveNicFromServerRequest,ApiRemovePublicIpFromServerRequest,ApiRemoveSecurityGroupFromServerRequest,ApiRemoveServiceAccountFromServerRequest,ApiRemoveVolumeFromServerRequest,ApiRescueServerRequest,ApiResizeServerRequest,ApiResizeVolumeRequest,ApiRestoreBackupRequest,ApiSetImageShareRequest,ApiStartServerRequest,ApiStopServerRequest,ApiUnrescueServerRequest,ApiUpdateAttachedVolumeRequest,ApiUpdateBackupRequest,ApiUpdateImageRequest,ApiUpdateImageShareRequest,ApiUpdateKeyPairRequest,ApiUpdateNetworkAreaRegionRequest,ApiUpdateNetworkAreaRouteRequest,ApiUpdateNicRequest,ApiUpdatePublicIPRequest,ApiUpdateRouteOfRoutingTableRequest,ApiUpdateRoutingTableOfAreaRequest,ApiUpdateSecurityGroupRequest,ApiUpdateServerRequest,ApiUpdateSnapshotRequest,ApiUpdateVolumeRequest,DefaultApi +// mockgen -destination ./pkg/mock/iaas/iaas.go -package iaas github.com/stackitcloud/stackit-sdk-go/services/iaas/v2api DefaultAPI // // Package iaas is a generated GoMock package. @@ -13,9946 +13,3935 @@ import ( context "context" reflect "reflect" - iaas "github.com/stackitcloud/stackit-sdk-go/services/iaas" + v2api "github.com/stackitcloud/stackit-sdk-go/services/iaas/v2api" gomock "go.uber.org/mock/gomock" ) -// MockApiAddNetworkToServerRequest is a mock of ApiAddNetworkToServerRequest interface. -type MockApiAddNetworkToServerRequest struct { +// MockDefaultAPI is a mock of DefaultAPI interface. +type MockDefaultAPI struct { ctrl *gomock.Controller - recorder *MockApiAddNetworkToServerRequestMockRecorder + recorder *MockDefaultAPIMockRecorder isgomock struct{} } -// MockApiAddNetworkToServerRequestMockRecorder is the mock recorder for MockApiAddNetworkToServerRequest. -type MockApiAddNetworkToServerRequestMockRecorder struct { - mock *MockApiAddNetworkToServerRequest +// MockDefaultAPIMockRecorder is the mock recorder for MockDefaultAPI. +type MockDefaultAPIMockRecorder struct { + mock *MockDefaultAPI } -// NewMockApiAddNetworkToServerRequest creates a new mock instance. -func NewMockApiAddNetworkToServerRequest(ctrl *gomock.Controller) *MockApiAddNetworkToServerRequest { - mock := &MockApiAddNetworkToServerRequest{ctrl: ctrl} - mock.recorder = &MockApiAddNetworkToServerRequestMockRecorder{mock} +// NewMockDefaultAPI creates a new mock instance. +func NewMockDefaultAPI(ctrl *gomock.Controller) *MockDefaultAPI { + mock := &MockDefaultAPI{ctrl: ctrl} + mock.recorder = &MockDefaultAPIMockRecorder{mock} return mock } // EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiAddNetworkToServerRequest) EXPECT() *MockApiAddNetworkToServerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiAddNetworkToServerRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiAddNetworkToServerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiAddNetworkToServerRequest)(nil).Execute)) -} - -// MockApiAddNicToServerRequest is a mock of ApiAddNicToServerRequest interface. -type MockApiAddNicToServerRequest struct { - ctrl *gomock.Controller - recorder *MockApiAddNicToServerRequestMockRecorder - isgomock struct{} -} - -// MockApiAddNicToServerRequestMockRecorder is the mock recorder for MockApiAddNicToServerRequest. -type MockApiAddNicToServerRequestMockRecorder struct { - mock *MockApiAddNicToServerRequest -} - -// NewMockApiAddNicToServerRequest creates a new mock instance. -func NewMockApiAddNicToServerRequest(ctrl *gomock.Controller) *MockApiAddNicToServerRequest { - mock := &MockApiAddNicToServerRequest{ctrl: ctrl} - mock.recorder = &MockApiAddNicToServerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiAddNicToServerRequest) EXPECT() *MockApiAddNicToServerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiAddNicToServerRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiAddNicToServerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiAddNicToServerRequest)(nil).Execute)) -} - -// MockApiAddPublicIpToServerRequest is a mock of ApiAddPublicIpToServerRequest interface. -type MockApiAddPublicIpToServerRequest struct { - ctrl *gomock.Controller - recorder *MockApiAddPublicIpToServerRequestMockRecorder - isgomock struct{} -} - -// MockApiAddPublicIpToServerRequestMockRecorder is the mock recorder for MockApiAddPublicIpToServerRequest. -type MockApiAddPublicIpToServerRequestMockRecorder struct { - mock *MockApiAddPublicIpToServerRequest -} - -// NewMockApiAddPublicIpToServerRequest creates a new mock instance. -func NewMockApiAddPublicIpToServerRequest(ctrl *gomock.Controller) *MockApiAddPublicIpToServerRequest { - mock := &MockApiAddPublicIpToServerRequest{ctrl: ctrl} - mock.recorder = &MockApiAddPublicIpToServerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiAddPublicIpToServerRequest) EXPECT() *MockApiAddPublicIpToServerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiAddPublicIpToServerRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiAddPublicIpToServerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiAddPublicIpToServerRequest)(nil).Execute)) -} - -// MockApiAddRoutesToRoutingTableRequest is a mock of ApiAddRoutesToRoutingTableRequest interface. -type MockApiAddRoutesToRoutingTableRequest struct { - ctrl *gomock.Controller - recorder *MockApiAddRoutesToRoutingTableRequestMockRecorder - isgomock struct{} -} - -// MockApiAddRoutesToRoutingTableRequestMockRecorder is the mock recorder for MockApiAddRoutesToRoutingTableRequest. -type MockApiAddRoutesToRoutingTableRequestMockRecorder struct { - mock *MockApiAddRoutesToRoutingTableRequest -} - -// NewMockApiAddRoutesToRoutingTableRequest creates a new mock instance. -func NewMockApiAddRoutesToRoutingTableRequest(ctrl *gomock.Controller) *MockApiAddRoutesToRoutingTableRequest { - mock := &MockApiAddRoutesToRoutingTableRequest{ctrl: ctrl} - mock.recorder = &MockApiAddRoutesToRoutingTableRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiAddRoutesToRoutingTableRequest) EXPECT() *MockApiAddRoutesToRoutingTableRequestMockRecorder { - return m.recorder -} - -// AddRoutesToRoutingTablePayload mocks base method. -func (m *MockApiAddRoutesToRoutingTableRequest) AddRoutesToRoutingTablePayload(addRoutesToRoutingTablePayload iaas.AddRoutesToRoutingTablePayload) iaas.ApiAddRoutesToRoutingTableRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "AddRoutesToRoutingTablePayload", addRoutesToRoutingTablePayload) - ret0, _ := ret[0].(iaas.ApiAddRoutesToRoutingTableRequest) - return ret0 -} - -// AddRoutesToRoutingTablePayload indicates an expected call of AddRoutesToRoutingTablePayload. -func (mr *MockApiAddRoutesToRoutingTableRequestMockRecorder) AddRoutesToRoutingTablePayload(addRoutesToRoutingTablePayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddRoutesToRoutingTablePayload", reflect.TypeOf((*MockApiAddRoutesToRoutingTableRequest)(nil).AddRoutesToRoutingTablePayload), addRoutesToRoutingTablePayload) -} - -// Execute mocks base method. -func (m *MockApiAddRoutesToRoutingTableRequest) Execute() (*iaas.RouteListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.RouteListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiAddRoutesToRoutingTableRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiAddRoutesToRoutingTableRequest)(nil).Execute)) -} - -// MockApiAddRoutingTableToAreaRequest is a mock of ApiAddRoutingTableToAreaRequest interface. -type MockApiAddRoutingTableToAreaRequest struct { - ctrl *gomock.Controller - recorder *MockApiAddRoutingTableToAreaRequestMockRecorder - isgomock struct{} -} - -// MockApiAddRoutingTableToAreaRequestMockRecorder is the mock recorder for MockApiAddRoutingTableToAreaRequest. -type MockApiAddRoutingTableToAreaRequestMockRecorder struct { - mock *MockApiAddRoutingTableToAreaRequest -} - -// NewMockApiAddRoutingTableToAreaRequest creates a new mock instance. -func NewMockApiAddRoutingTableToAreaRequest(ctrl *gomock.Controller) *MockApiAddRoutingTableToAreaRequest { - mock := &MockApiAddRoutingTableToAreaRequest{ctrl: ctrl} - mock.recorder = &MockApiAddRoutingTableToAreaRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiAddRoutingTableToAreaRequest) EXPECT() *MockApiAddRoutingTableToAreaRequestMockRecorder { - return m.recorder -} - -// AddRoutingTableToAreaPayload mocks base method. -func (m *MockApiAddRoutingTableToAreaRequest) AddRoutingTableToAreaPayload(addRoutingTableToAreaPayload iaas.AddRoutingTableToAreaPayload) iaas.ApiAddRoutingTableToAreaRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "AddRoutingTableToAreaPayload", addRoutingTableToAreaPayload) - ret0, _ := ret[0].(iaas.ApiAddRoutingTableToAreaRequest) - return ret0 -} - -// AddRoutingTableToAreaPayload indicates an expected call of AddRoutingTableToAreaPayload. -func (mr *MockApiAddRoutingTableToAreaRequestMockRecorder) AddRoutingTableToAreaPayload(addRoutingTableToAreaPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddRoutingTableToAreaPayload", reflect.TypeOf((*MockApiAddRoutingTableToAreaRequest)(nil).AddRoutingTableToAreaPayload), addRoutingTableToAreaPayload) -} - -// Execute mocks base method. -func (m *MockApiAddRoutingTableToAreaRequest) Execute() (*iaas.RoutingTable, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.RoutingTable) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiAddRoutingTableToAreaRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiAddRoutingTableToAreaRequest)(nil).Execute)) -} - -// MockApiAddSecurityGroupToServerRequest is a mock of ApiAddSecurityGroupToServerRequest interface. -type MockApiAddSecurityGroupToServerRequest struct { - ctrl *gomock.Controller - recorder *MockApiAddSecurityGroupToServerRequestMockRecorder - isgomock struct{} -} - -// MockApiAddSecurityGroupToServerRequestMockRecorder is the mock recorder for MockApiAddSecurityGroupToServerRequest. -type MockApiAddSecurityGroupToServerRequestMockRecorder struct { - mock *MockApiAddSecurityGroupToServerRequest -} - -// NewMockApiAddSecurityGroupToServerRequest creates a new mock instance. -func NewMockApiAddSecurityGroupToServerRequest(ctrl *gomock.Controller) *MockApiAddSecurityGroupToServerRequest { - mock := &MockApiAddSecurityGroupToServerRequest{ctrl: ctrl} - mock.recorder = &MockApiAddSecurityGroupToServerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiAddSecurityGroupToServerRequest) EXPECT() *MockApiAddSecurityGroupToServerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiAddSecurityGroupToServerRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiAddSecurityGroupToServerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiAddSecurityGroupToServerRequest)(nil).Execute)) -} - -// MockApiAddServiceAccountToServerRequest is a mock of ApiAddServiceAccountToServerRequest interface. -type MockApiAddServiceAccountToServerRequest struct { - ctrl *gomock.Controller - recorder *MockApiAddServiceAccountToServerRequestMockRecorder - isgomock struct{} -} - -// MockApiAddServiceAccountToServerRequestMockRecorder is the mock recorder for MockApiAddServiceAccountToServerRequest. -type MockApiAddServiceAccountToServerRequestMockRecorder struct { - mock *MockApiAddServiceAccountToServerRequest -} - -// NewMockApiAddServiceAccountToServerRequest creates a new mock instance. -func NewMockApiAddServiceAccountToServerRequest(ctrl *gomock.Controller) *MockApiAddServiceAccountToServerRequest { - mock := &MockApiAddServiceAccountToServerRequest{ctrl: ctrl} - mock.recorder = &MockApiAddServiceAccountToServerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiAddServiceAccountToServerRequest) EXPECT() *MockApiAddServiceAccountToServerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiAddServiceAccountToServerRequest) Execute() (*iaas.ServiceAccountMailListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.ServiceAccountMailListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiAddServiceAccountToServerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiAddServiceAccountToServerRequest)(nil).Execute)) -} - -// MockApiAddVolumeToServerRequest is a mock of ApiAddVolumeToServerRequest interface. -type MockApiAddVolumeToServerRequest struct { - ctrl *gomock.Controller - recorder *MockApiAddVolumeToServerRequestMockRecorder - isgomock struct{} -} - -// MockApiAddVolumeToServerRequestMockRecorder is the mock recorder for MockApiAddVolumeToServerRequest. -type MockApiAddVolumeToServerRequestMockRecorder struct { - mock *MockApiAddVolumeToServerRequest -} - -// NewMockApiAddVolumeToServerRequest creates a new mock instance. -func NewMockApiAddVolumeToServerRequest(ctrl *gomock.Controller) *MockApiAddVolumeToServerRequest { - mock := &MockApiAddVolumeToServerRequest{ctrl: ctrl} - mock.recorder = &MockApiAddVolumeToServerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiAddVolumeToServerRequest) EXPECT() *MockApiAddVolumeToServerRequestMockRecorder { - return m.recorder -} - -// AddVolumeToServerPayload mocks base method. -func (m *MockApiAddVolumeToServerRequest) AddVolumeToServerPayload(addVolumeToServerPayload iaas.AddVolumeToServerPayload) iaas.ApiAddVolumeToServerRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "AddVolumeToServerPayload", addVolumeToServerPayload) - ret0, _ := ret[0].(iaas.ApiAddVolumeToServerRequest) - return ret0 -} - -// AddVolumeToServerPayload indicates an expected call of AddVolumeToServerPayload. -func (mr *MockApiAddVolumeToServerRequestMockRecorder) AddVolumeToServerPayload(addVolumeToServerPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddVolumeToServerPayload", reflect.TypeOf((*MockApiAddVolumeToServerRequest)(nil).AddVolumeToServerPayload), addVolumeToServerPayload) -} - -// Execute mocks base method. -func (m *MockApiAddVolumeToServerRequest) Execute() (*iaas.VolumeAttachment, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.VolumeAttachment) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiAddVolumeToServerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiAddVolumeToServerRequest)(nil).Execute)) -} - -// MockApiCreateAffinityGroupRequest is a mock of ApiCreateAffinityGroupRequest interface. -type MockApiCreateAffinityGroupRequest struct { - ctrl *gomock.Controller - recorder *MockApiCreateAffinityGroupRequestMockRecorder - isgomock struct{} -} - -// MockApiCreateAffinityGroupRequestMockRecorder is the mock recorder for MockApiCreateAffinityGroupRequest. -type MockApiCreateAffinityGroupRequestMockRecorder struct { - mock *MockApiCreateAffinityGroupRequest -} - -// NewMockApiCreateAffinityGroupRequest creates a new mock instance. -func NewMockApiCreateAffinityGroupRequest(ctrl *gomock.Controller) *MockApiCreateAffinityGroupRequest { - mock := &MockApiCreateAffinityGroupRequest{ctrl: ctrl} - mock.recorder = &MockApiCreateAffinityGroupRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiCreateAffinityGroupRequest) EXPECT() *MockApiCreateAffinityGroupRequestMockRecorder { - return m.recorder -} - -// CreateAffinityGroupPayload mocks base method. -func (m *MockApiCreateAffinityGroupRequest) CreateAffinityGroupPayload(createAffinityGroupPayload iaas.CreateAffinityGroupPayload) iaas.ApiCreateAffinityGroupRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateAffinityGroupPayload", createAffinityGroupPayload) - ret0, _ := ret[0].(iaas.ApiCreateAffinityGroupRequest) - return ret0 -} - -// CreateAffinityGroupPayload indicates an expected call of CreateAffinityGroupPayload. -func (mr *MockApiCreateAffinityGroupRequestMockRecorder) CreateAffinityGroupPayload(createAffinityGroupPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateAffinityGroupPayload", reflect.TypeOf((*MockApiCreateAffinityGroupRequest)(nil).CreateAffinityGroupPayload), createAffinityGroupPayload) -} - -// Execute mocks base method. -func (m *MockApiCreateAffinityGroupRequest) Execute() (*iaas.AffinityGroup, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.AffinityGroup) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiCreateAffinityGroupRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiCreateAffinityGroupRequest)(nil).Execute)) -} - -// MockApiCreateBackupRequest is a mock of ApiCreateBackupRequest interface. -type MockApiCreateBackupRequest struct { - ctrl *gomock.Controller - recorder *MockApiCreateBackupRequestMockRecorder - isgomock struct{} -} - -// MockApiCreateBackupRequestMockRecorder is the mock recorder for MockApiCreateBackupRequest. -type MockApiCreateBackupRequestMockRecorder struct { - mock *MockApiCreateBackupRequest -} - -// NewMockApiCreateBackupRequest creates a new mock instance. -func NewMockApiCreateBackupRequest(ctrl *gomock.Controller) *MockApiCreateBackupRequest { - mock := &MockApiCreateBackupRequest{ctrl: ctrl} - mock.recorder = &MockApiCreateBackupRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiCreateBackupRequest) EXPECT() *MockApiCreateBackupRequestMockRecorder { - return m.recorder -} - -// CreateBackupPayload mocks base method. -func (m *MockApiCreateBackupRequest) CreateBackupPayload(createBackupPayload iaas.CreateBackupPayload) iaas.ApiCreateBackupRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateBackupPayload", createBackupPayload) - ret0, _ := ret[0].(iaas.ApiCreateBackupRequest) - return ret0 -} - -// CreateBackupPayload indicates an expected call of CreateBackupPayload. -func (mr *MockApiCreateBackupRequestMockRecorder) CreateBackupPayload(createBackupPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateBackupPayload", reflect.TypeOf((*MockApiCreateBackupRequest)(nil).CreateBackupPayload), createBackupPayload) -} - -// Execute mocks base method. -func (m *MockApiCreateBackupRequest) Execute() (*iaas.Backup, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Backup) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiCreateBackupRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiCreateBackupRequest)(nil).Execute)) -} - -// MockApiCreateImageRequest is a mock of ApiCreateImageRequest interface. -type MockApiCreateImageRequest struct { - ctrl *gomock.Controller - recorder *MockApiCreateImageRequestMockRecorder - isgomock struct{} -} - -// MockApiCreateImageRequestMockRecorder is the mock recorder for MockApiCreateImageRequest. -type MockApiCreateImageRequestMockRecorder struct { - mock *MockApiCreateImageRequest -} - -// NewMockApiCreateImageRequest creates a new mock instance. -func NewMockApiCreateImageRequest(ctrl *gomock.Controller) *MockApiCreateImageRequest { - mock := &MockApiCreateImageRequest{ctrl: ctrl} - mock.recorder = &MockApiCreateImageRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiCreateImageRequest) EXPECT() *MockApiCreateImageRequestMockRecorder { - return m.recorder -} - -// CreateImagePayload mocks base method. -func (m *MockApiCreateImageRequest) CreateImagePayload(createImagePayload iaas.CreateImagePayload) iaas.ApiCreateImageRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateImagePayload", createImagePayload) - ret0, _ := ret[0].(iaas.ApiCreateImageRequest) - return ret0 -} - -// CreateImagePayload indicates an expected call of CreateImagePayload. -func (mr *MockApiCreateImageRequestMockRecorder) CreateImagePayload(createImagePayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateImagePayload", reflect.TypeOf((*MockApiCreateImageRequest)(nil).CreateImagePayload), createImagePayload) -} - -// Execute mocks base method. -func (m *MockApiCreateImageRequest) Execute() (*iaas.ImageCreateResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.ImageCreateResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiCreateImageRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiCreateImageRequest)(nil).Execute)) -} - -// MockApiCreateKeyPairRequest is a mock of ApiCreateKeyPairRequest interface. -type MockApiCreateKeyPairRequest struct { - ctrl *gomock.Controller - recorder *MockApiCreateKeyPairRequestMockRecorder - isgomock struct{} -} - -// MockApiCreateKeyPairRequestMockRecorder is the mock recorder for MockApiCreateKeyPairRequest. -type MockApiCreateKeyPairRequestMockRecorder struct { - mock *MockApiCreateKeyPairRequest -} - -// NewMockApiCreateKeyPairRequest creates a new mock instance. -func NewMockApiCreateKeyPairRequest(ctrl *gomock.Controller) *MockApiCreateKeyPairRequest { - mock := &MockApiCreateKeyPairRequest{ctrl: ctrl} - mock.recorder = &MockApiCreateKeyPairRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiCreateKeyPairRequest) EXPECT() *MockApiCreateKeyPairRequestMockRecorder { - return m.recorder -} - -// CreateKeyPairPayload mocks base method. -func (m *MockApiCreateKeyPairRequest) CreateKeyPairPayload(createKeyPairPayload iaas.CreateKeyPairPayload) iaas.ApiCreateKeyPairRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateKeyPairPayload", createKeyPairPayload) - ret0, _ := ret[0].(iaas.ApiCreateKeyPairRequest) - return ret0 -} - -// CreateKeyPairPayload indicates an expected call of CreateKeyPairPayload. -func (mr *MockApiCreateKeyPairRequestMockRecorder) CreateKeyPairPayload(createKeyPairPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateKeyPairPayload", reflect.TypeOf((*MockApiCreateKeyPairRequest)(nil).CreateKeyPairPayload), createKeyPairPayload) -} - -// Execute mocks base method. -func (m *MockApiCreateKeyPairRequest) Execute() (*iaas.Keypair, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Keypair) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiCreateKeyPairRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiCreateKeyPairRequest)(nil).Execute)) -} - -// MockApiCreateNetworkAreaRangeRequest is a mock of ApiCreateNetworkAreaRangeRequest interface. -type MockApiCreateNetworkAreaRangeRequest struct { - ctrl *gomock.Controller - recorder *MockApiCreateNetworkAreaRangeRequestMockRecorder - isgomock struct{} -} - -// MockApiCreateNetworkAreaRangeRequestMockRecorder is the mock recorder for MockApiCreateNetworkAreaRangeRequest. -type MockApiCreateNetworkAreaRangeRequestMockRecorder struct { - mock *MockApiCreateNetworkAreaRangeRequest -} - -// NewMockApiCreateNetworkAreaRangeRequest creates a new mock instance. -func NewMockApiCreateNetworkAreaRangeRequest(ctrl *gomock.Controller) *MockApiCreateNetworkAreaRangeRequest { - mock := &MockApiCreateNetworkAreaRangeRequest{ctrl: ctrl} - mock.recorder = &MockApiCreateNetworkAreaRangeRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiCreateNetworkAreaRangeRequest) EXPECT() *MockApiCreateNetworkAreaRangeRequestMockRecorder { - return m.recorder -} - -// CreateNetworkAreaRangePayload mocks base method. -func (m *MockApiCreateNetworkAreaRangeRequest) CreateNetworkAreaRangePayload(createNetworkAreaRangePayload iaas.CreateNetworkAreaRangePayload) iaas.ApiCreateNetworkAreaRangeRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateNetworkAreaRangePayload", createNetworkAreaRangePayload) - ret0, _ := ret[0].(iaas.ApiCreateNetworkAreaRangeRequest) - return ret0 -} - -// CreateNetworkAreaRangePayload indicates an expected call of CreateNetworkAreaRangePayload. -func (mr *MockApiCreateNetworkAreaRangeRequestMockRecorder) CreateNetworkAreaRangePayload(createNetworkAreaRangePayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkAreaRangePayload", reflect.TypeOf((*MockApiCreateNetworkAreaRangeRequest)(nil).CreateNetworkAreaRangePayload), createNetworkAreaRangePayload) -} - -// Execute mocks base method. -func (m *MockApiCreateNetworkAreaRangeRequest) Execute() (*iaas.NetworkRangeListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.NetworkRangeListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiCreateNetworkAreaRangeRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiCreateNetworkAreaRangeRequest)(nil).Execute)) -} - -// MockApiCreateNetworkAreaRegionRequest is a mock of ApiCreateNetworkAreaRegionRequest interface. -type MockApiCreateNetworkAreaRegionRequest struct { - ctrl *gomock.Controller - recorder *MockApiCreateNetworkAreaRegionRequestMockRecorder - isgomock struct{} -} - -// MockApiCreateNetworkAreaRegionRequestMockRecorder is the mock recorder for MockApiCreateNetworkAreaRegionRequest. -type MockApiCreateNetworkAreaRegionRequestMockRecorder struct { - mock *MockApiCreateNetworkAreaRegionRequest -} - -// NewMockApiCreateNetworkAreaRegionRequest creates a new mock instance. -func NewMockApiCreateNetworkAreaRegionRequest(ctrl *gomock.Controller) *MockApiCreateNetworkAreaRegionRequest { - mock := &MockApiCreateNetworkAreaRegionRequest{ctrl: ctrl} - mock.recorder = &MockApiCreateNetworkAreaRegionRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiCreateNetworkAreaRegionRequest) EXPECT() *MockApiCreateNetworkAreaRegionRequestMockRecorder { - return m.recorder -} - -// CreateNetworkAreaRegionPayload mocks base method. -func (m *MockApiCreateNetworkAreaRegionRequest) CreateNetworkAreaRegionPayload(createNetworkAreaRegionPayload iaas.CreateNetworkAreaRegionPayload) iaas.ApiCreateNetworkAreaRegionRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateNetworkAreaRegionPayload", createNetworkAreaRegionPayload) - ret0, _ := ret[0].(iaas.ApiCreateNetworkAreaRegionRequest) - return ret0 -} - -// CreateNetworkAreaRegionPayload indicates an expected call of CreateNetworkAreaRegionPayload. -func (mr *MockApiCreateNetworkAreaRegionRequestMockRecorder) CreateNetworkAreaRegionPayload(createNetworkAreaRegionPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkAreaRegionPayload", reflect.TypeOf((*MockApiCreateNetworkAreaRegionRequest)(nil).CreateNetworkAreaRegionPayload), createNetworkAreaRegionPayload) -} - -// Execute mocks base method. -func (m *MockApiCreateNetworkAreaRegionRequest) Execute() (*iaas.RegionalArea, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.RegionalArea) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiCreateNetworkAreaRegionRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiCreateNetworkAreaRegionRequest)(nil).Execute)) -} - -// MockApiCreateNetworkAreaRequest is a mock of ApiCreateNetworkAreaRequest interface. -type MockApiCreateNetworkAreaRequest struct { - ctrl *gomock.Controller - recorder *MockApiCreateNetworkAreaRequestMockRecorder - isgomock struct{} -} - -// MockApiCreateNetworkAreaRequestMockRecorder is the mock recorder for MockApiCreateNetworkAreaRequest. -type MockApiCreateNetworkAreaRequestMockRecorder struct { - mock *MockApiCreateNetworkAreaRequest -} - -// NewMockApiCreateNetworkAreaRequest creates a new mock instance. -func NewMockApiCreateNetworkAreaRequest(ctrl *gomock.Controller) *MockApiCreateNetworkAreaRequest { - mock := &MockApiCreateNetworkAreaRequest{ctrl: ctrl} - mock.recorder = &MockApiCreateNetworkAreaRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiCreateNetworkAreaRequest) EXPECT() *MockApiCreateNetworkAreaRequestMockRecorder { - return m.recorder -} - -// CreateNetworkAreaPayload mocks base method. -func (m *MockApiCreateNetworkAreaRequest) CreateNetworkAreaPayload(createNetworkAreaPayload iaas.CreateNetworkAreaPayload) iaas.ApiCreateNetworkAreaRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateNetworkAreaPayload", createNetworkAreaPayload) - ret0, _ := ret[0].(iaas.ApiCreateNetworkAreaRequest) - return ret0 -} - -// CreateNetworkAreaPayload indicates an expected call of CreateNetworkAreaPayload. -func (mr *MockApiCreateNetworkAreaRequestMockRecorder) CreateNetworkAreaPayload(createNetworkAreaPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkAreaPayload", reflect.TypeOf((*MockApiCreateNetworkAreaRequest)(nil).CreateNetworkAreaPayload), createNetworkAreaPayload) -} - -// Execute mocks base method. -func (m *MockApiCreateNetworkAreaRequest) Execute() (*iaas.NetworkArea, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.NetworkArea) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiCreateNetworkAreaRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiCreateNetworkAreaRequest)(nil).Execute)) -} - -// MockApiCreateNetworkAreaRouteRequest is a mock of ApiCreateNetworkAreaRouteRequest interface. -type MockApiCreateNetworkAreaRouteRequest struct { - ctrl *gomock.Controller - recorder *MockApiCreateNetworkAreaRouteRequestMockRecorder - isgomock struct{} -} - -// MockApiCreateNetworkAreaRouteRequestMockRecorder is the mock recorder for MockApiCreateNetworkAreaRouteRequest. -type MockApiCreateNetworkAreaRouteRequestMockRecorder struct { - mock *MockApiCreateNetworkAreaRouteRequest -} - -// NewMockApiCreateNetworkAreaRouteRequest creates a new mock instance. -func NewMockApiCreateNetworkAreaRouteRequest(ctrl *gomock.Controller) *MockApiCreateNetworkAreaRouteRequest { - mock := &MockApiCreateNetworkAreaRouteRequest{ctrl: ctrl} - mock.recorder = &MockApiCreateNetworkAreaRouteRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiCreateNetworkAreaRouteRequest) EXPECT() *MockApiCreateNetworkAreaRouteRequestMockRecorder { - return m.recorder -} - -// CreateNetworkAreaRoutePayload mocks base method. -func (m *MockApiCreateNetworkAreaRouteRequest) CreateNetworkAreaRoutePayload(createNetworkAreaRoutePayload iaas.CreateNetworkAreaRoutePayload) iaas.ApiCreateNetworkAreaRouteRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateNetworkAreaRoutePayload", createNetworkAreaRoutePayload) - ret0, _ := ret[0].(iaas.ApiCreateNetworkAreaRouteRequest) - return ret0 -} - -// CreateNetworkAreaRoutePayload indicates an expected call of CreateNetworkAreaRoutePayload. -func (mr *MockApiCreateNetworkAreaRouteRequestMockRecorder) CreateNetworkAreaRoutePayload(createNetworkAreaRoutePayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkAreaRoutePayload", reflect.TypeOf((*MockApiCreateNetworkAreaRouteRequest)(nil).CreateNetworkAreaRoutePayload), createNetworkAreaRoutePayload) -} - -// Execute mocks base method. -func (m *MockApiCreateNetworkAreaRouteRequest) Execute() (*iaas.RouteListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.RouteListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiCreateNetworkAreaRouteRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiCreateNetworkAreaRouteRequest)(nil).Execute)) -} - -// MockApiCreateNetworkRequest is a mock of ApiCreateNetworkRequest interface. -type MockApiCreateNetworkRequest struct { - ctrl *gomock.Controller - recorder *MockApiCreateNetworkRequestMockRecorder - isgomock struct{} -} - -// MockApiCreateNetworkRequestMockRecorder is the mock recorder for MockApiCreateNetworkRequest. -type MockApiCreateNetworkRequestMockRecorder struct { - mock *MockApiCreateNetworkRequest -} - -// NewMockApiCreateNetworkRequest creates a new mock instance. -func NewMockApiCreateNetworkRequest(ctrl *gomock.Controller) *MockApiCreateNetworkRequest { - mock := &MockApiCreateNetworkRequest{ctrl: ctrl} - mock.recorder = &MockApiCreateNetworkRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiCreateNetworkRequest) EXPECT() *MockApiCreateNetworkRequestMockRecorder { - return m.recorder -} - -// CreateNetworkPayload mocks base method. -func (m *MockApiCreateNetworkRequest) CreateNetworkPayload(createNetworkPayload iaas.CreateNetworkPayload) iaas.ApiCreateNetworkRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateNetworkPayload", createNetworkPayload) - ret0, _ := ret[0].(iaas.ApiCreateNetworkRequest) - return ret0 -} - -// CreateNetworkPayload indicates an expected call of CreateNetworkPayload. -func (mr *MockApiCreateNetworkRequestMockRecorder) CreateNetworkPayload(createNetworkPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkPayload", reflect.TypeOf((*MockApiCreateNetworkRequest)(nil).CreateNetworkPayload), createNetworkPayload) -} - -// Execute mocks base method. -func (m *MockApiCreateNetworkRequest) Execute() (*iaas.Network, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Network) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiCreateNetworkRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiCreateNetworkRequest)(nil).Execute)) -} - -// MockApiCreateNicRequest is a mock of ApiCreateNicRequest interface. -type MockApiCreateNicRequest struct { - ctrl *gomock.Controller - recorder *MockApiCreateNicRequestMockRecorder - isgomock struct{} -} - -// MockApiCreateNicRequestMockRecorder is the mock recorder for MockApiCreateNicRequest. -type MockApiCreateNicRequestMockRecorder struct { - mock *MockApiCreateNicRequest -} - -// NewMockApiCreateNicRequest creates a new mock instance. -func NewMockApiCreateNicRequest(ctrl *gomock.Controller) *MockApiCreateNicRequest { - mock := &MockApiCreateNicRequest{ctrl: ctrl} - mock.recorder = &MockApiCreateNicRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiCreateNicRequest) EXPECT() *MockApiCreateNicRequestMockRecorder { - return m.recorder -} - -// CreateNicPayload mocks base method. -func (m *MockApiCreateNicRequest) CreateNicPayload(createNicPayload iaas.CreateNicPayload) iaas.ApiCreateNicRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateNicPayload", createNicPayload) - ret0, _ := ret[0].(iaas.ApiCreateNicRequest) - return ret0 -} - -// CreateNicPayload indicates an expected call of CreateNicPayload. -func (mr *MockApiCreateNicRequestMockRecorder) CreateNicPayload(createNicPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNicPayload", reflect.TypeOf((*MockApiCreateNicRequest)(nil).CreateNicPayload), createNicPayload) -} - -// Execute mocks base method. -func (m *MockApiCreateNicRequest) Execute() (*iaas.NIC, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.NIC) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiCreateNicRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiCreateNicRequest)(nil).Execute)) -} - -// MockApiCreatePublicIPRequest is a mock of ApiCreatePublicIPRequest interface. -type MockApiCreatePublicIPRequest struct { - ctrl *gomock.Controller - recorder *MockApiCreatePublicIPRequestMockRecorder - isgomock struct{} -} - -// MockApiCreatePublicIPRequestMockRecorder is the mock recorder for MockApiCreatePublicIPRequest. -type MockApiCreatePublicIPRequestMockRecorder struct { - mock *MockApiCreatePublicIPRequest -} - -// NewMockApiCreatePublicIPRequest creates a new mock instance. -func NewMockApiCreatePublicIPRequest(ctrl *gomock.Controller) *MockApiCreatePublicIPRequest { - mock := &MockApiCreatePublicIPRequest{ctrl: ctrl} - mock.recorder = &MockApiCreatePublicIPRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiCreatePublicIPRequest) EXPECT() *MockApiCreatePublicIPRequestMockRecorder { - return m.recorder -} - -// CreatePublicIPPayload mocks base method. -func (m *MockApiCreatePublicIPRequest) CreatePublicIPPayload(createPublicIPPayload iaas.CreatePublicIPPayload) iaas.ApiCreatePublicIPRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreatePublicIPPayload", createPublicIPPayload) - ret0, _ := ret[0].(iaas.ApiCreatePublicIPRequest) - return ret0 -} - -// CreatePublicIPPayload indicates an expected call of CreatePublicIPPayload. -func (mr *MockApiCreatePublicIPRequestMockRecorder) CreatePublicIPPayload(createPublicIPPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreatePublicIPPayload", reflect.TypeOf((*MockApiCreatePublicIPRequest)(nil).CreatePublicIPPayload), createPublicIPPayload) -} - -// Execute mocks base method. -func (m *MockApiCreatePublicIPRequest) Execute() (*iaas.PublicIp, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.PublicIp) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiCreatePublicIPRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiCreatePublicIPRequest)(nil).Execute)) -} - -// MockApiCreateSecurityGroupRequest is a mock of ApiCreateSecurityGroupRequest interface. -type MockApiCreateSecurityGroupRequest struct { - ctrl *gomock.Controller - recorder *MockApiCreateSecurityGroupRequestMockRecorder - isgomock struct{} -} - -// MockApiCreateSecurityGroupRequestMockRecorder is the mock recorder for MockApiCreateSecurityGroupRequest. -type MockApiCreateSecurityGroupRequestMockRecorder struct { - mock *MockApiCreateSecurityGroupRequest -} - -// NewMockApiCreateSecurityGroupRequest creates a new mock instance. -func NewMockApiCreateSecurityGroupRequest(ctrl *gomock.Controller) *MockApiCreateSecurityGroupRequest { - mock := &MockApiCreateSecurityGroupRequest{ctrl: ctrl} - mock.recorder = &MockApiCreateSecurityGroupRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiCreateSecurityGroupRequest) EXPECT() *MockApiCreateSecurityGroupRequestMockRecorder { - return m.recorder -} - -// CreateSecurityGroupPayload mocks base method. -func (m *MockApiCreateSecurityGroupRequest) CreateSecurityGroupPayload(createSecurityGroupPayload iaas.CreateSecurityGroupPayload) iaas.ApiCreateSecurityGroupRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateSecurityGroupPayload", createSecurityGroupPayload) - ret0, _ := ret[0].(iaas.ApiCreateSecurityGroupRequest) - return ret0 -} - -// CreateSecurityGroupPayload indicates an expected call of CreateSecurityGroupPayload. -func (mr *MockApiCreateSecurityGroupRequestMockRecorder) CreateSecurityGroupPayload(createSecurityGroupPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSecurityGroupPayload", reflect.TypeOf((*MockApiCreateSecurityGroupRequest)(nil).CreateSecurityGroupPayload), createSecurityGroupPayload) -} - -// Execute mocks base method. -func (m *MockApiCreateSecurityGroupRequest) Execute() (*iaas.SecurityGroup, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.SecurityGroup) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiCreateSecurityGroupRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiCreateSecurityGroupRequest)(nil).Execute)) -} - -// MockApiCreateSecurityGroupRuleRequest is a mock of ApiCreateSecurityGroupRuleRequest interface. -type MockApiCreateSecurityGroupRuleRequest struct { - ctrl *gomock.Controller - recorder *MockApiCreateSecurityGroupRuleRequestMockRecorder - isgomock struct{} -} - -// MockApiCreateSecurityGroupRuleRequestMockRecorder is the mock recorder for MockApiCreateSecurityGroupRuleRequest. -type MockApiCreateSecurityGroupRuleRequestMockRecorder struct { - mock *MockApiCreateSecurityGroupRuleRequest -} - -// NewMockApiCreateSecurityGroupRuleRequest creates a new mock instance. -func NewMockApiCreateSecurityGroupRuleRequest(ctrl *gomock.Controller) *MockApiCreateSecurityGroupRuleRequest { - mock := &MockApiCreateSecurityGroupRuleRequest{ctrl: ctrl} - mock.recorder = &MockApiCreateSecurityGroupRuleRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiCreateSecurityGroupRuleRequest) EXPECT() *MockApiCreateSecurityGroupRuleRequestMockRecorder { - return m.recorder -} - -// CreateSecurityGroupRulePayload mocks base method. -func (m *MockApiCreateSecurityGroupRuleRequest) CreateSecurityGroupRulePayload(createSecurityGroupRulePayload iaas.CreateSecurityGroupRulePayload) iaas.ApiCreateSecurityGroupRuleRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateSecurityGroupRulePayload", createSecurityGroupRulePayload) - ret0, _ := ret[0].(iaas.ApiCreateSecurityGroupRuleRequest) - return ret0 -} - -// CreateSecurityGroupRulePayload indicates an expected call of CreateSecurityGroupRulePayload. -func (mr *MockApiCreateSecurityGroupRuleRequestMockRecorder) CreateSecurityGroupRulePayload(createSecurityGroupRulePayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSecurityGroupRulePayload", reflect.TypeOf((*MockApiCreateSecurityGroupRuleRequest)(nil).CreateSecurityGroupRulePayload), createSecurityGroupRulePayload) -} - -// Execute mocks base method. -func (m *MockApiCreateSecurityGroupRuleRequest) Execute() (*iaas.SecurityGroupRule, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.SecurityGroupRule) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiCreateSecurityGroupRuleRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiCreateSecurityGroupRuleRequest)(nil).Execute)) -} - -// MockApiCreateServerRequest is a mock of ApiCreateServerRequest interface. -type MockApiCreateServerRequest struct { - ctrl *gomock.Controller - recorder *MockApiCreateServerRequestMockRecorder - isgomock struct{} -} - -// MockApiCreateServerRequestMockRecorder is the mock recorder for MockApiCreateServerRequest. -type MockApiCreateServerRequestMockRecorder struct { - mock *MockApiCreateServerRequest -} - -// NewMockApiCreateServerRequest creates a new mock instance. -func NewMockApiCreateServerRequest(ctrl *gomock.Controller) *MockApiCreateServerRequest { - mock := &MockApiCreateServerRequest{ctrl: ctrl} - mock.recorder = &MockApiCreateServerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiCreateServerRequest) EXPECT() *MockApiCreateServerRequestMockRecorder { - return m.recorder -} - -// CreateServerPayload mocks base method. -func (m *MockApiCreateServerRequest) CreateServerPayload(createServerPayload iaas.CreateServerPayload) iaas.ApiCreateServerRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateServerPayload", createServerPayload) - ret0, _ := ret[0].(iaas.ApiCreateServerRequest) - return ret0 -} - -// CreateServerPayload indicates an expected call of CreateServerPayload. -func (mr *MockApiCreateServerRequestMockRecorder) CreateServerPayload(createServerPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateServerPayload", reflect.TypeOf((*MockApiCreateServerRequest)(nil).CreateServerPayload), createServerPayload) -} - -// Execute mocks base method. -func (m *MockApiCreateServerRequest) Execute() (*iaas.Server, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Server) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiCreateServerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiCreateServerRequest)(nil).Execute)) -} - -// MockApiCreateSnapshotRequest is a mock of ApiCreateSnapshotRequest interface. -type MockApiCreateSnapshotRequest struct { - ctrl *gomock.Controller - recorder *MockApiCreateSnapshotRequestMockRecorder - isgomock struct{} -} - -// MockApiCreateSnapshotRequestMockRecorder is the mock recorder for MockApiCreateSnapshotRequest. -type MockApiCreateSnapshotRequestMockRecorder struct { - mock *MockApiCreateSnapshotRequest -} - -// NewMockApiCreateSnapshotRequest creates a new mock instance. -func NewMockApiCreateSnapshotRequest(ctrl *gomock.Controller) *MockApiCreateSnapshotRequest { - mock := &MockApiCreateSnapshotRequest{ctrl: ctrl} - mock.recorder = &MockApiCreateSnapshotRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiCreateSnapshotRequest) EXPECT() *MockApiCreateSnapshotRequestMockRecorder { - return m.recorder -} - -// CreateSnapshotPayload mocks base method. -func (m *MockApiCreateSnapshotRequest) CreateSnapshotPayload(createSnapshotPayload iaas.CreateSnapshotPayload) iaas.ApiCreateSnapshotRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateSnapshotPayload", createSnapshotPayload) - ret0, _ := ret[0].(iaas.ApiCreateSnapshotRequest) - return ret0 -} - -// CreateSnapshotPayload indicates an expected call of CreateSnapshotPayload. -func (mr *MockApiCreateSnapshotRequestMockRecorder) CreateSnapshotPayload(createSnapshotPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSnapshotPayload", reflect.TypeOf((*MockApiCreateSnapshotRequest)(nil).CreateSnapshotPayload), createSnapshotPayload) -} - -// Execute mocks base method. -func (m *MockApiCreateSnapshotRequest) Execute() (*iaas.Snapshot, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Snapshot) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiCreateSnapshotRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiCreateSnapshotRequest)(nil).Execute)) -} - -// MockApiCreateVolumeRequest is a mock of ApiCreateVolumeRequest interface. -type MockApiCreateVolumeRequest struct { - ctrl *gomock.Controller - recorder *MockApiCreateVolumeRequestMockRecorder - isgomock struct{} -} - -// MockApiCreateVolumeRequestMockRecorder is the mock recorder for MockApiCreateVolumeRequest. -type MockApiCreateVolumeRequestMockRecorder struct { - mock *MockApiCreateVolumeRequest -} - -// NewMockApiCreateVolumeRequest creates a new mock instance. -func NewMockApiCreateVolumeRequest(ctrl *gomock.Controller) *MockApiCreateVolumeRequest { - mock := &MockApiCreateVolumeRequest{ctrl: ctrl} - mock.recorder = &MockApiCreateVolumeRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiCreateVolumeRequest) EXPECT() *MockApiCreateVolumeRequestMockRecorder { - return m.recorder -} - -// CreateVolumePayload mocks base method. -func (m *MockApiCreateVolumeRequest) CreateVolumePayload(createVolumePayload iaas.CreateVolumePayload) iaas.ApiCreateVolumeRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateVolumePayload", createVolumePayload) - ret0, _ := ret[0].(iaas.ApiCreateVolumeRequest) - return ret0 -} - -// CreateVolumePayload indicates an expected call of CreateVolumePayload. -func (mr *MockApiCreateVolumeRequestMockRecorder) CreateVolumePayload(createVolumePayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateVolumePayload", reflect.TypeOf((*MockApiCreateVolumeRequest)(nil).CreateVolumePayload), createVolumePayload) -} - -// Execute mocks base method. -func (m *MockApiCreateVolumeRequest) Execute() (*iaas.Volume, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Volume) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiCreateVolumeRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiCreateVolumeRequest)(nil).Execute)) -} - -// MockApiDeallocateServerRequest is a mock of ApiDeallocateServerRequest interface. -type MockApiDeallocateServerRequest struct { - ctrl *gomock.Controller - recorder *MockApiDeallocateServerRequestMockRecorder - isgomock struct{} -} - -// MockApiDeallocateServerRequestMockRecorder is the mock recorder for MockApiDeallocateServerRequest. -type MockApiDeallocateServerRequestMockRecorder struct { - mock *MockApiDeallocateServerRequest -} - -// NewMockApiDeallocateServerRequest creates a new mock instance. -func NewMockApiDeallocateServerRequest(ctrl *gomock.Controller) *MockApiDeallocateServerRequest { - mock := &MockApiDeallocateServerRequest{ctrl: ctrl} - mock.recorder = &MockApiDeallocateServerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiDeallocateServerRequest) EXPECT() *MockApiDeallocateServerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiDeallocateServerRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiDeallocateServerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiDeallocateServerRequest)(nil).Execute)) -} - -// MockApiDeleteAffinityGroupRequest is a mock of ApiDeleteAffinityGroupRequest interface. -type MockApiDeleteAffinityGroupRequest struct { - ctrl *gomock.Controller - recorder *MockApiDeleteAffinityGroupRequestMockRecorder - isgomock struct{} -} - -// MockApiDeleteAffinityGroupRequestMockRecorder is the mock recorder for MockApiDeleteAffinityGroupRequest. -type MockApiDeleteAffinityGroupRequestMockRecorder struct { - mock *MockApiDeleteAffinityGroupRequest -} - -// NewMockApiDeleteAffinityGroupRequest creates a new mock instance. -func NewMockApiDeleteAffinityGroupRequest(ctrl *gomock.Controller) *MockApiDeleteAffinityGroupRequest { - mock := &MockApiDeleteAffinityGroupRequest{ctrl: ctrl} - mock.recorder = &MockApiDeleteAffinityGroupRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiDeleteAffinityGroupRequest) EXPECT() *MockApiDeleteAffinityGroupRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiDeleteAffinityGroupRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiDeleteAffinityGroupRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiDeleteAffinityGroupRequest)(nil).Execute)) -} - -// MockApiDeleteBackupRequest is a mock of ApiDeleteBackupRequest interface. -type MockApiDeleteBackupRequest struct { - ctrl *gomock.Controller - recorder *MockApiDeleteBackupRequestMockRecorder - isgomock struct{} -} - -// MockApiDeleteBackupRequestMockRecorder is the mock recorder for MockApiDeleteBackupRequest. -type MockApiDeleteBackupRequestMockRecorder struct { - mock *MockApiDeleteBackupRequest -} - -// NewMockApiDeleteBackupRequest creates a new mock instance. -func NewMockApiDeleteBackupRequest(ctrl *gomock.Controller) *MockApiDeleteBackupRequest { - mock := &MockApiDeleteBackupRequest{ctrl: ctrl} - mock.recorder = &MockApiDeleteBackupRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiDeleteBackupRequest) EXPECT() *MockApiDeleteBackupRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiDeleteBackupRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiDeleteBackupRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiDeleteBackupRequest)(nil).Execute)) -} - -// Force mocks base method. -func (m *MockApiDeleteBackupRequest) Force(force bool) iaas.ApiDeleteBackupRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Force", force) - ret0, _ := ret[0].(iaas.ApiDeleteBackupRequest) - return ret0 -} - -// Force indicates an expected call of Force. -func (mr *MockApiDeleteBackupRequestMockRecorder) Force(force any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Force", reflect.TypeOf((*MockApiDeleteBackupRequest)(nil).Force), force) -} - -// MockApiDeleteImageRequest is a mock of ApiDeleteImageRequest interface. -type MockApiDeleteImageRequest struct { - ctrl *gomock.Controller - recorder *MockApiDeleteImageRequestMockRecorder - isgomock struct{} -} - -// MockApiDeleteImageRequestMockRecorder is the mock recorder for MockApiDeleteImageRequest. -type MockApiDeleteImageRequestMockRecorder struct { - mock *MockApiDeleteImageRequest -} - -// NewMockApiDeleteImageRequest creates a new mock instance. -func NewMockApiDeleteImageRequest(ctrl *gomock.Controller) *MockApiDeleteImageRequest { - mock := &MockApiDeleteImageRequest{ctrl: ctrl} - mock.recorder = &MockApiDeleteImageRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiDeleteImageRequest) EXPECT() *MockApiDeleteImageRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiDeleteImageRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiDeleteImageRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiDeleteImageRequest)(nil).Execute)) -} - -// MockApiDeleteImageShareConsumerRequest is a mock of ApiDeleteImageShareConsumerRequest interface. -type MockApiDeleteImageShareConsumerRequest struct { - ctrl *gomock.Controller - recorder *MockApiDeleteImageShareConsumerRequestMockRecorder - isgomock struct{} -} - -// MockApiDeleteImageShareConsumerRequestMockRecorder is the mock recorder for MockApiDeleteImageShareConsumerRequest. -type MockApiDeleteImageShareConsumerRequestMockRecorder struct { - mock *MockApiDeleteImageShareConsumerRequest -} - -// NewMockApiDeleteImageShareConsumerRequest creates a new mock instance. -func NewMockApiDeleteImageShareConsumerRequest(ctrl *gomock.Controller) *MockApiDeleteImageShareConsumerRequest { - mock := &MockApiDeleteImageShareConsumerRequest{ctrl: ctrl} - mock.recorder = &MockApiDeleteImageShareConsumerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiDeleteImageShareConsumerRequest) EXPECT() *MockApiDeleteImageShareConsumerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiDeleteImageShareConsumerRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiDeleteImageShareConsumerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiDeleteImageShareConsumerRequest)(nil).Execute)) -} - -// MockApiDeleteImageShareRequest is a mock of ApiDeleteImageShareRequest interface. -type MockApiDeleteImageShareRequest struct { - ctrl *gomock.Controller - recorder *MockApiDeleteImageShareRequestMockRecorder - isgomock struct{} -} - -// MockApiDeleteImageShareRequestMockRecorder is the mock recorder for MockApiDeleteImageShareRequest. -type MockApiDeleteImageShareRequestMockRecorder struct { - mock *MockApiDeleteImageShareRequest -} - -// NewMockApiDeleteImageShareRequest creates a new mock instance. -func NewMockApiDeleteImageShareRequest(ctrl *gomock.Controller) *MockApiDeleteImageShareRequest { - mock := &MockApiDeleteImageShareRequest{ctrl: ctrl} - mock.recorder = &MockApiDeleteImageShareRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiDeleteImageShareRequest) EXPECT() *MockApiDeleteImageShareRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiDeleteImageShareRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiDeleteImageShareRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiDeleteImageShareRequest)(nil).Execute)) -} - -// MockApiDeleteKeyPairRequest is a mock of ApiDeleteKeyPairRequest interface. -type MockApiDeleteKeyPairRequest struct { - ctrl *gomock.Controller - recorder *MockApiDeleteKeyPairRequestMockRecorder - isgomock struct{} -} - -// MockApiDeleteKeyPairRequestMockRecorder is the mock recorder for MockApiDeleteKeyPairRequest. -type MockApiDeleteKeyPairRequestMockRecorder struct { - mock *MockApiDeleteKeyPairRequest -} - -// NewMockApiDeleteKeyPairRequest creates a new mock instance. -func NewMockApiDeleteKeyPairRequest(ctrl *gomock.Controller) *MockApiDeleteKeyPairRequest { - mock := &MockApiDeleteKeyPairRequest{ctrl: ctrl} - mock.recorder = &MockApiDeleteKeyPairRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiDeleteKeyPairRequest) EXPECT() *MockApiDeleteKeyPairRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiDeleteKeyPairRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiDeleteKeyPairRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiDeleteKeyPairRequest)(nil).Execute)) -} - -// MockApiDeleteNetworkAreaRangeRequest is a mock of ApiDeleteNetworkAreaRangeRequest interface. -type MockApiDeleteNetworkAreaRangeRequest struct { - ctrl *gomock.Controller - recorder *MockApiDeleteNetworkAreaRangeRequestMockRecorder - isgomock struct{} -} - -// MockApiDeleteNetworkAreaRangeRequestMockRecorder is the mock recorder for MockApiDeleteNetworkAreaRangeRequest. -type MockApiDeleteNetworkAreaRangeRequestMockRecorder struct { - mock *MockApiDeleteNetworkAreaRangeRequest -} - -// NewMockApiDeleteNetworkAreaRangeRequest creates a new mock instance. -func NewMockApiDeleteNetworkAreaRangeRequest(ctrl *gomock.Controller) *MockApiDeleteNetworkAreaRangeRequest { - mock := &MockApiDeleteNetworkAreaRangeRequest{ctrl: ctrl} - mock.recorder = &MockApiDeleteNetworkAreaRangeRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiDeleteNetworkAreaRangeRequest) EXPECT() *MockApiDeleteNetworkAreaRangeRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiDeleteNetworkAreaRangeRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiDeleteNetworkAreaRangeRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiDeleteNetworkAreaRangeRequest)(nil).Execute)) -} - -// MockApiDeleteNetworkAreaRegionRequest is a mock of ApiDeleteNetworkAreaRegionRequest interface. -type MockApiDeleteNetworkAreaRegionRequest struct { - ctrl *gomock.Controller - recorder *MockApiDeleteNetworkAreaRegionRequestMockRecorder - isgomock struct{} -} - -// MockApiDeleteNetworkAreaRegionRequestMockRecorder is the mock recorder for MockApiDeleteNetworkAreaRegionRequest. -type MockApiDeleteNetworkAreaRegionRequestMockRecorder struct { - mock *MockApiDeleteNetworkAreaRegionRequest -} - -// NewMockApiDeleteNetworkAreaRegionRequest creates a new mock instance. -func NewMockApiDeleteNetworkAreaRegionRequest(ctrl *gomock.Controller) *MockApiDeleteNetworkAreaRegionRequest { - mock := &MockApiDeleteNetworkAreaRegionRequest{ctrl: ctrl} - mock.recorder = &MockApiDeleteNetworkAreaRegionRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiDeleteNetworkAreaRegionRequest) EXPECT() *MockApiDeleteNetworkAreaRegionRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiDeleteNetworkAreaRegionRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiDeleteNetworkAreaRegionRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiDeleteNetworkAreaRegionRequest)(nil).Execute)) -} - -// MockApiDeleteNetworkAreaRequest is a mock of ApiDeleteNetworkAreaRequest interface. -type MockApiDeleteNetworkAreaRequest struct { - ctrl *gomock.Controller - recorder *MockApiDeleteNetworkAreaRequestMockRecorder - isgomock struct{} -} - -// MockApiDeleteNetworkAreaRequestMockRecorder is the mock recorder for MockApiDeleteNetworkAreaRequest. -type MockApiDeleteNetworkAreaRequestMockRecorder struct { - mock *MockApiDeleteNetworkAreaRequest -} - -// NewMockApiDeleteNetworkAreaRequest creates a new mock instance. -func NewMockApiDeleteNetworkAreaRequest(ctrl *gomock.Controller) *MockApiDeleteNetworkAreaRequest { - mock := &MockApiDeleteNetworkAreaRequest{ctrl: ctrl} - mock.recorder = &MockApiDeleteNetworkAreaRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiDeleteNetworkAreaRequest) EXPECT() *MockApiDeleteNetworkAreaRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiDeleteNetworkAreaRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiDeleteNetworkAreaRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiDeleteNetworkAreaRequest)(nil).Execute)) -} - -// MockApiDeleteNetworkAreaRouteRequest is a mock of ApiDeleteNetworkAreaRouteRequest interface. -type MockApiDeleteNetworkAreaRouteRequest struct { - ctrl *gomock.Controller - recorder *MockApiDeleteNetworkAreaRouteRequestMockRecorder - isgomock struct{} -} - -// MockApiDeleteNetworkAreaRouteRequestMockRecorder is the mock recorder for MockApiDeleteNetworkAreaRouteRequest. -type MockApiDeleteNetworkAreaRouteRequestMockRecorder struct { - mock *MockApiDeleteNetworkAreaRouteRequest -} - -// NewMockApiDeleteNetworkAreaRouteRequest creates a new mock instance. -func NewMockApiDeleteNetworkAreaRouteRequest(ctrl *gomock.Controller) *MockApiDeleteNetworkAreaRouteRequest { - mock := &MockApiDeleteNetworkAreaRouteRequest{ctrl: ctrl} - mock.recorder = &MockApiDeleteNetworkAreaRouteRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiDeleteNetworkAreaRouteRequest) EXPECT() *MockApiDeleteNetworkAreaRouteRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiDeleteNetworkAreaRouteRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiDeleteNetworkAreaRouteRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiDeleteNetworkAreaRouteRequest)(nil).Execute)) -} - -// MockApiDeleteNetworkRequest is a mock of ApiDeleteNetworkRequest interface. -type MockApiDeleteNetworkRequest struct { - ctrl *gomock.Controller - recorder *MockApiDeleteNetworkRequestMockRecorder - isgomock struct{} -} - -// MockApiDeleteNetworkRequestMockRecorder is the mock recorder for MockApiDeleteNetworkRequest. -type MockApiDeleteNetworkRequestMockRecorder struct { - mock *MockApiDeleteNetworkRequest -} - -// NewMockApiDeleteNetworkRequest creates a new mock instance. -func NewMockApiDeleteNetworkRequest(ctrl *gomock.Controller) *MockApiDeleteNetworkRequest { - mock := &MockApiDeleteNetworkRequest{ctrl: ctrl} - mock.recorder = &MockApiDeleteNetworkRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiDeleteNetworkRequest) EXPECT() *MockApiDeleteNetworkRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiDeleteNetworkRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiDeleteNetworkRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiDeleteNetworkRequest)(nil).Execute)) -} - -// MockApiDeleteNicRequest is a mock of ApiDeleteNicRequest interface. -type MockApiDeleteNicRequest struct { - ctrl *gomock.Controller - recorder *MockApiDeleteNicRequestMockRecorder - isgomock struct{} -} - -// MockApiDeleteNicRequestMockRecorder is the mock recorder for MockApiDeleteNicRequest. -type MockApiDeleteNicRequestMockRecorder struct { - mock *MockApiDeleteNicRequest -} - -// NewMockApiDeleteNicRequest creates a new mock instance. -func NewMockApiDeleteNicRequest(ctrl *gomock.Controller) *MockApiDeleteNicRequest { - mock := &MockApiDeleteNicRequest{ctrl: ctrl} - mock.recorder = &MockApiDeleteNicRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiDeleteNicRequest) EXPECT() *MockApiDeleteNicRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiDeleteNicRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiDeleteNicRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiDeleteNicRequest)(nil).Execute)) -} - -// MockApiDeletePublicIPRequest is a mock of ApiDeletePublicIPRequest interface. -type MockApiDeletePublicIPRequest struct { - ctrl *gomock.Controller - recorder *MockApiDeletePublicIPRequestMockRecorder - isgomock struct{} -} - -// MockApiDeletePublicIPRequestMockRecorder is the mock recorder for MockApiDeletePublicIPRequest. -type MockApiDeletePublicIPRequestMockRecorder struct { - mock *MockApiDeletePublicIPRequest -} - -// NewMockApiDeletePublicIPRequest creates a new mock instance. -func NewMockApiDeletePublicIPRequest(ctrl *gomock.Controller) *MockApiDeletePublicIPRequest { - mock := &MockApiDeletePublicIPRequest{ctrl: ctrl} - mock.recorder = &MockApiDeletePublicIPRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiDeletePublicIPRequest) EXPECT() *MockApiDeletePublicIPRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiDeletePublicIPRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiDeletePublicIPRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiDeletePublicIPRequest)(nil).Execute)) -} - -// MockApiDeleteRouteFromRoutingTableRequest is a mock of ApiDeleteRouteFromRoutingTableRequest interface. -type MockApiDeleteRouteFromRoutingTableRequest struct { - ctrl *gomock.Controller - recorder *MockApiDeleteRouteFromRoutingTableRequestMockRecorder - isgomock struct{} -} - -// MockApiDeleteRouteFromRoutingTableRequestMockRecorder is the mock recorder for MockApiDeleteRouteFromRoutingTableRequest. -type MockApiDeleteRouteFromRoutingTableRequestMockRecorder struct { - mock *MockApiDeleteRouteFromRoutingTableRequest -} - -// NewMockApiDeleteRouteFromRoutingTableRequest creates a new mock instance. -func NewMockApiDeleteRouteFromRoutingTableRequest(ctrl *gomock.Controller) *MockApiDeleteRouteFromRoutingTableRequest { - mock := &MockApiDeleteRouteFromRoutingTableRequest{ctrl: ctrl} - mock.recorder = &MockApiDeleteRouteFromRoutingTableRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiDeleteRouteFromRoutingTableRequest) EXPECT() *MockApiDeleteRouteFromRoutingTableRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiDeleteRouteFromRoutingTableRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiDeleteRouteFromRoutingTableRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiDeleteRouteFromRoutingTableRequest)(nil).Execute)) -} - -// MockApiDeleteRoutingTableFromAreaRequest is a mock of ApiDeleteRoutingTableFromAreaRequest interface. -type MockApiDeleteRoutingTableFromAreaRequest struct { - ctrl *gomock.Controller - recorder *MockApiDeleteRoutingTableFromAreaRequestMockRecorder - isgomock struct{} -} - -// MockApiDeleteRoutingTableFromAreaRequestMockRecorder is the mock recorder for MockApiDeleteRoutingTableFromAreaRequest. -type MockApiDeleteRoutingTableFromAreaRequestMockRecorder struct { - mock *MockApiDeleteRoutingTableFromAreaRequest -} - -// NewMockApiDeleteRoutingTableFromAreaRequest creates a new mock instance. -func NewMockApiDeleteRoutingTableFromAreaRequest(ctrl *gomock.Controller) *MockApiDeleteRoutingTableFromAreaRequest { - mock := &MockApiDeleteRoutingTableFromAreaRequest{ctrl: ctrl} - mock.recorder = &MockApiDeleteRoutingTableFromAreaRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiDeleteRoutingTableFromAreaRequest) EXPECT() *MockApiDeleteRoutingTableFromAreaRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiDeleteRoutingTableFromAreaRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiDeleteRoutingTableFromAreaRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiDeleteRoutingTableFromAreaRequest)(nil).Execute)) -} - -// MockApiDeleteSecurityGroupRequest is a mock of ApiDeleteSecurityGroupRequest interface. -type MockApiDeleteSecurityGroupRequest struct { - ctrl *gomock.Controller - recorder *MockApiDeleteSecurityGroupRequestMockRecorder - isgomock struct{} -} - -// MockApiDeleteSecurityGroupRequestMockRecorder is the mock recorder for MockApiDeleteSecurityGroupRequest. -type MockApiDeleteSecurityGroupRequestMockRecorder struct { - mock *MockApiDeleteSecurityGroupRequest -} - -// NewMockApiDeleteSecurityGroupRequest creates a new mock instance. -func NewMockApiDeleteSecurityGroupRequest(ctrl *gomock.Controller) *MockApiDeleteSecurityGroupRequest { - mock := &MockApiDeleteSecurityGroupRequest{ctrl: ctrl} - mock.recorder = &MockApiDeleteSecurityGroupRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiDeleteSecurityGroupRequest) EXPECT() *MockApiDeleteSecurityGroupRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiDeleteSecurityGroupRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiDeleteSecurityGroupRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiDeleteSecurityGroupRequest)(nil).Execute)) -} - -// MockApiDeleteSecurityGroupRuleRequest is a mock of ApiDeleteSecurityGroupRuleRequest interface. -type MockApiDeleteSecurityGroupRuleRequest struct { - ctrl *gomock.Controller - recorder *MockApiDeleteSecurityGroupRuleRequestMockRecorder - isgomock struct{} -} - -// MockApiDeleteSecurityGroupRuleRequestMockRecorder is the mock recorder for MockApiDeleteSecurityGroupRuleRequest. -type MockApiDeleteSecurityGroupRuleRequestMockRecorder struct { - mock *MockApiDeleteSecurityGroupRuleRequest -} - -// NewMockApiDeleteSecurityGroupRuleRequest creates a new mock instance. -func NewMockApiDeleteSecurityGroupRuleRequest(ctrl *gomock.Controller) *MockApiDeleteSecurityGroupRuleRequest { - mock := &MockApiDeleteSecurityGroupRuleRequest{ctrl: ctrl} - mock.recorder = &MockApiDeleteSecurityGroupRuleRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiDeleteSecurityGroupRuleRequest) EXPECT() *MockApiDeleteSecurityGroupRuleRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiDeleteSecurityGroupRuleRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiDeleteSecurityGroupRuleRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiDeleteSecurityGroupRuleRequest)(nil).Execute)) -} - -// MockApiDeleteServerRequest is a mock of ApiDeleteServerRequest interface. -type MockApiDeleteServerRequest struct { - ctrl *gomock.Controller - recorder *MockApiDeleteServerRequestMockRecorder - isgomock struct{} -} - -// MockApiDeleteServerRequestMockRecorder is the mock recorder for MockApiDeleteServerRequest. -type MockApiDeleteServerRequestMockRecorder struct { - mock *MockApiDeleteServerRequest -} - -// NewMockApiDeleteServerRequest creates a new mock instance. -func NewMockApiDeleteServerRequest(ctrl *gomock.Controller) *MockApiDeleteServerRequest { - mock := &MockApiDeleteServerRequest{ctrl: ctrl} - mock.recorder = &MockApiDeleteServerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiDeleteServerRequest) EXPECT() *MockApiDeleteServerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiDeleteServerRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiDeleteServerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiDeleteServerRequest)(nil).Execute)) -} - -// MockApiDeleteSnapshotRequest is a mock of ApiDeleteSnapshotRequest interface. -type MockApiDeleteSnapshotRequest struct { - ctrl *gomock.Controller - recorder *MockApiDeleteSnapshotRequestMockRecorder - isgomock struct{} -} - -// MockApiDeleteSnapshotRequestMockRecorder is the mock recorder for MockApiDeleteSnapshotRequest. -type MockApiDeleteSnapshotRequestMockRecorder struct { - mock *MockApiDeleteSnapshotRequest -} - -// NewMockApiDeleteSnapshotRequest creates a new mock instance. -func NewMockApiDeleteSnapshotRequest(ctrl *gomock.Controller) *MockApiDeleteSnapshotRequest { - mock := &MockApiDeleteSnapshotRequest{ctrl: ctrl} - mock.recorder = &MockApiDeleteSnapshotRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiDeleteSnapshotRequest) EXPECT() *MockApiDeleteSnapshotRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiDeleteSnapshotRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiDeleteSnapshotRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiDeleteSnapshotRequest)(nil).Execute)) -} - -// MockApiDeleteVolumeRequest is a mock of ApiDeleteVolumeRequest interface. -type MockApiDeleteVolumeRequest struct { - ctrl *gomock.Controller - recorder *MockApiDeleteVolumeRequestMockRecorder - isgomock struct{} -} - -// MockApiDeleteVolumeRequestMockRecorder is the mock recorder for MockApiDeleteVolumeRequest. -type MockApiDeleteVolumeRequestMockRecorder struct { - mock *MockApiDeleteVolumeRequest -} - -// NewMockApiDeleteVolumeRequest creates a new mock instance. -func NewMockApiDeleteVolumeRequest(ctrl *gomock.Controller) *MockApiDeleteVolumeRequest { - mock := &MockApiDeleteVolumeRequest{ctrl: ctrl} - mock.recorder = &MockApiDeleteVolumeRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiDeleteVolumeRequest) EXPECT() *MockApiDeleteVolumeRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiDeleteVolumeRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiDeleteVolumeRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiDeleteVolumeRequest)(nil).Execute)) -} - -// MockApiGetAffinityGroupRequest is a mock of ApiGetAffinityGroupRequest interface. -type MockApiGetAffinityGroupRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetAffinityGroupRequestMockRecorder - isgomock struct{} -} - -// MockApiGetAffinityGroupRequestMockRecorder is the mock recorder for MockApiGetAffinityGroupRequest. -type MockApiGetAffinityGroupRequestMockRecorder struct { - mock *MockApiGetAffinityGroupRequest -} - -// NewMockApiGetAffinityGroupRequest creates a new mock instance. -func NewMockApiGetAffinityGroupRequest(ctrl *gomock.Controller) *MockApiGetAffinityGroupRequest { - mock := &MockApiGetAffinityGroupRequest{ctrl: ctrl} - mock.recorder = &MockApiGetAffinityGroupRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetAffinityGroupRequest) EXPECT() *MockApiGetAffinityGroupRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetAffinityGroupRequest) Execute() (*iaas.AffinityGroup, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.AffinityGroup) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetAffinityGroupRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetAffinityGroupRequest)(nil).Execute)) -} - -// MockApiGetAttachedVolumeRequest is a mock of ApiGetAttachedVolumeRequest interface. -type MockApiGetAttachedVolumeRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetAttachedVolumeRequestMockRecorder - isgomock struct{} -} - -// MockApiGetAttachedVolumeRequestMockRecorder is the mock recorder for MockApiGetAttachedVolumeRequest. -type MockApiGetAttachedVolumeRequestMockRecorder struct { - mock *MockApiGetAttachedVolumeRequest -} - -// NewMockApiGetAttachedVolumeRequest creates a new mock instance. -func NewMockApiGetAttachedVolumeRequest(ctrl *gomock.Controller) *MockApiGetAttachedVolumeRequest { - mock := &MockApiGetAttachedVolumeRequest{ctrl: ctrl} - mock.recorder = &MockApiGetAttachedVolumeRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetAttachedVolumeRequest) EXPECT() *MockApiGetAttachedVolumeRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetAttachedVolumeRequest) Execute() (*iaas.VolumeAttachment, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.VolumeAttachment) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetAttachedVolumeRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetAttachedVolumeRequest)(nil).Execute)) -} - -// MockApiGetBackupRequest is a mock of ApiGetBackupRequest interface. -type MockApiGetBackupRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetBackupRequestMockRecorder - isgomock struct{} -} - -// MockApiGetBackupRequestMockRecorder is the mock recorder for MockApiGetBackupRequest. -type MockApiGetBackupRequestMockRecorder struct { - mock *MockApiGetBackupRequest -} - -// NewMockApiGetBackupRequest creates a new mock instance. -func NewMockApiGetBackupRequest(ctrl *gomock.Controller) *MockApiGetBackupRequest { - mock := &MockApiGetBackupRequest{ctrl: ctrl} - mock.recorder = &MockApiGetBackupRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetBackupRequest) EXPECT() *MockApiGetBackupRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetBackupRequest) Execute() (*iaas.Backup, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Backup) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetBackupRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetBackupRequest)(nil).Execute)) -} - -// MockApiGetImageRequest is a mock of ApiGetImageRequest interface. -type MockApiGetImageRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetImageRequestMockRecorder - isgomock struct{} -} - -// MockApiGetImageRequestMockRecorder is the mock recorder for MockApiGetImageRequest. -type MockApiGetImageRequestMockRecorder struct { - mock *MockApiGetImageRequest -} - -// NewMockApiGetImageRequest creates a new mock instance. -func NewMockApiGetImageRequest(ctrl *gomock.Controller) *MockApiGetImageRequest { - mock := &MockApiGetImageRequest{ctrl: ctrl} - mock.recorder = &MockApiGetImageRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetImageRequest) EXPECT() *MockApiGetImageRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetImageRequest) Execute() (*iaas.Image, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Image) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetImageRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetImageRequest)(nil).Execute)) -} - -// MockApiGetImageShareConsumerRequest is a mock of ApiGetImageShareConsumerRequest interface. -type MockApiGetImageShareConsumerRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetImageShareConsumerRequestMockRecorder - isgomock struct{} -} - -// MockApiGetImageShareConsumerRequestMockRecorder is the mock recorder for MockApiGetImageShareConsumerRequest. -type MockApiGetImageShareConsumerRequestMockRecorder struct { - mock *MockApiGetImageShareConsumerRequest -} - -// NewMockApiGetImageShareConsumerRequest creates a new mock instance. -func NewMockApiGetImageShareConsumerRequest(ctrl *gomock.Controller) *MockApiGetImageShareConsumerRequest { - mock := &MockApiGetImageShareConsumerRequest{ctrl: ctrl} - mock.recorder = &MockApiGetImageShareConsumerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetImageShareConsumerRequest) EXPECT() *MockApiGetImageShareConsumerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetImageShareConsumerRequest) Execute() (*iaas.ImageShareConsumer, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.ImageShareConsumer) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetImageShareConsumerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetImageShareConsumerRequest)(nil).Execute)) -} - -// MockApiGetImageShareRequest is a mock of ApiGetImageShareRequest interface. -type MockApiGetImageShareRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetImageShareRequestMockRecorder - isgomock struct{} -} - -// MockApiGetImageShareRequestMockRecorder is the mock recorder for MockApiGetImageShareRequest. -type MockApiGetImageShareRequestMockRecorder struct { - mock *MockApiGetImageShareRequest -} - -// NewMockApiGetImageShareRequest creates a new mock instance. -func NewMockApiGetImageShareRequest(ctrl *gomock.Controller) *MockApiGetImageShareRequest { - mock := &MockApiGetImageShareRequest{ctrl: ctrl} - mock.recorder = &MockApiGetImageShareRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetImageShareRequest) EXPECT() *MockApiGetImageShareRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetImageShareRequest) Execute() (*iaas.ImageShare, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.ImageShare) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetImageShareRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetImageShareRequest)(nil).Execute)) -} - -// MockApiGetKeyPairRequest is a mock of ApiGetKeyPairRequest interface. -type MockApiGetKeyPairRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetKeyPairRequestMockRecorder - isgomock struct{} -} - -// MockApiGetKeyPairRequestMockRecorder is the mock recorder for MockApiGetKeyPairRequest. -type MockApiGetKeyPairRequestMockRecorder struct { - mock *MockApiGetKeyPairRequest -} - -// NewMockApiGetKeyPairRequest creates a new mock instance. -func NewMockApiGetKeyPairRequest(ctrl *gomock.Controller) *MockApiGetKeyPairRequest { - mock := &MockApiGetKeyPairRequest{ctrl: ctrl} - mock.recorder = &MockApiGetKeyPairRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetKeyPairRequest) EXPECT() *MockApiGetKeyPairRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetKeyPairRequest) Execute() (*iaas.Keypair, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Keypair) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetKeyPairRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetKeyPairRequest)(nil).Execute)) -} - -// MockApiGetMachineTypeRequest is a mock of ApiGetMachineTypeRequest interface. -type MockApiGetMachineTypeRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetMachineTypeRequestMockRecorder - isgomock struct{} -} - -// MockApiGetMachineTypeRequestMockRecorder is the mock recorder for MockApiGetMachineTypeRequest. -type MockApiGetMachineTypeRequestMockRecorder struct { - mock *MockApiGetMachineTypeRequest -} - -// NewMockApiGetMachineTypeRequest creates a new mock instance. -func NewMockApiGetMachineTypeRequest(ctrl *gomock.Controller) *MockApiGetMachineTypeRequest { - mock := &MockApiGetMachineTypeRequest{ctrl: ctrl} - mock.recorder = &MockApiGetMachineTypeRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetMachineTypeRequest) EXPECT() *MockApiGetMachineTypeRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetMachineTypeRequest) Execute() (*iaas.MachineType, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.MachineType) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetMachineTypeRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetMachineTypeRequest)(nil).Execute)) -} - -// MockApiGetNetworkAreaRangeRequest is a mock of ApiGetNetworkAreaRangeRequest interface. -type MockApiGetNetworkAreaRangeRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetNetworkAreaRangeRequestMockRecorder - isgomock struct{} -} - -// MockApiGetNetworkAreaRangeRequestMockRecorder is the mock recorder for MockApiGetNetworkAreaRangeRequest. -type MockApiGetNetworkAreaRangeRequestMockRecorder struct { - mock *MockApiGetNetworkAreaRangeRequest -} - -// NewMockApiGetNetworkAreaRangeRequest creates a new mock instance. -func NewMockApiGetNetworkAreaRangeRequest(ctrl *gomock.Controller) *MockApiGetNetworkAreaRangeRequest { - mock := &MockApiGetNetworkAreaRangeRequest{ctrl: ctrl} - mock.recorder = &MockApiGetNetworkAreaRangeRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetNetworkAreaRangeRequest) EXPECT() *MockApiGetNetworkAreaRangeRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetNetworkAreaRangeRequest) Execute() (*iaas.NetworkRange, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.NetworkRange) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetNetworkAreaRangeRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetNetworkAreaRangeRequest)(nil).Execute)) -} - -// MockApiGetNetworkAreaRegionRequest is a mock of ApiGetNetworkAreaRegionRequest interface. -type MockApiGetNetworkAreaRegionRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetNetworkAreaRegionRequestMockRecorder - isgomock struct{} -} - -// MockApiGetNetworkAreaRegionRequestMockRecorder is the mock recorder for MockApiGetNetworkAreaRegionRequest. -type MockApiGetNetworkAreaRegionRequestMockRecorder struct { - mock *MockApiGetNetworkAreaRegionRequest -} - -// NewMockApiGetNetworkAreaRegionRequest creates a new mock instance. -func NewMockApiGetNetworkAreaRegionRequest(ctrl *gomock.Controller) *MockApiGetNetworkAreaRegionRequest { - mock := &MockApiGetNetworkAreaRegionRequest{ctrl: ctrl} - mock.recorder = &MockApiGetNetworkAreaRegionRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetNetworkAreaRegionRequest) EXPECT() *MockApiGetNetworkAreaRegionRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetNetworkAreaRegionRequest) Execute() (*iaas.RegionalArea, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.RegionalArea) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetNetworkAreaRegionRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetNetworkAreaRegionRequest)(nil).Execute)) -} - -// MockApiGetNetworkAreaRequest is a mock of ApiGetNetworkAreaRequest interface. -type MockApiGetNetworkAreaRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetNetworkAreaRequestMockRecorder - isgomock struct{} -} - -// MockApiGetNetworkAreaRequestMockRecorder is the mock recorder for MockApiGetNetworkAreaRequest. -type MockApiGetNetworkAreaRequestMockRecorder struct { - mock *MockApiGetNetworkAreaRequest -} - -// NewMockApiGetNetworkAreaRequest creates a new mock instance. -func NewMockApiGetNetworkAreaRequest(ctrl *gomock.Controller) *MockApiGetNetworkAreaRequest { - mock := &MockApiGetNetworkAreaRequest{ctrl: ctrl} - mock.recorder = &MockApiGetNetworkAreaRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetNetworkAreaRequest) EXPECT() *MockApiGetNetworkAreaRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetNetworkAreaRequest) Execute() (*iaas.NetworkArea, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.NetworkArea) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetNetworkAreaRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetNetworkAreaRequest)(nil).Execute)) -} - -// MockApiGetNetworkAreaRouteRequest is a mock of ApiGetNetworkAreaRouteRequest interface. -type MockApiGetNetworkAreaRouteRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetNetworkAreaRouteRequestMockRecorder - isgomock struct{} -} - -// MockApiGetNetworkAreaRouteRequestMockRecorder is the mock recorder for MockApiGetNetworkAreaRouteRequest. -type MockApiGetNetworkAreaRouteRequestMockRecorder struct { - mock *MockApiGetNetworkAreaRouteRequest -} - -// NewMockApiGetNetworkAreaRouteRequest creates a new mock instance. -func NewMockApiGetNetworkAreaRouteRequest(ctrl *gomock.Controller) *MockApiGetNetworkAreaRouteRequest { - mock := &MockApiGetNetworkAreaRouteRequest{ctrl: ctrl} - mock.recorder = &MockApiGetNetworkAreaRouteRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetNetworkAreaRouteRequest) EXPECT() *MockApiGetNetworkAreaRouteRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetNetworkAreaRouteRequest) Execute() (*iaas.Route, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Route) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetNetworkAreaRouteRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetNetworkAreaRouteRequest)(nil).Execute)) -} - -// MockApiGetNetworkRequest is a mock of ApiGetNetworkRequest interface. -type MockApiGetNetworkRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetNetworkRequestMockRecorder - isgomock struct{} -} - -// MockApiGetNetworkRequestMockRecorder is the mock recorder for MockApiGetNetworkRequest. -type MockApiGetNetworkRequestMockRecorder struct { - mock *MockApiGetNetworkRequest -} - -// NewMockApiGetNetworkRequest creates a new mock instance. -func NewMockApiGetNetworkRequest(ctrl *gomock.Controller) *MockApiGetNetworkRequest { - mock := &MockApiGetNetworkRequest{ctrl: ctrl} - mock.recorder = &MockApiGetNetworkRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetNetworkRequest) EXPECT() *MockApiGetNetworkRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetNetworkRequest) Execute() (*iaas.Network, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Network) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetNetworkRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetNetworkRequest)(nil).Execute)) -} - -// MockApiGetNicRequest is a mock of ApiGetNicRequest interface. -type MockApiGetNicRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetNicRequestMockRecorder - isgomock struct{} -} - -// MockApiGetNicRequestMockRecorder is the mock recorder for MockApiGetNicRequest. -type MockApiGetNicRequestMockRecorder struct { - mock *MockApiGetNicRequest -} - -// NewMockApiGetNicRequest creates a new mock instance. -func NewMockApiGetNicRequest(ctrl *gomock.Controller) *MockApiGetNicRequest { - mock := &MockApiGetNicRequest{ctrl: ctrl} - mock.recorder = &MockApiGetNicRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetNicRequest) EXPECT() *MockApiGetNicRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetNicRequest) Execute() (*iaas.NIC, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.NIC) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetNicRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetNicRequest)(nil).Execute)) -} - -// MockApiGetOrganizationRequestRequest is a mock of ApiGetOrganizationRequestRequest interface. -type MockApiGetOrganizationRequestRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetOrganizationRequestRequestMockRecorder - isgomock struct{} -} - -// MockApiGetOrganizationRequestRequestMockRecorder is the mock recorder for MockApiGetOrganizationRequestRequest. -type MockApiGetOrganizationRequestRequestMockRecorder struct { - mock *MockApiGetOrganizationRequestRequest -} - -// NewMockApiGetOrganizationRequestRequest creates a new mock instance. -func NewMockApiGetOrganizationRequestRequest(ctrl *gomock.Controller) *MockApiGetOrganizationRequestRequest { - mock := &MockApiGetOrganizationRequestRequest{ctrl: ctrl} - mock.recorder = &MockApiGetOrganizationRequestRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetOrganizationRequestRequest) EXPECT() *MockApiGetOrganizationRequestRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetOrganizationRequestRequest) Execute() (*iaas.Request, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Request) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetOrganizationRequestRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetOrganizationRequestRequest)(nil).Execute)) -} - -// MockApiGetProjectDetailsRequest is a mock of ApiGetProjectDetailsRequest interface. -type MockApiGetProjectDetailsRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetProjectDetailsRequestMockRecorder - isgomock struct{} -} - -// MockApiGetProjectDetailsRequestMockRecorder is the mock recorder for MockApiGetProjectDetailsRequest. -type MockApiGetProjectDetailsRequestMockRecorder struct { - mock *MockApiGetProjectDetailsRequest -} - -// NewMockApiGetProjectDetailsRequest creates a new mock instance. -func NewMockApiGetProjectDetailsRequest(ctrl *gomock.Controller) *MockApiGetProjectDetailsRequest { - mock := &MockApiGetProjectDetailsRequest{ctrl: ctrl} - mock.recorder = &MockApiGetProjectDetailsRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetProjectDetailsRequest) EXPECT() *MockApiGetProjectDetailsRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetProjectDetailsRequest) Execute() (*iaas.Project, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Project) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetProjectDetailsRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetProjectDetailsRequest)(nil).Execute)) -} - -// MockApiGetProjectNICRequest is a mock of ApiGetProjectNICRequest interface. -type MockApiGetProjectNICRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetProjectNICRequestMockRecorder - isgomock struct{} -} - -// MockApiGetProjectNICRequestMockRecorder is the mock recorder for MockApiGetProjectNICRequest. -type MockApiGetProjectNICRequestMockRecorder struct { - mock *MockApiGetProjectNICRequest -} - -// NewMockApiGetProjectNICRequest creates a new mock instance. -func NewMockApiGetProjectNICRequest(ctrl *gomock.Controller) *MockApiGetProjectNICRequest { - mock := &MockApiGetProjectNICRequest{ctrl: ctrl} - mock.recorder = &MockApiGetProjectNICRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetProjectNICRequest) EXPECT() *MockApiGetProjectNICRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetProjectNICRequest) Execute() (*iaas.NIC, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.NIC) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetProjectNICRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetProjectNICRequest)(nil).Execute)) -} - -// MockApiGetProjectRequestRequest is a mock of ApiGetProjectRequestRequest interface. -type MockApiGetProjectRequestRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetProjectRequestRequestMockRecorder - isgomock struct{} -} - -// MockApiGetProjectRequestRequestMockRecorder is the mock recorder for MockApiGetProjectRequestRequest. -type MockApiGetProjectRequestRequestMockRecorder struct { - mock *MockApiGetProjectRequestRequest -} - -// NewMockApiGetProjectRequestRequest creates a new mock instance. -func NewMockApiGetProjectRequestRequest(ctrl *gomock.Controller) *MockApiGetProjectRequestRequest { - mock := &MockApiGetProjectRequestRequest{ctrl: ctrl} - mock.recorder = &MockApiGetProjectRequestRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetProjectRequestRequest) EXPECT() *MockApiGetProjectRequestRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetProjectRequestRequest) Execute() (*iaas.Request, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Request) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetProjectRequestRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetProjectRequestRequest)(nil).Execute)) -} - -// MockApiGetPublicIPRequest is a mock of ApiGetPublicIPRequest interface. -type MockApiGetPublicIPRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetPublicIPRequestMockRecorder - isgomock struct{} -} - -// MockApiGetPublicIPRequestMockRecorder is the mock recorder for MockApiGetPublicIPRequest. -type MockApiGetPublicIPRequestMockRecorder struct { - mock *MockApiGetPublicIPRequest -} - -// NewMockApiGetPublicIPRequest creates a new mock instance. -func NewMockApiGetPublicIPRequest(ctrl *gomock.Controller) *MockApiGetPublicIPRequest { - mock := &MockApiGetPublicIPRequest{ctrl: ctrl} - mock.recorder = &MockApiGetPublicIPRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetPublicIPRequest) EXPECT() *MockApiGetPublicIPRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetPublicIPRequest) Execute() (*iaas.PublicIp, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.PublicIp) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetPublicIPRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetPublicIPRequest)(nil).Execute)) -} - -// MockApiGetRouteOfRoutingTableRequest is a mock of ApiGetRouteOfRoutingTableRequest interface. -type MockApiGetRouteOfRoutingTableRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetRouteOfRoutingTableRequestMockRecorder - isgomock struct{} -} - -// MockApiGetRouteOfRoutingTableRequestMockRecorder is the mock recorder for MockApiGetRouteOfRoutingTableRequest. -type MockApiGetRouteOfRoutingTableRequestMockRecorder struct { - mock *MockApiGetRouteOfRoutingTableRequest -} - -// NewMockApiGetRouteOfRoutingTableRequest creates a new mock instance. -func NewMockApiGetRouteOfRoutingTableRequest(ctrl *gomock.Controller) *MockApiGetRouteOfRoutingTableRequest { - mock := &MockApiGetRouteOfRoutingTableRequest{ctrl: ctrl} - mock.recorder = &MockApiGetRouteOfRoutingTableRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetRouteOfRoutingTableRequest) EXPECT() *MockApiGetRouteOfRoutingTableRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetRouteOfRoutingTableRequest) Execute() (*iaas.Route, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Route) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetRouteOfRoutingTableRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetRouteOfRoutingTableRequest)(nil).Execute)) -} - -// MockApiGetRoutingTableOfAreaRequest is a mock of ApiGetRoutingTableOfAreaRequest interface. -type MockApiGetRoutingTableOfAreaRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetRoutingTableOfAreaRequestMockRecorder - isgomock struct{} -} - -// MockApiGetRoutingTableOfAreaRequestMockRecorder is the mock recorder for MockApiGetRoutingTableOfAreaRequest. -type MockApiGetRoutingTableOfAreaRequestMockRecorder struct { - mock *MockApiGetRoutingTableOfAreaRequest -} - -// NewMockApiGetRoutingTableOfAreaRequest creates a new mock instance. -func NewMockApiGetRoutingTableOfAreaRequest(ctrl *gomock.Controller) *MockApiGetRoutingTableOfAreaRequest { - mock := &MockApiGetRoutingTableOfAreaRequest{ctrl: ctrl} - mock.recorder = &MockApiGetRoutingTableOfAreaRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetRoutingTableOfAreaRequest) EXPECT() *MockApiGetRoutingTableOfAreaRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetRoutingTableOfAreaRequest) Execute() (*iaas.RoutingTable, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.RoutingTable) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetRoutingTableOfAreaRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetRoutingTableOfAreaRequest)(nil).Execute)) -} - -// MockApiGetSecurityGroupRequest is a mock of ApiGetSecurityGroupRequest interface. -type MockApiGetSecurityGroupRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetSecurityGroupRequestMockRecorder - isgomock struct{} -} - -// MockApiGetSecurityGroupRequestMockRecorder is the mock recorder for MockApiGetSecurityGroupRequest. -type MockApiGetSecurityGroupRequestMockRecorder struct { - mock *MockApiGetSecurityGroupRequest -} - -// NewMockApiGetSecurityGroupRequest creates a new mock instance. -func NewMockApiGetSecurityGroupRequest(ctrl *gomock.Controller) *MockApiGetSecurityGroupRequest { - mock := &MockApiGetSecurityGroupRequest{ctrl: ctrl} - mock.recorder = &MockApiGetSecurityGroupRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetSecurityGroupRequest) EXPECT() *MockApiGetSecurityGroupRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetSecurityGroupRequest) Execute() (*iaas.SecurityGroup, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.SecurityGroup) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetSecurityGroupRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetSecurityGroupRequest)(nil).Execute)) -} - -// MockApiGetSecurityGroupRuleRequest is a mock of ApiGetSecurityGroupRuleRequest interface. -type MockApiGetSecurityGroupRuleRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetSecurityGroupRuleRequestMockRecorder - isgomock struct{} -} - -// MockApiGetSecurityGroupRuleRequestMockRecorder is the mock recorder for MockApiGetSecurityGroupRuleRequest. -type MockApiGetSecurityGroupRuleRequestMockRecorder struct { - mock *MockApiGetSecurityGroupRuleRequest -} - -// NewMockApiGetSecurityGroupRuleRequest creates a new mock instance. -func NewMockApiGetSecurityGroupRuleRequest(ctrl *gomock.Controller) *MockApiGetSecurityGroupRuleRequest { - mock := &MockApiGetSecurityGroupRuleRequest{ctrl: ctrl} - mock.recorder = &MockApiGetSecurityGroupRuleRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetSecurityGroupRuleRequest) EXPECT() *MockApiGetSecurityGroupRuleRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetSecurityGroupRuleRequest) Execute() (*iaas.SecurityGroupRule, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.SecurityGroupRule) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetSecurityGroupRuleRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetSecurityGroupRuleRequest)(nil).Execute)) -} - -// MockApiGetServerConsoleRequest is a mock of ApiGetServerConsoleRequest interface. -type MockApiGetServerConsoleRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetServerConsoleRequestMockRecorder - isgomock struct{} -} - -// MockApiGetServerConsoleRequestMockRecorder is the mock recorder for MockApiGetServerConsoleRequest. -type MockApiGetServerConsoleRequestMockRecorder struct { - mock *MockApiGetServerConsoleRequest -} - -// NewMockApiGetServerConsoleRequest creates a new mock instance. -func NewMockApiGetServerConsoleRequest(ctrl *gomock.Controller) *MockApiGetServerConsoleRequest { - mock := &MockApiGetServerConsoleRequest{ctrl: ctrl} - mock.recorder = &MockApiGetServerConsoleRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetServerConsoleRequest) EXPECT() *MockApiGetServerConsoleRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetServerConsoleRequest) Execute() (*iaas.ServerConsoleUrl, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.ServerConsoleUrl) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetServerConsoleRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetServerConsoleRequest)(nil).Execute)) -} - -// MockApiGetServerLogRequest is a mock of ApiGetServerLogRequest interface. -type MockApiGetServerLogRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetServerLogRequestMockRecorder - isgomock struct{} -} - -// MockApiGetServerLogRequestMockRecorder is the mock recorder for MockApiGetServerLogRequest. -type MockApiGetServerLogRequestMockRecorder struct { - mock *MockApiGetServerLogRequest -} - -// NewMockApiGetServerLogRequest creates a new mock instance. -func NewMockApiGetServerLogRequest(ctrl *gomock.Controller) *MockApiGetServerLogRequest { - mock := &MockApiGetServerLogRequest{ctrl: ctrl} - mock.recorder = &MockApiGetServerLogRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetServerLogRequest) EXPECT() *MockApiGetServerLogRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetServerLogRequest) Execute() (*iaas.GetServerLog200Response, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.GetServerLog200Response) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetServerLogRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetServerLogRequest)(nil).Execute)) -} - -// Length mocks base method. -func (m *MockApiGetServerLogRequest) Length(length int64) iaas.ApiGetServerLogRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Length", length) - ret0, _ := ret[0].(iaas.ApiGetServerLogRequest) - return ret0 -} - -// Length indicates an expected call of Length. -func (mr *MockApiGetServerLogRequestMockRecorder) Length(length any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Length", reflect.TypeOf((*MockApiGetServerLogRequest)(nil).Length), length) -} - -// MockApiGetServerRequest is a mock of ApiGetServerRequest interface. -type MockApiGetServerRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetServerRequestMockRecorder - isgomock struct{} -} - -// MockApiGetServerRequestMockRecorder is the mock recorder for MockApiGetServerRequest. -type MockApiGetServerRequestMockRecorder struct { - mock *MockApiGetServerRequest -} - -// NewMockApiGetServerRequest creates a new mock instance. -func NewMockApiGetServerRequest(ctrl *gomock.Controller) *MockApiGetServerRequest { - mock := &MockApiGetServerRequest{ctrl: ctrl} - mock.recorder = &MockApiGetServerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetServerRequest) EXPECT() *MockApiGetServerRequestMockRecorder { - return m.recorder -} - -// Details mocks base method. -func (m *MockApiGetServerRequest) Details(details bool) iaas.ApiGetServerRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Details", details) - ret0, _ := ret[0].(iaas.ApiGetServerRequest) - return ret0 -} - -// Details indicates an expected call of Details. -func (mr *MockApiGetServerRequestMockRecorder) Details(details any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Details", reflect.TypeOf((*MockApiGetServerRequest)(nil).Details), details) -} - -// Execute mocks base method. -func (m *MockApiGetServerRequest) Execute() (*iaas.Server, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Server) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetServerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetServerRequest)(nil).Execute)) -} - -// MockApiGetSnapshotRequest is a mock of ApiGetSnapshotRequest interface. -type MockApiGetSnapshotRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetSnapshotRequestMockRecorder - isgomock struct{} -} - -// MockApiGetSnapshotRequestMockRecorder is the mock recorder for MockApiGetSnapshotRequest. -type MockApiGetSnapshotRequestMockRecorder struct { - mock *MockApiGetSnapshotRequest -} - -// NewMockApiGetSnapshotRequest creates a new mock instance. -func NewMockApiGetSnapshotRequest(ctrl *gomock.Controller) *MockApiGetSnapshotRequest { - mock := &MockApiGetSnapshotRequest{ctrl: ctrl} - mock.recorder = &MockApiGetSnapshotRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetSnapshotRequest) EXPECT() *MockApiGetSnapshotRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetSnapshotRequest) Execute() (*iaas.Snapshot, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Snapshot) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetSnapshotRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetSnapshotRequest)(nil).Execute)) -} - -// MockApiGetVolumePerformanceClassRequest is a mock of ApiGetVolumePerformanceClassRequest interface. -type MockApiGetVolumePerformanceClassRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetVolumePerformanceClassRequestMockRecorder - isgomock struct{} -} - -// MockApiGetVolumePerformanceClassRequestMockRecorder is the mock recorder for MockApiGetVolumePerformanceClassRequest. -type MockApiGetVolumePerformanceClassRequestMockRecorder struct { - mock *MockApiGetVolumePerformanceClassRequest -} - -// NewMockApiGetVolumePerformanceClassRequest creates a new mock instance. -func NewMockApiGetVolumePerformanceClassRequest(ctrl *gomock.Controller) *MockApiGetVolumePerformanceClassRequest { - mock := &MockApiGetVolumePerformanceClassRequest{ctrl: ctrl} - mock.recorder = &MockApiGetVolumePerformanceClassRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetVolumePerformanceClassRequest) EXPECT() *MockApiGetVolumePerformanceClassRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetVolumePerformanceClassRequest) Execute() (*iaas.VolumePerformanceClass, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.VolumePerformanceClass) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetVolumePerformanceClassRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetVolumePerformanceClassRequest)(nil).Execute)) -} - -// MockApiGetVolumeRequest is a mock of ApiGetVolumeRequest interface. -type MockApiGetVolumeRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetVolumeRequestMockRecorder - isgomock struct{} -} - -// MockApiGetVolumeRequestMockRecorder is the mock recorder for MockApiGetVolumeRequest. -type MockApiGetVolumeRequestMockRecorder struct { - mock *MockApiGetVolumeRequest -} - -// NewMockApiGetVolumeRequest creates a new mock instance. -func NewMockApiGetVolumeRequest(ctrl *gomock.Controller) *MockApiGetVolumeRequest { - mock := &MockApiGetVolumeRequest{ctrl: ctrl} - mock.recorder = &MockApiGetVolumeRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetVolumeRequest) EXPECT() *MockApiGetVolumeRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetVolumeRequest) Execute() (*iaas.Volume, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Volume) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetVolumeRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetVolumeRequest)(nil).Execute)) -} - -// MockApiListAffinityGroupsRequest is a mock of ApiListAffinityGroupsRequest interface. -type MockApiListAffinityGroupsRequest struct { - ctrl *gomock.Controller - recorder *MockApiListAffinityGroupsRequestMockRecorder - isgomock struct{} -} - -// MockApiListAffinityGroupsRequestMockRecorder is the mock recorder for MockApiListAffinityGroupsRequest. -type MockApiListAffinityGroupsRequestMockRecorder struct { - mock *MockApiListAffinityGroupsRequest -} - -// NewMockApiListAffinityGroupsRequest creates a new mock instance. -func NewMockApiListAffinityGroupsRequest(ctrl *gomock.Controller) *MockApiListAffinityGroupsRequest { - mock := &MockApiListAffinityGroupsRequest{ctrl: ctrl} - mock.recorder = &MockApiListAffinityGroupsRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListAffinityGroupsRequest) EXPECT() *MockApiListAffinityGroupsRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListAffinityGroupsRequest) Execute() (*iaas.AffinityGroupListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.AffinityGroupListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListAffinityGroupsRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListAffinityGroupsRequest)(nil).Execute)) -} - -// MockApiListAttachedVolumesRequest is a mock of ApiListAttachedVolumesRequest interface. -type MockApiListAttachedVolumesRequest struct { - ctrl *gomock.Controller - recorder *MockApiListAttachedVolumesRequestMockRecorder - isgomock struct{} -} - -// MockApiListAttachedVolumesRequestMockRecorder is the mock recorder for MockApiListAttachedVolumesRequest. -type MockApiListAttachedVolumesRequestMockRecorder struct { - mock *MockApiListAttachedVolumesRequest -} - -// NewMockApiListAttachedVolumesRequest creates a new mock instance. -func NewMockApiListAttachedVolumesRequest(ctrl *gomock.Controller) *MockApiListAttachedVolumesRequest { - mock := &MockApiListAttachedVolumesRequest{ctrl: ctrl} - mock.recorder = &MockApiListAttachedVolumesRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListAttachedVolumesRequest) EXPECT() *MockApiListAttachedVolumesRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListAttachedVolumesRequest) Execute() (*iaas.VolumeAttachmentListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.VolumeAttachmentListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListAttachedVolumesRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListAttachedVolumesRequest)(nil).Execute)) -} - -// MockApiListAvailabilityZonesRequest is a mock of ApiListAvailabilityZonesRequest interface. -type MockApiListAvailabilityZonesRequest struct { - ctrl *gomock.Controller - recorder *MockApiListAvailabilityZonesRequestMockRecorder - isgomock struct{} -} - -// MockApiListAvailabilityZonesRequestMockRecorder is the mock recorder for MockApiListAvailabilityZonesRequest. -type MockApiListAvailabilityZonesRequestMockRecorder struct { - mock *MockApiListAvailabilityZonesRequest -} - -// NewMockApiListAvailabilityZonesRequest creates a new mock instance. -func NewMockApiListAvailabilityZonesRequest(ctrl *gomock.Controller) *MockApiListAvailabilityZonesRequest { - mock := &MockApiListAvailabilityZonesRequest{ctrl: ctrl} - mock.recorder = &MockApiListAvailabilityZonesRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListAvailabilityZonesRequest) EXPECT() *MockApiListAvailabilityZonesRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListAvailabilityZonesRequest) Execute() (*iaas.AvailabilityZoneListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.AvailabilityZoneListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListAvailabilityZonesRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListAvailabilityZonesRequest)(nil).Execute)) -} - -// MockApiListBackupsRequest is a mock of ApiListBackupsRequest interface. -type MockApiListBackupsRequest struct { - ctrl *gomock.Controller - recorder *MockApiListBackupsRequestMockRecorder - isgomock struct{} -} - -// MockApiListBackupsRequestMockRecorder is the mock recorder for MockApiListBackupsRequest. -type MockApiListBackupsRequestMockRecorder struct { - mock *MockApiListBackupsRequest -} - -// NewMockApiListBackupsRequest creates a new mock instance. -func NewMockApiListBackupsRequest(ctrl *gomock.Controller) *MockApiListBackupsRequest { - mock := &MockApiListBackupsRequest{ctrl: ctrl} - mock.recorder = &MockApiListBackupsRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListBackupsRequest) EXPECT() *MockApiListBackupsRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListBackupsRequest) Execute() (*iaas.BackupListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.BackupListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListBackupsRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListBackupsRequest)(nil).Execute)) -} - -// LabelSelector mocks base method. -func (m *MockApiListBackupsRequest) LabelSelector(labelSelector string) iaas.ApiListBackupsRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "LabelSelector", labelSelector) - ret0, _ := ret[0].(iaas.ApiListBackupsRequest) - return ret0 -} - -// LabelSelector indicates an expected call of LabelSelector. -func (mr *MockApiListBackupsRequestMockRecorder) LabelSelector(labelSelector any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LabelSelector", reflect.TypeOf((*MockApiListBackupsRequest)(nil).LabelSelector), labelSelector) -} - -// MockApiListImagesRequest is a mock of ApiListImagesRequest interface. -type MockApiListImagesRequest struct { - ctrl *gomock.Controller - recorder *MockApiListImagesRequestMockRecorder - isgomock struct{} -} - -// MockApiListImagesRequestMockRecorder is the mock recorder for MockApiListImagesRequest. -type MockApiListImagesRequestMockRecorder struct { - mock *MockApiListImagesRequest -} - -// NewMockApiListImagesRequest creates a new mock instance. -func NewMockApiListImagesRequest(ctrl *gomock.Controller) *MockApiListImagesRequest { - mock := &MockApiListImagesRequest{ctrl: ctrl} - mock.recorder = &MockApiListImagesRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListImagesRequest) EXPECT() *MockApiListImagesRequestMockRecorder { - return m.recorder -} - -// All mocks base method. -func (m *MockApiListImagesRequest) All(all bool) iaas.ApiListImagesRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "All", all) - ret0, _ := ret[0].(iaas.ApiListImagesRequest) - return ret0 -} - -// All indicates an expected call of All. -func (mr *MockApiListImagesRequestMockRecorder) All(all any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "All", reflect.TypeOf((*MockApiListImagesRequest)(nil).All), all) -} - -// Execute mocks base method. -func (m *MockApiListImagesRequest) Execute() (*iaas.ImageListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.ImageListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListImagesRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListImagesRequest)(nil).Execute)) -} - -// LabelSelector mocks base method. -func (m *MockApiListImagesRequest) LabelSelector(labelSelector string) iaas.ApiListImagesRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "LabelSelector", labelSelector) - ret0, _ := ret[0].(iaas.ApiListImagesRequest) - return ret0 -} - -// LabelSelector indicates an expected call of LabelSelector. -func (mr *MockApiListImagesRequestMockRecorder) LabelSelector(labelSelector any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LabelSelector", reflect.TypeOf((*MockApiListImagesRequest)(nil).LabelSelector), labelSelector) -} - -// MockApiListKeyPairsRequest is a mock of ApiListKeyPairsRequest interface. -type MockApiListKeyPairsRequest struct { - ctrl *gomock.Controller - recorder *MockApiListKeyPairsRequestMockRecorder - isgomock struct{} -} - -// MockApiListKeyPairsRequestMockRecorder is the mock recorder for MockApiListKeyPairsRequest. -type MockApiListKeyPairsRequestMockRecorder struct { - mock *MockApiListKeyPairsRequest -} - -// NewMockApiListKeyPairsRequest creates a new mock instance. -func NewMockApiListKeyPairsRequest(ctrl *gomock.Controller) *MockApiListKeyPairsRequest { - mock := &MockApiListKeyPairsRequest{ctrl: ctrl} - mock.recorder = &MockApiListKeyPairsRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListKeyPairsRequest) EXPECT() *MockApiListKeyPairsRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListKeyPairsRequest) Execute() (*iaas.KeyPairListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.KeyPairListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListKeyPairsRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListKeyPairsRequest)(nil).Execute)) -} - -// LabelSelector mocks base method. -func (m *MockApiListKeyPairsRequest) LabelSelector(labelSelector string) iaas.ApiListKeyPairsRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "LabelSelector", labelSelector) - ret0, _ := ret[0].(iaas.ApiListKeyPairsRequest) - return ret0 -} - -// LabelSelector indicates an expected call of LabelSelector. -func (mr *MockApiListKeyPairsRequestMockRecorder) LabelSelector(labelSelector any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LabelSelector", reflect.TypeOf((*MockApiListKeyPairsRequest)(nil).LabelSelector), labelSelector) -} - -// MockApiListMachineTypesRequest is a mock of ApiListMachineTypesRequest interface. -type MockApiListMachineTypesRequest struct { - ctrl *gomock.Controller - recorder *MockApiListMachineTypesRequestMockRecorder - isgomock struct{} -} - -// MockApiListMachineTypesRequestMockRecorder is the mock recorder for MockApiListMachineTypesRequest. -type MockApiListMachineTypesRequestMockRecorder struct { - mock *MockApiListMachineTypesRequest -} - -// NewMockApiListMachineTypesRequest creates a new mock instance. -func NewMockApiListMachineTypesRequest(ctrl *gomock.Controller) *MockApiListMachineTypesRequest { - mock := &MockApiListMachineTypesRequest{ctrl: ctrl} - mock.recorder = &MockApiListMachineTypesRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListMachineTypesRequest) EXPECT() *MockApiListMachineTypesRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListMachineTypesRequest) Execute() (*iaas.MachineTypeListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.MachineTypeListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListMachineTypesRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListMachineTypesRequest)(nil).Execute)) -} - -// Filter mocks base method. -func (m *MockApiListMachineTypesRequest) Filter(filter string) iaas.ApiListMachineTypesRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Filter", filter) - ret0, _ := ret[0].(iaas.ApiListMachineTypesRequest) - return ret0 -} - -// Filter indicates an expected call of Filter. -func (mr *MockApiListMachineTypesRequestMockRecorder) Filter(filter any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Filter", reflect.TypeOf((*MockApiListMachineTypesRequest)(nil).Filter), filter) -} - -// MockApiListNetworkAreaProjectsRequest is a mock of ApiListNetworkAreaProjectsRequest interface. -type MockApiListNetworkAreaProjectsRequest struct { - ctrl *gomock.Controller - recorder *MockApiListNetworkAreaProjectsRequestMockRecorder - isgomock struct{} -} - -// MockApiListNetworkAreaProjectsRequestMockRecorder is the mock recorder for MockApiListNetworkAreaProjectsRequest. -type MockApiListNetworkAreaProjectsRequestMockRecorder struct { - mock *MockApiListNetworkAreaProjectsRequest -} - -// NewMockApiListNetworkAreaProjectsRequest creates a new mock instance. -func NewMockApiListNetworkAreaProjectsRequest(ctrl *gomock.Controller) *MockApiListNetworkAreaProjectsRequest { - mock := &MockApiListNetworkAreaProjectsRequest{ctrl: ctrl} - mock.recorder = &MockApiListNetworkAreaProjectsRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListNetworkAreaProjectsRequest) EXPECT() *MockApiListNetworkAreaProjectsRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListNetworkAreaProjectsRequest) Execute() (*iaas.ProjectListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.ProjectListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListNetworkAreaProjectsRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListNetworkAreaProjectsRequest)(nil).Execute)) -} - -// MockApiListNetworkAreaRangesRequest is a mock of ApiListNetworkAreaRangesRequest interface. -type MockApiListNetworkAreaRangesRequest struct { - ctrl *gomock.Controller - recorder *MockApiListNetworkAreaRangesRequestMockRecorder - isgomock struct{} -} - -// MockApiListNetworkAreaRangesRequestMockRecorder is the mock recorder for MockApiListNetworkAreaRangesRequest. -type MockApiListNetworkAreaRangesRequestMockRecorder struct { - mock *MockApiListNetworkAreaRangesRequest -} - -// NewMockApiListNetworkAreaRangesRequest creates a new mock instance. -func NewMockApiListNetworkAreaRangesRequest(ctrl *gomock.Controller) *MockApiListNetworkAreaRangesRequest { - mock := &MockApiListNetworkAreaRangesRequest{ctrl: ctrl} - mock.recorder = &MockApiListNetworkAreaRangesRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListNetworkAreaRangesRequest) EXPECT() *MockApiListNetworkAreaRangesRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListNetworkAreaRangesRequest) Execute() (*iaas.NetworkRangeListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.NetworkRangeListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListNetworkAreaRangesRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListNetworkAreaRangesRequest)(nil).Execute)) -} - -// MockApiListNetworkAreaRegionsRequest is a mock of ApiListNetworkAreaRegionsRequest interface. -type MockApiListNetworkAreaRegionsRequest struct { - ctrl *gomock.Controller - recorder *MockApiListNetworkAreaRegionsRequestMockRecorder - isgomock struct{} -} - -// MockApiListNetworkAreaRegionsRequestMockRecorder is the mock recorder for MockApiListNetworkAreaRegionsRequest. -type MockApiListNetworkAreaRegionsRequestMockRecorder struct { - mock *MockApiListNetworkAreaRegionsRequest -} - -// NewMockApiListNetworkAreaRegionsRequest creates a new mock instance. -func NewMockApiListNetworkAreaRegionsRequest(ctrl *gomock.Controller) *MockApiListNetworkAreaRegionsRequest { - mock := &MockApiListNetworkAreaRegionsRequest{ctrl: ctrl} - mock.recorder = &MockApiListNetworkAreaRegionsRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListNetworkAreaRegionsRequest) EXPECT() *MockApiListNetworkAreaRegionsRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListNetworkAreaRegionsRequest) Execute() (*iaas.RegionalAreaListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.RegionalAreaListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListNetworkAreaRegionsRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListNetworkAreaRegionsRequest)(nil).Execute)) -} - -// MockApiListNetworkAreaRoutesRequest is a mock of ApiListNetworkAreaRoutesRequest interface. -type MockApiListNetworkAreaRoutesRequest struct { - ctrl *gomock.Controller - recorder *MockApiListNetworkAreaRoutesRequestMockRecorder - isgomock struct{} -} - -// MockApiListNetworkAreaRoutesRequestMockRecorder is the mock recorder for MockApiListNetworkAreaRoutesRequest. -type MockApiListNetworkAreaRoutesRequestMockRecorder struct { - mock *MockApiListNetworkAreaRoutesRequest -} - -// NewMockApiListNetworkAreaRoutesRequest creates a new mock instance. -func NewMockApiListNetworkAreaRoutesRequest(ctrl *gomock.Controller) *MockApiListNetworkAreaRoutesRequest { - mock := &MockApiListNetworkAreaRoutesRequest{ctrl: ctrl} - mock.recorder = &MockApiListNetworkAreaRoutesRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListNetworkAreaRoutesRequest) EXPECT() *MockApiListNetworkAreaRoutesRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListNetworkAreaRoutesRequest) Execute() (*iaas.RouteListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.RouteListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListNetworkAreaRoutesRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListNetworkAreaRoutesRequest)(nil).Execute)) -} - -// LabelSelector mocks base method. -func (m *MockApiListNetworkAreaRoutesRequest) LabelSelector(labelSelector string) iaas.ApiListNetworkAreaRoutesRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "LabelSelector", labelSelector) - ret0, _ := ret[0].(iaas.ApiListNetworkAreaRoutesRequest) - return ret0 -} - -// LabelSelector indicates an expected call of LabelSelector. -func (mr *MockApiListNetworkAreaRoutesRequestMockRecorder) LabelSelector(labelSelector any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LabelSelector", reflect.TypeOf((*MockApiListNetworkAreaRoutesRequest)(nil).LabelSelector), labelSelector) -} - -// MockApiListNetworkAreasRequest is a mock of ApiListNetworkAreasRequest interface. -type MockApiListNetworkAreasRequest struct { - ctrl *gomock.Controller - recorder *MockApiListNetworkAreasRequestMockRecorder - isgomock struct{} -} - -// MockApiListNetworkAreasRequestMockRecorder is the mock recorder for MockApiListNetworkAreasRequest. -type MockApiListNetworkAreasRequestMockRecorder struct { - mock *MockApiListNetworkAreasRequest -} - -// NewMockApiListNetworkAreasRequest creates a new mock instance. -func NewMockApiListNetworkAreasRequest(ctrl *gomock.Controller) *MockApiListNetworkAreasRequest { - mock := &MockApiListNetworkAreasRequest{ctrl: ctrl} - mock.recorder = &MockApiListNetworkAreasRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListNetworkAreasRequest) EXPECT() *MockApiListNetworkAreasRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListNetworkAreasRequest) Execute() (*iaas.NetworkAreaListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.NetworkAreaListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListNetworkAreasRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListNetworkAreasRequest)(nil).Execute)) -} - -// LabelSelector mocks base method. -func (m *MockApiListNetworkAreasRequest) LabelSelector(labelSelector string) iaas.ApiListNetworkAreasRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "LabelSelector", labelSelector) - ret0, _ := ret[0].(iaas.ApiListNetworkAreasRequest) - return ret0 -} - -// LabelSelector indicates an expected call of LabelSelector. -func (mr *MockApiListNetworkAreasRequestMockRecorder) LabelSelector(labelSelector any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LabelSelector", reflect.TypeOf((*MockApiListNetworkAreasRequest)(nil).LabelSelector), labelSelector) -} - -// MockApiListNetworksRequest is a mock of ApiListNetworksRequest interface. -type MockApiListNetworksRequest struct { - ctrl *gomock.Controller - recorder *MockApiListNetworksRequestMockRecorder - isgomock struct{} -} - -// MockApiListNetworksRequestMockRecorder is the mock recorder for MockApiListNetworksRequest. -type MockApiListNetworksRequestMockRecorder struct { - mock *MockApiListNetworksRequest -} - -// NewMockApiListNetworksRequest creates a new mock instance. -func NewMockApiListNetworksRequest(ctrl *gomock.Controller) *MockApiListNetworksRequest { - mock := &MockApiListNetworksRequest{ctrl: ctrl} - mock.recorder = &MockApiListNetworksRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListNetworksRequest) EXPECT() *MockApiListNetworksRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListNetworksRequest) Execute() (*iaas.NetworkListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.NetworkListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListNetworksRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListNetworksRequest)(nil).Execute)) -} - -// LabelSelector mocks base method. -func (m *MockApiListNetworksRequest) LabelSelector(labelSelector string) iaas.ApiListNetworksRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "LabelSelector", labelSelector) - ret0, _ := ret[0].(iaas.ApiListNetworksRequest) - return ret0 -} - -// LabelSelector indicates an expected call of LabelSelector. -func (mr *MockApiListNetworksRequestMockRecorder) LabelSelector(labelSelector any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LabelSelector", reflect.TypeOf((*MockApiListNetworksRequest)(nil).LabelSelector), labelSelector) -} - -// MockApiListNicsRequest is a mock of ApiListNicsRequest interface. -type MockApiListNicsRequest struct { - ctrl *gomock.Controller - recorder *MockApiListNicsRequestMockRecorder - isgomock struct{} -} - -// MockApiListNicsRequestMockRecorder is the mock recorder for MockApiListNicsRequest. -type MockApiListNicsRequestMockRecorder struct { - mock *MockApiListNicsRequest -} - -// NewMockApiListNicsRequest creates a new mock instance. -func NewMockApiListNicsRequest(ctrl *gomock.Controller) *MockApiListNicsRequest { - mock := &MockApiListNicsRequest{ctrl: ctrl} - mock.recorder = &MockApiListNicsRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListNicsRequest) EXPECT() *MockApiListNicsRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListNicsRequest) Execute() (*iaas.NICListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.NICListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListNicsRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListNicsRequest)(nil).Execute)) -} - -// LabelSelector mocks base method. -func (m *MockApiListNicsRequest) LabelSelector(labelSelector string) iaas.ApiListNicsRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "LabelSelector", labelSelector) - ret0, _ := ret[0].(iaas.ApiListNicsRequest) - return ret0 -} - -// LabelSelector indicates an expected call of LabelSelector. -func (mr *MockApiListNicsRequestMockRecorder) LabelSelector(labelSelector any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LabelSelector", reflect.TypeOf((*MockApiListNicsRequest)(nil).LabelSelector), labelSelector) -} - -// MockApiListProjectNICsRequest is a mock of ApiListProjectNICsRequest interface. -type MockApiListProjectNICsRequest struct { - ctrl *gomock.Controller - recorder *MockApiListProjectNICsRequestMockRecorder - isgomock struct{} -} - -// MockApiListProjectNICsRequestMockRecorder is the mock recorder for MockApiListProjectNICsRequest. -type MockApiListProjectNICsRequestMockRecorder struct { - mock *MockApiListProjectNICsRequest -} - -// NewMockApiListProjectNICsRequest creates a new mock instance. -func NewMockApiListProjectNICsRequest(ctrl *gomock.Controller) *MockApiListProjectNICsRequest { - mock := &MockApiListProjectNICsRequest{ctrl: ctrl} - mock.recorder = &MockApiListProjectNICsRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListProjectNICsRequest) EXPECT() *MockApiListProjectNICsRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListProjectNICsRequest) Execute() (*iaas.NICListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.NICListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListProjectNICsRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListProjectNICsRequest)(nil).Execute)) -} - -// LabelSelector mocks base method. -func (m *MockApiListProjectNICsRequest) LabelSelector(labelSelector string) iaas.ApiListProjectNICsRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "LabelSelector", labelSelector) - ret0, _ := ret[0].(iaas.ApiListProjectNICsRequest) - return ret0 -} - -// LabelSelector indicates an expected call of LabelSelector. -func (mr *MockApiListProjectNICsRequestMockRecorder) LabelSelector(labelSelector any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LabelSelector", reflect.TypeOf((*MockApiListProjectNICsRequest)(nil).LabelSelector), labelSelector) -} - -// MockApiListPublicIPRangesRequest is a mock of ApiListPublicIPRangesRequest interface. -type MockApiListPublicIPRangesRequest struct { - ctrl *gomock.Controller - recorder *MockApiListPublicIPRangesRequestMockRecorder - isgomock struct{} -} - -// MockApiListPublicIPRangesRequestMockRecorder is the mock recorder for MockApiListPublicIPRangesRequest. -type MockApiListPublicIPRangesRequestMockRecorder struct { - mock *MockApiListPublicIPRangesRequest -} - -// NewMockApiListPublicIPRangesRequest creates a new mock instance. -func NewMockApiListPublicIPRangesRequest(ctrl *gomock.Controller) *MockApiListPublicIPRangesRequest { - mock := &MockApiListPublicIPRangesRequest{ctrl: ctrl} - mock.recorder = &MockApiListPublicIPRangesRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListPublicIPRangesRequest) EXPECT() *MockApiListPublicIPRangesRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListPublicIPRangesRequest) Execute() (*iaas.PublicNetworkListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.PublicNetworkListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListPublicIPRangesRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListPublicIPRangesRequest)(nil).Execute)) -} - -// MockApiListPublicIPsRequest is a mock of ApiListPublicIPsRequest interface. -type MockApiListPublicIPsRequest struct { - ctrl *gomock.Controller - recorder *MockApiListPublicIPsRequestMockRecorder - isgomock struct{} -} - -// MockApiListPublicIPsRequestMockRecorder is the mock recorder for MockApiListPublicIPsRequest. -type MockApiListPublicIPsRequestMockRecorder struct { - mock *MockApiListPublicIPsRequest -} - -// NewMockApiListPublicIPsRequest creates a new mock instance. -func NewMockApiListPublicIPsRequest(ctrl *gomock.Controller) *MockApiListPublicIPsRequest { - mock := &MockApiListPublicIPsRequest{ctrl: ctrl} - mock.recorder = &MockApiListPublicIPsRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListPublicIPsRequest) EXPECT() *MockApiListPublicIPsRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListPublicIPsRequest) Execute() (*iaas.PublicIpListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.PublicIpListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListPublicIPsRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListPublicIPsRequest)(nil).Execute)) -} - -// LabelSelector mocks base method. -func (m *MockApiListPublicIPsRequest) LabelSelector(labelSelector string) iaas.ApiListPublicIPsRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "LabelSelector", labelSelector) - ret0, _ := ret[0].(iaas.ApiListPublicIPsRequest) - return ret0 -} - -// LabelSelector indicates an expected call of LabelSelector. -func (mr *MockApiListPublicIPsRequestMockRecorder) LabelSelector(labelSelector any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LabelSelector", reflect.TypeOf((*MockApiListPublicIPsRequest)(nil).LabelSelector), labelSelector) -} - -// MockApiListQuotasRequest is a mock of ApiListQuotasRequest interface. -type MockApiListQuotasRequest struct { - ctrl *gomock.Controller - recorder *MockApiListQuotasRequestMockRecorder - isgomock struct{} -} - -// MockApiListQuotasRequestMockRecorder is the mock recorder for MockApiListQuotasRequest. -type MockApiListQuotasRequestMockRecorder struct { - mock *MockApiListQuotasRequest -} - -// NewMockApiListQuotasRequest creates a new mock instance. -func NewMockApiListQuotasRequest(ctrl *gomock.Controller) *MockApiListQuotasRequest { - mock := &MockApiListQuotasRequest{ctrl: ctrl} - mock.recorder = &MockApiListQuotasRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListQuotasRequest) EXPECT() *MockApiListQuotasRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListQuotasRequest) Execute() (*iaas.QuotaListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.QuotaListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListQuotasRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListQuotasRequest)(nil).Execute)) -} - -// MockApiListRoutesOfRoutingTableRequest is a mock of ApiListRoutesOfRoutingTableRequest interface. -type MockApiListRoutesOfRoutingTableRequest struct { - ctrl *gomock.Controller - recorder *MockApiListRoutesOfRoutingTableRequestMockRecorder - isgomock struct{} -} - -// MockApiListRoutesOfRoutingTableRequestMockRecorder is the mock recorder for MockApiListRoutesOfRoutingTableRequest. -type MockApiListRoutesOfRoutingTableRequestMockRecorder struct { - mock *MockApiListRoutesOfRoutingTableRequest -} - -// NewMockApiListRoutesOfRoutingTableRequest creates a new mock instance. -func NewMockApiListRoutesOfRoutingTableRequest(ctrl *gomock.Controller) *MockApiListRoutesOfRoutingTableRequest { - mock := &MockApiListRoutesOfRoutingTableRequest{ctrl: ctrl} - mock.recorder = &MockApiListRoutesOfRoutingTableRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListRoutesOfRoutingTableRequest) EXPECT() *MockApiListRoutesOfRoutingTableRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListRoutesOfRoutingTableRequest) Execute() (*iaas.RouteListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.RouteListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListRoutesOfRoutingTableRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListRoutesOfRoutingTableRequest)(nil).Execute)) -} - -// LabelSelector mocks base method. -func (m *MockApiListRoutesOfRoutingTableRequest) LabelSelector(labelSelector string) iaas.ApiListRoutesOfRoutingTableRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "LabelSelector", labelSelector) - ret0, _ := ret[0].(iaas.ApiListRoutesOfRoutingTableRequest) - return ret0 -} - -// LabelSelector indicates an expected call of LabelSelector. -func (mr *MockApiListRoutesOfRoutingTableRequestMockRecorder) LabelSelector(labelSelector any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LabelSelector", reflect.TypeOf((*MockApiListRoutesOfRoutingTableRequest)(nil).LabelSelector), labelSelector) -} - -// MockApiListRoutingTablesOfAreaRequest is a mock of ApiListRoutingTablesOfAreaRequest interface. -type MockApiListRoutingTablesOfAreaRequest struct { - ctrl *gomock.Controller - recorder *MockApiListRoutingTablesOfAreaRequestMockRecorder - isgomock struct{} -} - -// MockApiListRoutingTablesOfAreaRequestMockRecorder is the mock recorder for MockApiListRoutingTablesOfAreaRequest. -type MockApiListRoutingTablesOfAreaRequestMockRecorder struct { - mock *MockApiListRoutingTablesOfAreaRequest -} - -// NewMockApiListRoutingTablesOfAreaRequest creates a new mock instance. -func NewMockApiListRoutingTablesOfAreaRequest(ctrl *gomock.Controller) *MockApiListRoutingTablesOfAreaRequest { - mock := &MockApiListRoutingTablesOfAreaRequest{ctrl: ctrl} - mock.recorder = &MockApiListRoutingTablesOfAreaRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListRoutingTablesOfAreaRequest) EXPECT() *MockApiListRoutingTablesOfAreaRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListRoutingTablesOfAreaRequest) Execute() (*iaas.RoutingTableListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.RoutingTableListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListRoutingTablesOfAreaRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListRoutingTablesOfAreaRequest)(nil).Execute)) -} - -// LabelSelector mocks base method. -func (m *MockApiListRoutingTablesOfAreaRequest) LabelSelector(labelSelector string) iaas.ApiListRoutingTablesOfAreaRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "LabelSelector", labelSelector) - ret0, _ := ret[0].(iaas.ApiListRoutingTablesOfAreaRequest) - return ret0 -} - -// LabelSelector indicates an expected call of LabelSelector. -func (mr *MockApiListRoutingTablesOfAreaRequestMockRecorder) LabelSelector(labelSelector any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LabelSelector", reflect.TypeOf((*MockApiListRoutingTablesOfAreaRequest)(nil).LabelSelector), labelSelector) -} - -// MockApiListSecurityGroupRulesRequest is a mock of ApiListSecurityGroupRulesRequest interface. -type MockApiListSecurityGroupRulesRequest struct { - ctrl *gomock.Controller - recorder *MockApiListSecurityGroupRulesRequestMockRecorder - isgomock struct{} -} - -// MockApiListSecurityGroupRulesRequestMockRecorder is the mock recorder for MockApiListSecurityGroupRulesRequest. -type MockApiListSecurityGroupRulesRequestMockRecorder struct { - mock *MockApiListSecurityGroupRulesRequest -} - -// NewMockApiListSecurityGroupRulesRequest creates a new mock instance. -func NewMockApiListSecurityGroupRulesRequest(ctrl *gomock.Controller) *MockApiListSecurityGroupRulesRequest { - mock := &MockApiListSecurityGroupRulesRequest{ctrl: ctrl} - mock.recorder = &MockApiListSecurityGroupRulesRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListSecurityGroupRulesRequest) EXPECT() *MockApiListSecurityGroupRulesRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListSecurityGroupRulesRequest) Execute() (*iaas.SecurityGroupRuleListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.SecurityGroupRuleListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListSecurityGroupRulesRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListSecurityGroupRulesRequest)(nil).Execute)) -} - -// MockApiListSecurityGroupsRequest is a mock of ApiListSecurityGroupsRequest interface. -type MockApiListSecurityGroupsRequest struct { - ctrl *gomock.Controller - recorder *MockApiListSecurityGroupsRequestMockRecorder - isgomock struct{} -} - -// MockApiListSecurityGroupsRequestMockRecorder is the mock recorder for MockApiListSecurityGroupsRequest. -type MockApiListSecurityGroupsRequestMockRecorder struct { - mock *MockApiListSecurityGroupsRequest -} - -// NewMockApiListSecurityGroupsRequest creates a new mock instance. -func NewMockApiListSecurityGroupsRequest(ctrl *gomock.Controller) *MockApiListSecurityGroupsRequest { - mock := &MockApiListSecurityGroupsRequest{ctrl: ctrl} - mock.recorder = &MockApiListSecurityGroupsRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListSecurityGroupsRequest) EXPECT() *MockApiListSecurityGroupsRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListSecurityGroupsRequest) Execute() (*iaas.SecurityGroupListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.SecurityGroupListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListSecurityGroupsRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListSecurityGroupsRequest)(nil).Execute)) -} - -// LabelSelector mocks base method. -func (m *MockApiListSecurityGroupsRequest) LabelSelector(labelSelector string) iaas.ApiListSecurityGroupsRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "LabelSelector", labelSelector) - ret0, _ := ret[0].(iaas.ApiListSecurityGroupsRequest) - return ret0 -} - -// LabelSelector indicates an expected call of LabelSelector. -func (mr *MockApiListSecurityGroupsRequestMockRecorder) LabelSelector(labelSelector any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LabelSelector", reflect.TypeOf((*MockApiListSecurityGroupsRequest)(nil).LabelSelector), labelSelector) -} - -// MockApiListServerNICsRequest is a mock of ApiListServerNICsRequest interface. -type MockApiListServerNICsRequest struct { - ctrl *gomock.Controller - recorder *MockApiListServerNICsRequestMockRecorder - isgomock struct{} -} - -// MockApiListServerNICsRequestMockRecorder is the mock recorder for MockApiListServerNICsRequest. -type MockApiListServerNICsRequestMockRecorder struct { - mock *MockApiListServerNICsRequest -} - -// NewMockApiListServerNICsRequest creates a new mock instance. -func NewMockApiListServerNICsRequest(ctrl *gomock.Controller) *MockApiListServerNICsRequest { - mock := &MockApiListServerNICsRequest{ctrl: ctrl} - mock.recorder = &MockApiListServerNICsRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListServerNICsRequest) EXPECT() *MockApiListServerNICsRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListServerNICsRequest) Execute() (*iaas.NICListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.NICListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListServerNICsRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListServerNICsRequest)(nil).Execute)) -} - -// MockApiListServerServiceAccountsRequest is a mock of ApiListServerServiceAccountsRequest interface. -type MockApiListServerServiceAccountsRequest struct { - ctrl *gomock.Controller - recorder *MockApiListServerServiceAccountsRequestMockRecorder - isgomock struct{} -} - -// MockApiListServerServiceAccountsRequestMockRecorder is the mock recorder for MockApiListServerServiceAccountsRequest. -type MockApiListServerServiceAccountsRequestMockRecorder struct { - mock *MockApiListServerServiceAccountsRequest -} - -// NewMockApiListServerServiceAccountsRequest creates a new mock instance. -func NewMockApiListServerServiceAccountsRequest(ctrl *gomock.Controller) *MockApiListServerServiceAccountsRequest { - mock := &MockApiListServerServiceAccountsRequest{ctrl: ctrl} - mock.recorder = &MockApiListServerServiceAccountsRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListServerServiceAccountsRequest) EXPECT() *MockApiListServerServiceAccountsRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListServerServiceAccountsRequest) Execute() (*iaas.ServiceAccountMailListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.ServiceAccountMailListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListServerServiceAccountsRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListServerServiceAccountsRequest)(nil).Execute)) -} - -// MockApiListServersRequest is a mock of ApiListServersRequest interface. -type MockApiListServersRequest struct { - ctrl *gomock.Controller - recorder *MockApiListServersRequestMockRecorder - isgomock struct{} -} - -// MockApiListServersRequestMockRecorder is the mock recorder for MockApiListServersRequest. -type MockApiListServersRequestMockRecorder struct { - mock *MockApiListServersRequest -} - -// NewMockApiListServersRequest creates a new mock instance. -func NewMockApiListServersRequest(ctrl *gomock.Controller) *MockApiListServersRequest { - mock := &MockApiListServersRequest{ctrl: ctrl} - mock.recorder = &MockApiListServersRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListServersRequest) EXPECT() *MockApiListServersRequestMockRecorder { - return m.recorder -} - -// Details mocks base method. -func (m *MockApiListServersRequest) Details(details bool) iaas.ApiListServersRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Details", details) - ret0, _ := ret[0].(iaas.ApiListServersRequest) - return ret0 -} - -// Details indicates an expected call of Details. -func (mr *MockApiListServersRequestMockRecorder) Details(details any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Details", reflect.TypeOf((*MockApiListServersRequest)(nil).Details), details) -} - -// Execute mocks base method. -func (m *MockApiListServersRequest) Execute() (*iaas.ServerListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.ServerListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListServersRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListServersRequest)(nil).Execute)) -} - -// LabelSelector mocks base method. -func (m *MockApiListServersRequest) LabelSelector(labelSelector string) iaas.ApiListServersRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "LabelSelector", labelSelector) - ret0, _ := ret[0].(iaas.ApiListServersRequest) - return ret0 -} - -// LabelSelector indicates an expected call of LabelSelector. -func (mr *MockApiListServersRequestMockRecorder) LabelSelector(labelSelector any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LabelSelector", reflect.TypeOf((*MockApiListServersRequest)(nil).LabelSelector), labelSelector) -} - -// MockApiListSnapshotsInProjectRequest is a mock of ApiListSnapshotsInProjectRequest interface. -type MockApiListSnapshotsInProjectRequest struct { - ctrl *gomock.Controller - recorder *MockApiListSnapshotsInProjectRequestMockRecorder - isgomock struct{} -} - -// MockApiListSnapshotsInProjectRequestMockRecorder is the mock recorder for MockApiListSnapshotsInProjectRequest. -type MockApiListSnapshotsInProjectRequestMockRecorder struct { - mock *MockApiListSnapshotsInProjectRequest -} - -// NewMockApiListSnapshotsInProjectRequest creates a new mock instance. -func NewMockApiListSnapshotsInProjectRequest(ctrl *gomock.Controller) *MockApiListSnapshotsInProjectRequest { - mock := &MockApiListSnapshotsInProjectRequest{ctrl: ctrl} - mock.recorder = &MockApiListSnapshotsInProjectRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListSnapshotsInProjectRequest) EXPECT() *MockApiListSnapshotsInProjectRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListSnapshotsInProjectRequest) Execute() (*iaas.SnapshotListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.SnapshotListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListSnapshotsInProjectRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListSnapshotsInProjectRequest)(nil).Execute)) -} - -// LabelSelector mocks base method. -func (m *MockApiListSnapshotsInProjectRequest) LabelSelector(labelSelector string) iaas.ApiListSnapshotsInProjectRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "LabelSelector", labelSelector) - ret0, _ := ret[0].(iaas.ApiListSnapshotsInProjectRequest) - return ret0 -} - -// LabelSelector indicates an expected call of LabelSelector. -func (mr *MockApiListSnapshotsInProjectRequestMockRecorder) LabelSelector(labelSelector any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LabelSelector", reflect.TypeOf((*MockApiListSnapshotsInProjectRequest)(nil).LabelSelector), labelSelector) -} - -// MockApiListVolumePerformanceClassesRequest is a mock of ApiListVolumePerformanceClassesRequest interface. -type MockApiListVolumePerformanceClassesRequest struct { - ctrl *gomock.Controller - recorder *MockApiListVolumePerformanceClassesRequestMockRecorder - isgomock struct{} -} - -// MockApiListVolumePerformanceClassesRequestMockRecorder is the mock recorder for MockApiListVolumePerformanceClassesRequest. -type MockApiListVolumePerformanceClassesRequestMockRecorder struct { - mock *MockApiListVolumePerformanceClassesRequest -} - -// NewMockApiListVolumePerformanceClassesRequest creates a new mock instance. -func NewMockApiListVolumePerformanceClassesRequest(ctrl *gomock.Controller) *MockApiListVolumePerformanceClassesRequest { - mock := &MockApiListVolumePerformanceClassesRequest{ctrl: ctrl} - mock.recorder = &MockApiListVolumePerformanceClassesRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListVolumePerformanceClassesRequest) EXPECT() *MockApiListVolumePerformanceClassesRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListVolumePerformanceClassesRequest) Execute() (*iaas.VolumePerformanceClassListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.VolumePerformanceClassListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListVolumePerformanceClassesRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListVolumePerformanceClassesRequest)(nil).Execute)) -} - -// LabelSelector mocks base method. -func (m *MockApiListVolumePerformanceClassesRequest) LabelSelector(labelSelector string) iaas.ApiListVolumePerformanceClassesRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "LabelSelector", labelSelector) - ret0, _ := ret[0].(iaas.ApiListVolumePerformanceClassesRequest) - return ret0 -} - -// LabelSelector indicates an expected call of LabelSelector. -func (mr *MockApiListVolumePerformanceClassesRequestMockRecorder) LabelSelector(labelSelector any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LabelSelector", reflect.TypeOf((*MockApiListVolumePerformanceClassesRequest)(nil).LabelSelector), labelSelector) -} - -// MockApiListVolumesRequest is a mock of ApiListVolumesRequest interface. -type MockApiListVolumesRequest struct { - ctrl *gomock.Controller - recorder *MockApiListVolumesRequestMockRecorder - isgomock struct{} -} - -// MockApiListVolumesRequestMockRecorder is the mock recorder for MockApiListVolumesRequest. -type MockApiListVolumesRequestMockRecorder struct { - mock *MockApiListVolumesRequest -} - -// NewMockApiListVolumesRequest creates a new mock instance. -func NewMockApiListVolumesRequest(ctrl *gomock.Controller) *MockApiListVolumesRequest { - mock := &MockApiListVolumesRequest{ctrl: ctrl} - mock.recorder = &MockApiListVolumesRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListVolumesRequest) EXPECT() *MockApiListVolumesRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListVolumesRequest) Execute() (*iaas.VolumeListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.VolumeListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListVolumesRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListVolumesRequest)(nil).Execute)) -} - -// LabelSelector mocks base method. -func (m *MockApiListVolumesRequest) LabelSelector(labelSelector string) iaas.ApiListVolumesRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "LabelSelector", labelSelector) - ret0, _ := ret[0].(iaas.ApiListVolumesRequest) - return ret0 -} - -// LabelSelector indicates an expected call of LabelSelector. -func (mr *MockApiListVolumesRequestMockRecorder) LabelSelector(labelSelector any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LabelSelector", reflect.TypeOf((*MockApiListVolumesRequest)(nil).LabelSelector), labelSelector) -} - -// MockApiPartialUpdateNetworkAreaRequest is a mock of ApiPartialUpdateNetworkAreaRequest interface. -type MockApiPartialUpdateNetworkAreaRequest struct { - ctrl *gomock.Controller - recorder *MockApiPartialUpdateNetworkAreaRequestMockRecorder - isgomock struct{} -} - -// MockApiPartialUpdateNetworkAreaRequestMockRecorder is the mock recorder for MockApiPartialUpdateNetworkAreaRequest. -type MockApiPartialUpdateNetworkAreaRequestMockRecorder struct { - mock *MockApiPartialUpdateNetworkAreaRequest -} - -// NewMockApiPartialUpdateNetworkAreaRequest creates a new mock instance. -func NewMockApiPartialUpdateNetworkAreaRequest(ctrl *gomock.Controller) *MockApiPartialUpdateNetworkAreaRequest { - mock := &MockApiPartialUpdateNetworkAreaRequest{ctrl: ctrl} - mock.recorder = &MockApiPartialUpdateNetworkAreaRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiPartialUpdateNetworkAreaRequest) EXPECT() *MockApiPartialUpdateNetworkAreaRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiPartialUpdateNetworkAreaRequest) Execute() (*iaas.NetworkArea, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.NetworkArea) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiPartialUpdateNetworkAreaRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiPartialUpdateNetworkAreaRequest)(nil).Execute)) -} - -// PartialUpdateNetworkAreaPayload mocks base method. -func (m *MockApiPartialUpdateNetworkAreaRequest) PartialUpdateNetworkAreaPayload(partialUpdateNetworkAreaPayload iaas.PartialUpdateNetworkAreaPayload) iaas.ApiPartialUpdateNetworkAreaRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "PartialUpdateNetworkAreaPayload", partialUpdateNetworkAreaPayload) - ret0, _ := ret[0].(iaas.ApiPartialUpdateNetworkAreaRequest) - return ret0 -} - -// PartialUpdateNetworkAreaPayload indicates an expected call of PartialUpdateNetworkAreaPayload. -func (mr *MockApiPartialUpdateNetworkAreaRequestMockRecorder) PartialUpdateNetworkAreaPayload(partialUpdateNetworkAreaPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PartialUpdateNetworkAreaPayload", reflect.TypeOf((*MockApiPartialUpdateNetworkAreaRequest)(nil).PartialUpdateNetworkAreaPayload), partialUpdateNetworkAreaPayload) -} - -// MockApiPartialUpdateNetworkRequest is a mock of ApiPartialUpdateNetworkRequest interface. -type MockApiPartialUpdateNetworkRequest struct { - ctrl *gomock.Controller - recorder *MockApiPartialUpdateNetworkRequestMockRecorder - isgomock struct{} -} - -// MockApiPartialUpdateNetworkRequestMockRecorder is the mock recorder for MockApiPartialUpdateNetworkRequest. -type MockApiPartialUpdateNetworkRequestMockRecorder struct { - mock *MockApiPartialUpdateNetworkRequest -} - -// NewMockApiPartialUpdateNetworkRequest creates a new mock instance. -func NewMockApiPartialUpdateNetworkRequest(ctrl *gomock.Controller) *MockApiPartialUpdateNetworkRequest { - mock := &MockApiPartialUpdateNetworkRequest{ctrl: ctrl} - mock.recorder = &MockApiPartialUpdateNetworkRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiPartialUpdateNetworkRequest) EXPECT() *MockApiPartialUpdateNetworkRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiPartialUpdateNetworkRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiPartialUpdateNetworkRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiPartialUpdateNetworkRequest)(nil).Execute)) -} - -// PartialUpdateNetworkPayload mocks base method. -func (m *MockApiPartialUpdateNetworkRequest) PartialUpdateNetworkPayload(partialUpdateNetworkPayload iaas.PartialUpdateNetworkPayload) iaas.ApiPartialUpdateNetworkRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "PartialUpdateNetworkPayload", partialUpdateNetworkPayload) - ret0, _ := ret[0].(iaas.ApiPartialUpdateNetworkRequest) - return ret0 -} - -// PartialUpdateNetworkPayload indicates an expected call of PartialUpdateNetworkPayload. -func (mr *MockApiPartialUpdateNetworkRequestMockRecorder) PartialUpdateNetworkPayload(partialUpdateNetworkPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PartialUpdateNetworkPayload", reflect.TypeOf((*MockApiPartialUpdateNetworkRequest)(nil).PartialUpdateNetworkPayload), partialUpdateNetworkPayload) -} - -// MockApiRebootServerRequest is a mock of ApiRebootServerRequest interface. -type MockApiRebootServerRequest struct { - ctrl *gomock.Controller - recorder *MockApiRebootServerRequestMockRecorder - isgomock struct{} -} - -// MockApiRebootServerRequestMockRecorder is the mock recorder for MockApiRebootServerRequest. -type MockApiRebootServerRequestMockRecorder struct { - mock *MockApiRebootServerRequest -} - -// NewMockApiRebootServerRequest creates a new mock instance. -func NewMockApiRebootServerRequest(ctrl *gomock.Controller) *MockApiRebootServerRequest { - mock := &MockApiRebootServerRequest{ctrl: ctrl} - mock.recorder = &MockApiRebootServerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiRebootServerRequest) EXPECT() *MockApiRebootServerRequestMockRecorder { - return m.recorder -} - -// Action mocks base method. -func (m *MockApiRebootServerRequest) Action(action string) iaas.ApiRebootServerRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Action", action) - ret0, _ := ret[0].(iaas.ApiRebootServerRequest) - return ret0 -} - -// Action indicates an expected call of Action. -func (mr *MockApiRebootServerRequestMockRecorder) Action(action any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Action", reflect.TypeOf((*MockApiRebootServerRequest)(nil).Action), action) -} - -// Execute mocks base method. -func (m *MockApiRebootServerRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiRebootServerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiRebootServerRequest)(nil).Execute)) -} - -// MockApiRemoveNetworkFromServerRequest is a mock of ApiRemoveNetworkFromServerRequest interface. -type MockApiRemoveNetworkFromServerRequest struct { - ctrl *gomock.Controller - recorder *MockApiRemoveNetworkFromServerRequestMockRecorder - isgomock struct{} -} - -// MockApiRemoveNetworkFromServerRequestMockRecorder is the mock recorder for MockApiRemoveNetworkFromServerRequest. -type MockApiRemoveNetworkFromServerRequestMockRecorder struct { - mock *MockApiRemoveNetworkFromServerRequest -} - -// NewMockApiRemoveNetworkFromServerRequest creates a new mock instance. -func NewMockApiRemoveNetworkFromServerRequest(ctrl *gomock.Controller) *MockApiRemoveNetworkFromServerRequest { - mock := &MockApiRemoveNetworkFromServerRequest{ctrl: ctrl} - mock.recorder = &MockApiRemoveNetworkFromServerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiRemoveNetworkFromServerRequest) EXPECT() *MockApiRemoveNetworkFromServerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiRemoveNetworkFromServerRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiRemoveNetworkFromServerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiRemoveNetworkFromServerRequest)(nil).Execute)) -} - -// MockApiRemoveNicFromServerRequest is a mock of ApiRemoveNicFromServerRequest interface. -type MockApiRemoveNicFromServerRequest struct { - ctrl *gomock.Controller - recorder *MockApiRemoveNicFromServerRequestMockRecorder - isgomock struct{} -} - -// MockApiRemoveNicFromServerRequestMockRecorder is the mock recorder for MockApiRemoveNicFromServerRequest. -type MockApiRemoveNicFromServerRequestMockRecorder struct { - mock *MockApiRemoveNicFromServerRequest -} - -// NewMockApiRemoveNicFromServerRequest creates a new mock instance. -func NewMockApiRemoveNicFromServerRequest(ctrl *gomock.Controller) *MockApiRemoveNicFromServerRequest { - mock := &MockApiRemoveNicFromServerRequest{ctrl: ctrl} - mock.recorder = &MockApiRemoveNicFromServerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiRemoveNicFromServerRequest) EXPECT() *MockApiRemoveNicFromServerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiRemoveNicFromServerRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiRemoveNicFromServerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiRemoveNicFromServerRequest)(nil).Execute)) -} - -// MockApiRemovePublicIpFromServerRequest is a mock of ApiRemovePublicIpFromServerRequest interface. -type MockApiRemovePublicIpFromServerRequest struct { - ctrl *gomock.Controller - recorder *MockApiRemovePublicIpFromServerRequestMockRecorder - isgomock struct{} -} - -// MockApiRemovePublicIpFromServerRequestMockRecorder is the mock recorder for MockApiRemovePublicIpFromServerRequest. -type MockApiRemovePublicIpFromServerRequestMockRecorder struct { - mock *MockApiRemovePublicIpFromServerRequest -} - -// NewMockApiRemovePublicIpFromServerRequest creates a new mock instance. -func NewMockApiRemovePublicIpFromServerRequest(ctrl *gomock.Controller) *MockApiRemovePublicIpFromServerRequest { - mock := &MockApiRemovePublicIpFromServerRequest{ctrl: ctrl} - mock.recorder = &MockApiRemovePublicIpFromServerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiRemovePublicIpFromServerRequest) EXPECT() *MockApiRemovePublicIpFromServerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiRemovePublicIpFromServerRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiRemovePublicIpFromServerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiRemovePublicIpFromServerRequest)(nil).Execute)) -} - -// MockApiRemoveSecurityGroupFromServerRequest is a mock of ApiRemoveSecurityGroupFromServerRequest interface. -type MockApiRemoveSecurityGroupFromServerRequest struct { - ctrl *gomock.Controller - recorder *MockApiRemoveSecurityGroupFromServerRequestMockRecorder - isgomock struct{} -} - -// MockApiRemoveSecurityGroupFromServerRequestMockRecorder is the mock recorder for MockApiRemoveSecurityGroupFromServerRequest. -type MockApiRemoveSecurityGroupFromServerRequestMockRecorder struct { - mock *MockApiRemoveSecurityGroupFromServerRequest -} - -// NewMockApiRemoveSecurityGroupFromServerRequest creates a new mock instance. -func NewMockApiRemoveSecurityGroupFromServerRequest(ctrl *gomock.Controller) *MockApiRemoveSecurityGroupFromServerRequest { - mock := &MockApiRemoveSecurityGroupFromServerRequest{ctrl: ctrl} - mock.recorder = &MockApiRemoveSecurityGroupFromServerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiRemoveSecurityGroupFromServerRequest) EXPECT() *MockApiRemoveSecurityGroupFromServerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiRemoveSecurityGroupFromServerRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiRemoveSecurityGroupFromServerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiRemoveSecurityGroupFromServerRequest)(nil).Execute)) -} - -// MockApiRemoveServiceAccountFromServerRequest is a mock of ApiRemoveServiceAccountFromServerRequest interface. -type MockApiRemoveServiceAccountFromServerRequest struct { - ctrl *gomock.Controller - recorder *MockApiRemoveServiceAccountFromServerRequestMockRecorder - isgomock struct{} -} - -// MockApiRemoveServiceAccountFromServerRequestMockRecorder is the mock recorder for MockApiRemoveServiceAccountFromServerRequest. -type MockApiRemoveServiceAccountFromServerRequestMockRecorder struct { - mock *MockApiRemoveServiceAccountFromServerRequest -} - -// NewMockApiRemoveServiceAccountFromServerRequest creates a new mock instance. -func NewMockApiRemoveServiceAccountFromServerRequest(ctrl *gomock.Controller) *MockApiRemoveServiceAccountFromServerRequest { - mock := &MockApiRemoveServiceAccountFromServerRequest{ctrl: ctrl} - mock.recorder = &MockApiRemoveServiceAccountFromServerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiRemoveServiceAccountFromServerRequest) EXPECT() *MockApiRemoveServiceAccountFromServerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiRemoveServiceAccountFromServerRequest) Execute() (*iaas.ServiceAccountMailListResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.ServiceAccountMailListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiRemoveServiceAccountFromServerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiRemoveServiceAccountFromServerRequest)(nil).Execute)) -} - -// MockApiRemoveVolumeFromServerRequest is a mock of ApiRemoveVolumeFromServerRequest interface. -type MockApiRemoveVolumeFromServerRequest struct { - ctrl *gomock.Controller - recorder *MockApiRemoveVolumeFromServerRequestMockRecorder - isgomock struct{} -} - -// MockApiRemoveVolumeFromServerRequestMockRecorder is the mock recorder for MockApiRemoveVolumeFromServerRequest. -type MockApiRemoveVolumeFromServerRequestMockRecorder struct { - mock *MockApiRemoveVolumeFromServerRequest -} - -// NewMockApiRemoveVolumeFromServerRequest creates a new mock instance. -func NewMockApiRemoveVolumeFromServerRequest(ctrl *gomock.Controller) *MockApiRemoveVolumeFromServerRequest { - mock := &MockApiRemoveVolumeFromServerRequest{ctrl: ctrl} - mock.recorder = &MockApiRemoveVolumeFromServerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiRemoveVolumeFromServerRequest) EXPECT() *MockApiRemoveVolumeFromServerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiRemoveVolumeFromServerRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiRemoveVolumeFromServerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiRemoveVolumeFromServerRequest)(nil).Execute)) -} - -// MockApiRescueServerRequest is a mock of ApiRescueServerRequest interface. -type MockApiRescueServerRequest struct { - ctrl *gomock.Controller - recorder *MockApiRescueServerRequestMockRecorder - isgomock struct{} -} - -// MockApiRescueServerRequestMockRecorder is the mock recorder for MockApiRescueServerRequest. -type MockApiRescueServerRequestMockRecorder struct { - mock *MockApiRescueServerRequest -} - -// NewMockApiRescueServerRequest creates a new mock instance. -func NewMockApiRescueServerRequest(ctrl *gomock.Controller) *MockApiRescueServerRequest { - mock := &MockApiRescueServerRequest{ctrl: ctrl} - mock.recorder = &MockApiRescueServerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiRescueServerRequest) EXPECT() *MockApiRescueServerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiRescueServerRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiRescueServerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiRescueServerRequest)(nil).Execute)) -} - -// RescueServerPayload mocks base method. -func (m *MockApiRescueServerRequest) RescueServerPayload(rescueServerPayload iaas.RescueServerPayload) iaas.ApiRescueServerRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RescueServerPayload", rescueServerPayload) - ret0, _ := ret[0].(iaas.ApiRescueServerRequest) - return ret0 -} - -// RescueServerPayload indicates an expected call of RescueServerPayload. -func (mr *MockApiRescueServerRequestMockRecorder) RescueServerPayload(rescueServerPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RescueServerPayload", reflect.TypeOf((*MockApiRescueServerRequest)(nil).RescueServerPayload), rescueServerPayload) -} - -// MockApiResizeServerRequest is a mock of ApiResizeServerRequest interface. -type MockApiResizeServerRequest struct { - ctrl *gomock.Controller - recorder *MockApiResizeServerRequestMockRecorder - isgomock struct{} -} - -// MockApiResizeServerRequestMockRecorder is the mock recorder for MockApiResizeServerRequest. -type MockApiResizeServerRequestMockRecorder struct { - mock *MockApiResizeServerRequest -} - -// NewMockApiResizeServerRequest creates a new mock instance. -func NewMockApiResizeServerRequest(ctrl *gomock.Controller) *MockApiResizeServerRequest { - mock := &MockApiResizeServerRequest{ctrl: ctrl} - mock.recorder = &MockApiResizeServerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiResizeServerRequest) EXPECT() *MockApiResizeServerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiResizeServerRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiResizeServerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiResizeServerRequest)(nil).Execute)) -} - -// ResizeServerPayload mocks base method. -func (m *MockApiResizeServerRequest) ResizeServerPayload(resizeServerPayload iaas.ResizeServerPayload) iaas.ApiResizeServerRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ResizeServerPayload", resizeServerPayload) - ret0, _ := ret[0].(iaas.ApiResizeServerRequest) - return ret0 -} - -// ResizeServerPayload indicates an expected call of ResizeServerPayload. -func (mr *MockApiResizeServerRequestMockRecorder) ResizeServerPayload(resizeServerPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResizeServerPayload", reflect.TypeOf((*MockApiResizeServerRequest)(nil).ResizeServerPayload), resizeServerPayload) -} - -// MockApiResizeVolumeRequest is a mock of ApiResizeVolumeRequest interface. -type MockApiResizeVolumeRequest struct { - ctrl *gomock.Controller - recorder *MockApiResizeVolumeRequestMockRecorder - isgomock struct{} -} - -// MockApiResizeVolumeRequestMockRecorder is the mock recorder for MockApiResizeVolumeRequest. -type MockApiResizeVolumeRequestMockRecorder struct { - mock *MockApiResizeVolumeRequest -} - -// NewMockApiResizeVolumeRequest creates a new mock instance. -func NewMockApiResizeVolumeRequest(ctrl *gomock.Controller) *MockApiResizeVolumeRequest { - mock := &MockApiResizeVolumeRequest{ctrl: ctrl} - mock.recorder = &MockApiResizeVolumeRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiResizeVolumeRequest) EXPECT() *MockApiResizeVolumeRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiResizeVolumeRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiResizeVolumeRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiResizeVolumeRequest)(nil).Execute)) -} - -// ResizeVolumePayload mocks base method. -func (m *MockApiResizeVolumeRequest) ResizeVolumePayload(resizeVolumePayload iaas.ResizeVolumePayload) iaas.ApiResizeVolumeRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ResizeVolumePayload", resizeVolumePayload) - ret0, _ := ret[0].(iaas.ApiResizeVolumeRequest) - return ret0 -} - -// ResizeVolumePayload indicates an expected call of ResizeVolumePayload. -func (mr *MockApiResizeVolumeRequestMockRecorder) ResizeVolumePayload(resizeVolumePayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResizeVolumePayload", reflect.TypeOf((*MockApiResizeVolumeRequest)(nil).ResizeVolumePayload), resizeVolumePayload) -} - -// MockApiRestoreBackupRequest is a mock of ApiRestoreBackupRequest interface. -type MockApiRestoreBackupRequest struct { - ctrl *gomock.Controller - recorder *MockApiRestoreBackupRequestMockRecorder - isgomock struct{} -} - -// MockApiRestoreBackupRequestMockRecorder is the mock recorder for MockApiRestoreBackupRequest. -type MockApiRestoreBackupRequestMockRecorder struct { - mock *MockApiRestoreBackupRequest -} - -// NewMockApiRestoreBackupRequest creates a new mock instance. -func NewMockApiRestoreBackupRequest(ctrl *gomock.Controller) *MockApiRestoreBackupRequest { - mock := &MockApiRestoreBackupRequest{ctrl: ctrl} - mock.recorder = &MockApiRestoreBackupRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiRestoreBackupRequest) EXPECT() *MockApiRestoreBackupRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiRestoreBackupRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiRestoreBackupRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiRestoreBackupRequest)(nil).Execute)) -} - -// MockApiSetImageShareRequest is a mock of ApiSetImageShareRequest interface. -type MockApiSetImageShareRequest struct { - ctrl *gomock.Controller - recorder *MockApiSetImageShareRequestMockRecorder - isgomock struct{} -} - -// MockApiSetImageShareRequestMockRecorder is the mock recorder for MockApiSetImageShareRequest. -type MockApiSetImageShareRequestMockRecorder struct { - mock *MockApiSetImageShareRequest -} - -// NewMockApiSetImageShareRequest creates a new mock instance. -func NewMockApiSetImageShareRequest(ctrl *gomock.Controller) *MockApiSetImageShareRequest { - mock := &MockApiSetImageShareRequest{ctrl: ctrl} - mock.recorder = &MockApiSetImageShareRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiSetImageShareRequest) EXPECT() *MockApiSetImageShareRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiSetImageShareRequest) Execute() (*iaas.ImageShare, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.ImageShare) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiSetImageShareRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiSetImageShareRequest)(nil).Execute)) -} - -// SetImageSharePayload mocks base method. -func (m *MockApiSetImageShareRequest) SetImageSharePayload(setImageSharePayload iaas.SetImageSharePayload) iaas.ApiSetImageShareRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "SetImageSharePayload", setImageSharePayload) - ret0, _ := ret[0].(iaas.ApiSetImageShareRequest) - return ret0 -} - -// SetImageSharePayload indicates an expected call of SetImageSharePayload. -func (mr *MockApiSetImageShareRequestMockRecorder) SetImageSharePayload(setImageSharePayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetImageSharePayload", reflect.TypeOf((*MockApiSetImageShareRequest)(nil).SetImageSharePayload), setImageSharePayload) -} - -// MockApiStartServerRequest is a mock of ApiStartServerRequest interface. -type MockApiStartServerRequest struct { - ctrl *gomock.Controller - recorder *MockApiStartServerRequestMockRecorder - isgomock struct{} -} - -// MockApiStartServerRequestMockRecorder is the mock recorder for MockApiStartServerRequest. -type MockApiStartServerRequestMockRecorder struct { - mock *MockApiStartServerRequest -} - -// NewMockApiStartServerRequest creates a new mock instance. -func NewMockApiStartServerRequest(ctrl *gomock.Controller) *MockApiStartServerRequest { - mock := &MockApiStartServerRequest{ctrl: ctrl} - mock.recorder = &MockApiStartServerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiStartServerRequest) EXPECT() *MockApiStartServerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiStartServerRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiStartServerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiStartServerRequest)(nil).Execute)) -} - -// MockApiStopServerRequest is a mock of ApiStopServerRequest interface. -type MockApiStopServerRequest struct { - ctrl *gomock.Controller - recorder *MockApiStopServerRequestMockRecorder - isgomock struct{} -} - -// MockApiStopServerRequestMockRecorder is the mock recorder for MockApiStopServerRequest. -type MockApiStopServerRequestMockRecorder struct { - mock *MockApiStopServerRequest -} - -// NewMockApiStopServerRequest creates a new mock instance. -func NewMockApiStopServerRequest(ctrl *gomock.Controller) *MockApiStopServerRequest { - mock := &MockApiStopServerRequest{ctrl: ctrl} - mock.recorder = &MockApiStopServerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiStopServerRequest) EXPECT() *MockApiStopServerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiStopServerRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiStopServerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiStopServerRequest)(nil).Execute)) -} - -// MockApiUnrescueServerRequest is a mock of ApiUnrescueServerRequest interface. -type MockApiUnrescueServerRequest struct { - ctrl *gomock.Controller - recorder *MockApiUnrescueServerRequestMockRecorder - isgomock struct{} -} - -// MockApiUnrescueServerRequestMockRecorder is the mock recorder for MockApiUnrescueServerRequest. -type MockApiUnrescueServerRequestMockRecorder struct { - mock *MockApiUnrescueServerRequest -} - -// NewMockApiUnrescueServerRequest creates a new mock instance. -func NewMockApiUnrescueServerRequest(ctrl *gomock.Controller) *MockApiUnrescueServerRequest { - mock := &MockApiUnrescueServerRequest{ctrl: ctrl} - mock.recorder = &MockApiUnrescueServerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiUnrescueServerRequest) EXPECT() *MockApiUnrescueServerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiUnrescueServerRequest) Execute() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(error) - return ret0 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiUnrescueServerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiUnrescueServerRequest)(nil).Execute)) -} - -// MockApiUpdateAttachedVolumeRequest is a mock of ApiUpdateAttachedVolumeRequest interface. -type MockApiUpdateAttachedVolumeRequest struct { - ctrl *gomock.Controller - recorder *MockApiUpdateAttachedVolumeRequestMockRecorder - isgomock struct{} -} - -// MockApiUpdateAttachedVolumeRequestMockRecorder is the mock recorder for MockApiUpdateAttachedVolumeRequest. -type MockApiUpdateAttachedVolumeRequestMockRecorder struct { - mock *MockApiUpdateAttachedVolumeRequest -} - -// NewMockApiUpdateAttachedVolumeRequest creates a new mock instance. -func NewMockApiUpdateAttachedVolumeRequest(ctrl *gomock.Controller) *MockApiUpdateAttachedVolumeRequest { - mock := &MockApiUpdateAttachedVolumeRequest{ctrl: ctrl} - mock.recorder = &MockApiUpdateAttachedVolumeRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiUpdateAttachedVolumeRequest) EXPECT() *MockApiUpdateAttachedVolumeRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiUpdateAttachedVolumeRequest) Execute() (*iaas.VolumeAttachment, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.VolumeAttachment) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiUpdateAttachedVolumeRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiUpdateAttachedVolumeRequest)(nil).Execute)) -} - -// UpdateAttachedVolumePayload mocks base method. -func (m *MockApiUpdateAttachedVolumeRequest) UpdateAttachedVolumePayload(updateAttachedVolumePayload iaas.UpdateAttachedVolumePayload) iaas.ApiUpdateAttachedVolumeRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateAttachedVolumePayload", updateAttachedVolumePayload) - ret0, _ := ret[0].(iaas.ApiUpdateAttachedVolumeRequest) - return ret0 -} - -// UpdateAttachedVolumePayload indicates an expected call of UpdateAttachedVolumePayload. -func (mr *MockApiUpdateAttachedVolumeRequestMockRecorder) UpdateAttachedVolumePayload(updateAttachedVolumePayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateAttachedVolumePayload", reflect.TypeOf((*MockApiUpdateAttachedVolumeRequest)(nil).UpdateAttachedVolumePayload), updateAttachedVolumePayload) -} - -// MockApiUpdateBackupRequest is a mock of ApiUpdateBackupRequest interface. -type MockApiUpdateBackupRequest struct { - ctrl *gomock.Controller - recorder *MockApiUpdateBackupRequestMockRecorder - isgomock struct{} -} - -// MockApiUpdateBackupRequestMockRecorder is the mock recorder for MockApiUpdateBackupRequest. -type MockApiUpdateBackupRequestMockRecorder struct { - mock *MockApiUpdateBackupRequest -} - -// NewMockApiUpdateBackupRequest creates a new mock instance. -func NewMockApiUpdateBackupRequest(ctrl *gomock.Controller) *MockApiUpdateBackupRequest { - mock := &MockApiUpdateBackupRequest{ctrl: ctrl} - mock.recorder = &MockApiUpdateBackupRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiUpdateBackupRequest) EXPECT() *MockApiUpdateBackupRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiUpdateBackupRequest) Execute() (*iaas.Backup, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Backup) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiUpdateBackupRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiUpdateBackupRequest)(nil).Execute)) -} - -// UpdateBackupPayload mocks base method. -func (m *MockApiUpdateBackupRequest) UpdateBackupPayload(updateBackupPayload iaas.UpdateBackupPayload) iaas.ApiUpdateBackupRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateBackupPayload", updateBackupPayload) - ret0, _ := ret[0].(iaas.ApiUpdateBackupRequest) - return ret0 -} - -// UpdateBackupPayload indicates an expected call of UpdateBackupPayload. -func (mr *MockApiUpdateBackupRequestMockRecorder) UpdateBackupPayload(updateBackupPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateBackupPayload", reflect.TypeOf((*MockApiUpdateBackupRequest)(nil).UpdateBackupPayload), updateBackupPayload) -} - -// MockApiUpdateImageRequest is a mock of ApiUpdateImageRequest interface. -type MockApiUpdateImageRequest struct { - ctrl *gomock.Controller - recorder *MockApiUpdateImageRequestMockRecorder - isgomock struct{} -} - -// MockApiUpdateImageRequestMockRecorder is the mock recorder for MockApiUpdateImageRequest. -type MockApiUpdateImageRequestMockRecorder struct { - mock *MockApiUpdateImageRequest -} - -// NewMockApiUpdateImageRequest creates a new mock instance. -func NewMockApiUpdateImageRequest(ctrl *gomock.Controller) *MockApiUpdateImageRequest { - mock := &MockApiUpdateImageRequest{ctrl: ctrl} - mock.recorder = &MockApiUpdateImageRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiUpdateImageRequest) EXPECT() *MockApiUpdateImageRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiUpdateImageRequest) Execute() (*iaas.Image, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Image) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiUpdateImageRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiUpdateImageRequest)(nil).Execute)) -} - -// UpdateImagePayload mocks base method. -func (m *MockApiUpdateImageRequest) UpdateImagePayload(updateImagePayload iaas.UpdateImagePayload) iaas.ApiUpdateImageRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateImagePayload", updateImagePayload) - ret0, _ := ret[0].(iaas.ApiUpdateImageRequest) - return ret0 -} - -// UpdateImagePayload indicates an expected call of UpdateImagePayload. -func (mr *MockApiUpdateImageRequestMockRecorder) UpdateImagePayload(updateImagePayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateImagePayload", reflect.TypeOf((*MockApiUpdateImageRequest)(nil).UpdateImagePayload), updateImagePayload) -} - -// MockApiUpdateImageShareRequest is a mock of ApiUpdateImageShareRequest interface. -type MockApiUpdateImageShareRequest struct { - ctrl *gomock.Controller - recorder *MockApiUpdateImageShareRequestMockRecorder - isgomock struct{} -} - -// MockApiUpdateImageShareRequestMockRecorder is the mock recorder for MockApiUpdateImageShareRequest. -type MockApiUpdateImageShareRequestMockRecorder struct { - mock *MockApiUpdateImageShareRequest -} - -// NewMockApiUpdateImageShareRequest creates a new mock instance. -func NewMockApiUpdateImageShareRequest(ctrl *gomock.Controller) *MockApiUpdateImageShareRequest { - mock := &MockApiUpdateImageShareRequest{ctrl: ctrl} - mock.recorder = &MockApiUpdateImageShareRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiUpdateImageShareRequest) EXPECT() *MockApiUpdateImageShareRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiUpdateImageShareRequest) Execute() (*iaas.ImageShare, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.ImageShare) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiUpdateImageShareRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiUpdateImageShareRequest)(nil).Execute)) -} - -// UpdateImageSharePayload mocks base method. -func (m *MockApiUpdateImageShareRequest) UpdateImageSharePayload(updateImageSharePayload iaas.UpdateImageSharePayload) iaas.ApiUpdateImageShareRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateImageSharePayload", updateImageSharePayload) - ret0, _ := ret[0].(iaas.ApiUpdateImageShareRequest) - return ret0 -} - -// UpdateImageSharePayload indicates an expected call of UpdateImageSharePayload. -func (mr *MockApiUpdateImageShareRequestMockRecorder) UpdateImageSharePayload(updateImageSharePayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateImageSharePayload", reflect.TypeOf((*MockApiUpdateImageShareRequest)(nil).UpdateImageSharePayload), updateImageSharePayload) -} - -// MockApiUpdateKeyPairRequest is a mock of ApiUpdateKeyPairRequest interface. -type MockApiUpdateKeyPairRequest struct { - ctrl *gomock.Controller - recorder *MockApiUpdateKeyPairRequestMockRecorder - isgomock struct{} -} - -// MockApiUpdateKeyPairRequestMockRecorder is the mock recorder for MockApiUpdateKeyPairRequest. -type MockApiUpdateKeyPairRequestMockRecorder struct { - mock *MockApiUpdateKeyPairRequest -} - -// NewMockApiUpdateKeyPairRequest creates a new mock instance. -func NewMockApiUpdateKeyPairRequest(ctrl *gomock.Controller) *MockApiUpdateKeyPairRequest { - mock := &MockApiUpdateKeyPairRequest{ctrl: ctrl} - mock.recorder = &MockApiUpdateKeyPairRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiUpdateKeyPairRequest) EXPECT() *MockApiUpdateKeyPairRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiUpdateKeyPairRequest) Execute() (*iaas.Keypair, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Keypair) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiUpdateKeyPairRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiUpdateKeyPairRequest)(nil).Execute)) -} - -// UpdateKeyPairPayload mocks base method. -func (m *MockApiUpdateKeyPairRequest) UpdateKeyPairPayload(updateKeyPairPayload iaas.UpdateKeyPairPayload) iaas.ApiUpdateKeyPairRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateKeyPairPayload", updateKeyPairPayload) - ret0, _ := ret[0].(iaas.ApiUpdateKeyPairRequest) - return ret0 -} - -// UpdateKeyPairPayload indicates an expected call of UpdateKeyPairPayload. -func (mr *MockApiUpdateKeyPairRequestMockRecorder) UpdateKeyPairPayload(updateKeyPairPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateKeyPairPayload", reflect.TypeOf((*MockApiUpdateKeyPairRequest)(nil).UpdateKeyPairPayload), updateKeyPairPayload) -} - -// MockApiUpdateNetworkAreaRegionRequest is a mock of ApiUpdateNetworkAreaRegionRequest interface. -type MockApiUpdateNetworkAreaRegionRequest struct { - ctrl *gomock.Controller - recorder *MockApiUpdateNetworkAreaRegionRequestMockRecorder - isgomock struct{} -} - -// MockApiUpdateNetworkAreaRegionRequestMockRecorder is the mock recorder for MockApiUpdateNetworkAreaRegionRequest. -type MockApiUpdateNetworkAreaRegionRequestMockRecorder struct { - mock *MockApiUpdateNetworkAreaRegionRequest -} - -// NewMockApiUpdateNetworkAreaRegionRequest creates a new mock instance. -func NewMockApiUpdateNetworkAreaRegionRequest(ctrl *gomock.Controller) *MockApiUpdateNetworkAreaRegionRequest { - mock := &MockApiUpdateNetworkAreaRegionRequest{ctrl: ctrl} - mock.recorder = &MockApiUpdateNetworkAreaRegionRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiUpdateNetworkAreaRegionRequest) EXPECT() *MockApiUpdateNetworkAreaRegionRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiUpdateNetworkAreaRegionRequest) Execute() (*iaas.RegionalArea, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.RegionalArea) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiUpdateNetworkAreaRegionRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiUpdateNetworkAreaRegionRequest)(nil).Execute)) -} - -// UpdateNetworkAreaRegionPayload mocks base method. -func (m *MockApiUpdateNetworkAreaRegionRequest) UpdateNetworkAreaRegionPayload(updateNetworkAreaRegionPayload iaas.UpdateNetworkAreaRegionPayload) iaas.ApiUpdateNetworkAreaRegionRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateNetworkAreaRegionPayload", updateNetworkAreaRegionPayload) - ret0, _ := ret[0].(iaas.ApiUpdateNetworkAreaRegionRequest) - return ret0 -} - -// UpdateNetworkAreaRegionPayload indicates an expected call of UpdateNetworkAreaRegionPayload. -func (mr *MockApiUpdateNetworkAreaRegionRequestMockRecorder) UpdateNetworkAreaRegionPayload(updateNetworkAreaRegionPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNetworkAreaRegionPayload", reflect.TypeOf((*MockApiUpdateNetworkAreaRegionRequest)(nil).UpdateNetworkAreaRegionPayload), updateNetworkAreaRegionPayload) -} - -// MockApiUpdateNetworkAreaRouteRequest is a mock of ApiUpdateNetworkAreaRouteRequest interface. -type MockApiUpdateNetworkAreaRouteRequest struct { - ctrl *gomock.Controller - recorder *MockApiUpdateNetworkAreaRouteRequestMockRecorder - isgomock struct{} -} - -// MockApiUpdateNetworkAreaRouteRequestMockRecorder is the mock recorder for MockApiUpdateNetworkAreaRouteRequest. -type MockApiUpdateNetworkAreaRouteRequestMockRecorder struct { - mock *MockApiUpdateNetworkAreaRouteRequest -} - -// NewMockApiUpdateNetworkAreaRouteRequest creates a new mock instance. -func NewMockApiUpdateNetworkAreaRouteRequest(ctrl *gomock.Controller) *MockApiUpdateNetworkAreaRouteRequest { - mock := &MockApiUpdateNetworkAreaRouteRequest{ctrl: ctrl} - mock.recorder = &MockApiUpdateNetworkAreaRouteRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiUpdateNetworkAreaRouteRequest) EXPECT() *MockApiUpdateNetworkAreaRouteRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiUpdateNetworkAreaRouteRequest) Execute() (*iaas.Route, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Route) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiUpdateNetworkAreaRouteRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiUpdateNetworkAreaRouteRequest)(nil).Execute)) -} - -// UpdateNetworkAreaRoutePayload mocks base method. -func (m *MockApiUpdateNetworkAreaRouteRequest) UpdateNetworkAreaRoutePayload(updateNetworkAreaRoutePayload iaas.UpdateNetworkAreaRoutePayload) iaas.ApiUpdateNetworkAreaRouteRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateNetworkAreaRoutePayload", updateNetworkAreaRoutePayload) - ret0, _ := ret[0].(iaas.ApiUpdateNetworkAreaRouteRequest) - return ret0 -} - -// UpdateNetworkAreaRoutePayload indicates an expected call of UpdateNetworkAreaRoutePayload. -func (mr *MockApiUpdateNetworkAreaRouteRequestMockRecorder) UpdateNetworkAreaRoutePayload(updateNetworkAreaRoutePayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNetworkAreaRoutePayload", reflect.TypeOf((*MockApiUpdateNetworkAreaRouteRequest)(nil).UpdateNetworkAreaRoutePayload), updateNetworkAreaRoutePayload) -} - -// MockApiUpdateNicRequest is a mock of ApiUpdateNicRequest interface. -type MockApiUpdateNicRequest struct { - ctrl *gomock.Controller - recorder *MockApiUpdateNicRequestMockRecorder - isgomock struct{} -} - -// MockApiUpdateNicRequestMockRecorder is the mock recorder for MockApiUpdateNicRequest. -type MockApiUpdateNicRequestMockRecorder struct { - mock *MockApiUpdateNicRequest -} - -// NewMockApiUpdateNicRequest creates a new mock instance. -func NewMockApiUpdateNicRequest(ctrl *gomock.Controller) *MockApiUpdateNicRequest { - mock := &MockApiUpdateNicRequest{ctrl: ctrl} - mock.recorder = &MockApiUpdateNicRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiUpdateNicRequest) EXPECT() *MockApiUpdateNicRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiUpdateNicRequest) Execute() (*iaas.NIC, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.NIC) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiUpdateNicRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiUpdateNicRequest)(nil).Execute)) -} - -// UpdateNicPayload mocks base method. -func (m *MockApiUpdateNicRequest) UpdateNicPayload(updateNicPayload iaas.UpdateNicPayload) iaas.ApiUpdateNicRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateNicPayload", updateNicPayload) - ret0, _ := ret[0].(iaas.ApiUpdateNicRequest) - return ret0 -} - -// UpdateNicPayload indicates an expected call of UpdateNicPayload. -func (mr *MockApiUpdateNicRequestMockRecorder) UpdateNicPayload(updateNicPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNicPayload", reflect.TypeOf((*MockApiUpdateNicRequest)(nil).UpdateNicPayload), updateNicPayload) -} - -// MockApiUpdatePublicIPRequest is a mock of ApiUpdatePublicIPRequest interface. -type MockApiUpdatePublicIPRequest struct { - ctrl *gomock.Controller - recorder *MockApiUpdatePublicIPRequestMockRecorder - isgomock struct{} -} - -// MockApiUpdatePublicIPRequestMockRecorder is the mock recorder for MockApiUpdatePublicIPRequest. -type MockApiUpdatePublicIPRequestMockRecorder struct { - mock *MockApiUpdatePublicIPRequest -} - -// NewMockApiUpdatePublicIPRequest creates a new mock instance. -func NewMockApiUpdatePublicIPRequest(ctrl *gomock.Controller) *MockApiUpdatePublicIPRequest { - mock := &MockApiUpdatePublicIPRequest{ctrl: ctrl} - mock.recorder = &MockApiUpdatePublicIPRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiUpdatePublicIPRequest) EXPECT() *MockApiUpdatePublicIPRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiUpdatePublicIPRequest) Execute() (*iaas.PublicIp, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.PublicIp) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiUpdatePublicIPRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiUpdatePublicIPRequest)(nil).Execute)) -} - -// UpdatePublicIPPayload mocks base method. -func (m *MockApiUpdatePublicIPRequest) UpdatePublicIPPayload(updatePublicIPPayload iaas.UpdatePublicIPPayload) iaas.ApiUpdatePublicIPRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdatePublicIPPayload", updatePublicIPPayload) - ret0, _ := ret[0].(iaas.ApiUpdatePublicIPRequest) - return ret0 -} - -// UpdatePublicIPPayload indicates an expected call of UpdatePublicIPPayload. -func (mr *MockApiUpdatePublicIPRequestMockRecorder) UpdatePublicIPPayload(updatePublicIPPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdatePublicIPPayload", reflect.TypeOf((*MockApiUpdatePublicIPRequest)(nil).UpdatePublicIPPayload), updatePublicIPPayload) -} - -// MockApiUpdateRouteOfRoutingTableRequest is a mock of ApiUpdateRouteOfRoutingTableRequest interface. -type MockApiUpdateRouteOfRoutingTableRequest struct { - ctrl *gomock.Controller - recorder *MockApiUpdateRouteOfRoutingTableRequestMockRecorder - isgomock struct{} -} - -// MockApiUpdateRouteOfRoutingTableRequestMockRecorder is the mock recorder for MockApiUpdateRouteOfRoutingTableRequest. -type MockApiUpdateRouteOfRoutingTableRequestMockRecorder struct { - mock *MockApiUpdateRouteOfRoutingTableRequest -} - -// NewMockApiUpdateRouteOfRoutingTableRequest creates a new mock instance. -func NewMockApiUpdateRouteOfRoutingTableRequest(ctrl *gomock.Controller) *MockApiUpdateRouteOfRoutingTableRequest { - mock := &MockApiUpdateRouteOfRoutingTableRequest{ctrl: ctrl} - mock.recorder = &MockApiUpdateRouteOfRoutingTableRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiUpdateRouteOfRoutingTableRequest) EXPECT() *MockApiUpdateRouteOfRoutingTableRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiUpdateRouteOfRoutingTableRequest) Execute() (*iaas.Route, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Route) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiUpdateRouteOfRoutingTableRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiUpdateRouteOfRoutingTableRequest)(nil).Execute)) -} - -// UpdateRouteOfRoutingTablePayload mocks base method. -func (m *MockApiUpdateRouteOfRoutingTableRequest) UpdateRouteOfRoutingTablePayload(updateRouteOfRoutingTablePayload iaas.UpdateRouteOfRoutingTablePayload) iaas.ApiUpdateRouteOfRoutingTableRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateRouteOfRoutingTablePayload", updateRouteOfRoutingTablePayload) - ret0, _ := ret[0].(iaas.ApiUpdateRouteOfRoutingTableRequest) - return ret0 -} - -// UpdateRouteOfRoutingTablePayload indicates an expected call of UpdateRouteOfRoutingTablePayload. -func (mr *MockApiUpdateRouteOfRoutingTableRequestMockRecorder) UpdateRouteOfRoutingTablePayload(updateRouteOfRoutingTablePayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateRouteOfRoutingTablePayload", reflect.TypeOf((*MockApiUpdateRouteOfRoutingTableRequest)(nil).UpdateRouteOfRoutingTablePayload), updateRouteOfRoutingTablePayload) -} - -// MockApiUpdateRoutingTableOfAreaRequest is a mock of ApiUpdateRoutingTableOfAreaRequest interface. -type MockApiUpdateRoutingTableOfAreaRequest struct { - ctrl *gomock.Controller - recorder *MockApiUpdateRoutingTableOfAreaRequestMockRecorder - isgomock struct{} -} - -// MockApiUpdateRoutingTableOfAreaRequestMockRecorder is the mock recorder for MockApiUpdateRoutingTableOfAreaRequest. -type MockApiUpdateRoutingTableOfAreaRequestMockRecorder struct { - mock *MockApiUpdateRoutingTableOfAreaRequest -} - -// NewMockApiUpdateRoutingTableOfAreaRequest creates a new mock instance. -func NewMockApiUpdateRoutingTableOfAreaRequest(ctrl *gomock.Controller) *MockApiUpdateRoutingTableOfAreaRequest { - mock := &MockApiUpdateRoutingTableOfAreaRequest{ctrl: ctrl} - mock.recorder = &MockApiUpdateRoutingTableOfAreaRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiUpdateRoutingTableOfAreaRequest) EXPECT() *MockApiUpdateRoutingTableOfAreaRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiUpdateRoutingTableOfAreaRequest) Execute() (*iaas.RoutingTable, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.RoutingTable) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiUpdateRoutingTableOfAreaRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiUpdateRoutingTableOfAreaRequest)(nil).Execute)) -} - -// UpdateRoutingTableOfAreaPayload mocks base method. -func (m *MockApiUpdateRoutingTableOfAreaRequest) UpdateRoutingTableOfAreaPayload(updateRoutingTableOfAreaPayload iaas.UpdateRoutingTableOfAreaPayload) iaas.ApiUpdateRoutingTableOfAreaRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateRoutingTableOfAreaPayload", updateRoutingTableOfAreaPayload) - ret0, _ := ret[0].(iaas.ApiUpdateRoutingTableOfAreaRequest) - return ret0 -} - -// UpdateRoutingTableOfAreaPayload indicates an expected call of UpdateRoutingTableOfAreaPayload. -func (mr *MockApiUpdateRoutingTableOfAreaRequestMockRecorder) UpdateRoutingTableOfAreaPayload(updateRoutingTableOfAreaPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateRoutingTableOfAreaPayload", reflect.TypeOf((*MockApiUpdateRoutingTableOfAreaRequest)(nil).UpdateRoutingTableOfAreaPayload), updateRoutingTableOfAreaPayload) -} - -// MockApiUpdateSecurityGroupRequest is a mock of ApiUpdateSecurityGroupRequest interface. -type MockApiUpdateSecurityGroupRequest struct { - ctrl *gomock.Controller - recorder *MockApiUpdateSecurityGroupRequestMockRecorder - isgomock struct{} -} - -// MockApiUpdateSecurityGroupRequestMockRecorder is the mock recorder for MockApiUpdateSecurityGroupRequest. -type MockApiUpdateSecurityGroupRequestMockRecorder struct { - mock *MockApiUpdateSecurityGroupRequest -} - -// NewMockApiUpdateSecurityGroupRequest creates a new mock instance. -func NewMockApiUpdateSecurityGroupRequest(ctrl *gomock.Controller) *MockApiUpdateSecurityGroupRequest { - mock := &MockApiUpdateSecurityGroupRequest{ctrl: ctrl} - mock.recorder = &MockApiUpdateSecurityGroupRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiUpdateSecurityGroupRequest) EXPECT() *MockApiUpdateSecurityGroupRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiUpdateSecurityGroupRequest) Execute() (*iaas.SecurityGroup, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.SecurityGroup) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiUpdateSecurityGroupRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiUpdateSecurityGroupRequest)(nil).Execute)) -} - -// UpdateSecurityGroupPayload mocks base method. -func (m *MockApiUpdateSecurityGroupRequest) UpdateSecurityGroupPayload(updateSecurityGroupPayload iaas.UpdateSecurityGroupPayload) iaas.ApiUpdateSecurityGroupRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateSecurityGroupPayload", updateSecurityGroupPayload) - ret0, _ := ret[0].(iaas.ApiUpdateSecurityGroupRequest) - return ret0 -} - -// UpdateSecurityGroupPayload indicates an expected call of UpdateSecurityGroupPayload. -func (mr *MockApiUpdateSecurityGroupRequestMockRecorder) UpdateSecurityGroupPayload(updateSecurityGroupPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSecurityGroupPayload", reflect.TypeOf((*MockApiUpdateSecurityGroupRequest)(nil).UpdateSecurityGroupPayload), updateSecurityGroupPayload) -} - -// MockApiUpdateServerRequest is a mock of ApiUpdateServerRequest interface. -type MockApiUpdateServerRequest struct { - ctrl *gomock.Controller - recorder *MockApiUpdateServerRequestMockRecorder - isgomock struct{} -} - -// MockApiUpdateServerRequestMockRecorder is the mock recorder for MockApiUpdateServerRequest. -type MockApiUpdateServerRequestMockRecorder struct { - mock *MockApiUpdateServerRequest -} - -// NewMockApiUpdateServerRequest creates a new mock instance. -func NewMockApiUpdateServerRequest(ctrl *gomock.Controller) *MockApiUpdateServerRequest { - mock := &MockApiUpdateServerRequest{ctrl: ctrl} - mock.recorder = &MockApiUpdateServerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiUpdateServerRequest) EXPECT() *MockApiUpdateServerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiUpdateServerRequest) Execute() (*iaas.Server, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Server) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiUpdateServerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiUpdateServerRequest)(nil).Execute)) -} - -// UpdateServerPayload mocks base method. -func (m *MockApiUpdateServerRequest) UpdateServerPayload(updateServerPayload iaas.UpdateServerPayload) iaas.ApiUpdateServerRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateServerPayload", updateServerPayload) - ret0, _ := ret[0].(iaas.ApiUpdateServerRequest) - return ret0 -} - -// UpdateServerPayload indicates an expected call of UpdateServerPayload. -func (mr *MockApiUpdateServerRequestMockRecorder) UpdateServerPayload(updateServerPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateServerPayload", reflect.TypeOf((*MockApiUpdateServerRequest)(nil).UpdateServerPayload), updateServerPayload) -} - -// MockApiUpdateSnapshotRequest is a mock of ApiUpdateSnapshotRequest interface. -type MockApiUpdateSnapshotRequest struct { - ctrl *gomock.Controller - recorder *MockApiUpdateSnapshotRequestMockRecorder - isgomock struct{} -} - -// MockApiUpdateSnapshotRequestMockRecorder is the mock recorder for MockApiUpdateSnapshotRequest. -type MockApiUpdateSnapshotRequestMockRecorder struct { - mock *MockApiUpdateSnapshotRequest -} - -// NewMockApiUpdateSnapshotRequest creates a new mock instance. -func NewMockApiUpdateSnapshotRequest(ctrl *gomock.Controller) *MockApiUpdateSnapshotRequest { - mock := &MockApiUpdateSnapshotRequest{ctrl: ctrl} - mock.recorder = &MockApiUpdateSnapshotRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiUpdateSnapshotRequest) EXPECT() *MockApiUpdateSnapshotRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiUpdateSnapshotRequest) Execute() (*iaas.Snapshot, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Snapshot) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiUpdateSnapshotRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiUpdateSnapshotRequest)(nil).Execute)) -} - -// UpdateSnapshotPayload mocks base method. -func (m *MockApiUpdateSnapshotRequest) UpdateSnapshotPayload(updateSnapshotPayload iaas.UpdateSnapshotPayload) iaas.ApiUpdateSnapshotRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateSnapshotPayload", updateSnapshotPayload) - ret0, _ := ret[0].(iaas.ApiUpdateSnapshotRequest) - return ret0 -} - -// UpdateSnapshotPayload indicates an expected call of UpdateSnapshotPayload. -func (mr *MockApiUpdateSnapshotRequestMockRecorder) UpdateSnapshotPayload(updateSnapshotPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSnapshotPayload", reflect.TypeOf((*MockApiUpdateSnapshotRequest)(nil).UpdateSnapshotPayload), updateSnapshotPayload) -} - -// MockApiUpdateVolumeRequest is a mock of ApiUpdateVolumeRequest interface. -type MockApiUpdateVolumeRequest struct { - ctrl *gomock.Controller - recorder *MockApiUpdateVolumeRequestMockRecorder - isgomock struct{} -} - -// MockApiUpdateVolumeRequestMockRecorder is the mock recorder for MockApiUpdateVolumeRequest. -type MockApiUpdateVolumeRequestMockRecorder struct { - mock *MockApiUpdateVolumeRequest -} - -// NewMockApiUpdateVolumeRequest creates a new mock instance. -func NewMockApiUpdateVolumeRequest(ctrl *gomock.Controller) *MockApiUpdateVolumeRequest { - mock := &MockApiUpdateVolumeRequest{ctrl: ctrl} - mock.recorder = &MockApiUpdateVolumeRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiUpdateVolumeRequest) EXPECT() *MockApiUpdateVolumeRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiUpdateVolumeRequest) Execute() (*iaas.Volume, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*iaas.Volume) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiUpdateVolumeRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiUpdateVolumeRequest)(nil).Execute)) -} - -// UpdateVolumePayload mocks base method. -func (m *MockApiUpdateVolumeRequest) UpdateVolumePayload(updateVolumePayload iaas.UpdateVolumePayload) iaas.ApiUpdateVolumeRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateVolumePayload", updateVolumePayload) - ret0, _ := ret[0].(iaas.ApiUpdateVolumeRequest) - return ret0 -} - -// UpdateVolumePayload indicates an expected call of UpdateVolumePayload. -func (mr *MockApiUpdateVolumeRequestMockRecorder) UpdateVolumePayload(updateVolumePayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateVolumePayload", reflect.TypeOf((*MockApiUpdateVolumeRequest)(nil).UpdateVolumePayload), updateVolumePayload) -} - -// MockDefaultApi is a mock of DefaultApi interface. -type MockDefaultApi struct { - ctrl *gomock.Controller - recorder *MockDefaultApiMockRecorder - isgomock struct{} -} - -// MockDefaultApiMockRecorder is the mock recorder for MockDefaultApi. -type MockDefaultApiMockRecorder struct { - mock *MockDefaultApi -} - -// NewMockDefaultApi creates a new mock instance. -func NewMockDefaultApi(ctrl *gomock.Controller) *MockDefaultApi { - mock := &MockDefaultApi{ctrl: ctrl} - mock.recorder = &MockDefaultApiMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockDefaultApi) EXPECT() *MockDefaultApiMockRecorder { +func (m *MockDefaultAPI) EXPECT() *MockDefaultAPIMockRecorder { return m.recorder } // AddNetworkToServer mocks base method. -func (m *MockDefaultApi) AddNetworkToServer(ctx context.Context, projectId, region, serverId, networkId string) iaas.ApiAddNetworkToServerRequest { +func (m *MockDefaultAPI) AddNetworkToServer(ctx context.Context, projectId, region, serverId, networkId string) v2api.ApiAddNetworkToServerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "AddNetworkToServer", ctx, projectId, region, serverId, networkId) - ret0, _ := ret[0].(iaas.ApiAddNetworkToServerRequest) + ret0, _ := ret[0].(v2api.ApiAddNetworkToServerRequest) return ret0 } // AddNetworkToServer indicates an expected call of AddNetworkToServer. -func (mr *MockDefaultApiMockRecorder) AddNetworkToServer(ctx, projectId, region, serverId, networkId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) AddNetworkToServer(ctx, projectId, region, serverId, networkId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddNetworkToServer", reflect.TypeOf((*MockDefaultApi)(nil).AddNetworkToServer), ctx, projectId, region, serverId, networkId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddNetworkToServer", reflect.TypeOf((*MockDefaultAPI)(nil).AddNetworkToServer), ctx, projectId, region, serverId, networkId) } // AddNetworkToServerExecute mocks base method. -func (m *MockDefaultApi) AddNetworkToServerExecute(ctx context.Context, projectId, region, serverId, networkId string) error { +func (m *MockDefaultAPI) AddNetworkToServerExecute(r v2api.ApiAddNetworkToServerRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "AddNetworkToServerExecute", ctx, projectId, region, serverId, networkId) + ret := m.ctrl.Call(m, "AddNetworkToServerExecute", r) ret0, _ := ret[0].(error) return ret0 } // AddNetworkToServerExecute indicates an expected call of AddNetworkToServerExecute. -func (mr *MockDefaultApiMockRecorder) AddNetworkToServerExecute(ctx, projectId, region, serverId, networkId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) AddNetworkToServerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddNetworkToServerExecute", reflect.TypeOf((*MockDefaultApi)(nil).AddNetworkToServerExecute), ctx, projectId, region, serverId, networkId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddNetworkToServerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).AddNetworkToServerExecute), r) } // AddNicToServer mocks base method. -func (m *MockDefaultApi) AddNicToServer(ctx context.Context, projectId, region, serverId, nicId string) iaas.ApiAddNicToServerRequest { +func (m *MockDefaultAPI) AddNicToServer(ctx context.Context, projectId, region, serverId, nicId string) v2api.ApiAddNicToServerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "AddNicToServer", ctx, projectId, region, serverId, nicId) - ret0, _ := ret[0].(iaas.ApiAddNicToServerRequest) + ret0, _ := ret[0].(v2api.ApiAddNicToServerRequest) return ret0 } // AddNicToServer indicates an expected call of AddNicToServer. -func (mr *MockDefaultApiMockRecorder) AddNicToServer(ctx, projectId, region, serverId, nicId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) AddNicToServer(ctx, projectId, region, serverId, nicId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddNicToServer", reflect.TypeOf((*MockDefaultApi)(nil).AddNicToServer), ctx, projectId, region, serverId, nicId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddNicToServer", reflect.TypeOf((*MockDefaultAPI)(nil).AddNicToServer), ctx, projectId, region, serverId, nicId) } // AddNicToServerExecute mocks base method. -func (m *MockDefaultApi) AddNicToServerExecute(ctx context.Context, projectId, region, serverId, nicId string) error { +func (m *MockDefaultAPI) AddNicToServerExecute(r v2api.ApiAddNicToServerRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "AddNicToServerExecute", ctx, projectId, region, serverId, nicId) + ret := m.ctrl.Call(m, "AddNicToServerExecute", r) ret0, _ := ret[0].(error) return ret0 } // AddNicToServerExecute indicates an expected call of AddNicToServerExecute. -func (mr *MockDefaultApiMockRecorder) AddNicToServerExecute(ctx, projectId, region, serverId, nicId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) AddNicToServerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddNicToServerExecute", reflect.TypeOf((*MockDefaultApi)(nil).AddNicToServerExecute), ctx, projectId, region, serverId, nicId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddNicToServerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).AddNicToServerExecute), r) } // AddPublicIpToServer mocks base method. -func (m *MockDefaultApi) AddPublicIpToServer(ctx context.Context, projectId, region, serverId, publicIpId string) iaas.ApiAddPublicIpToServerRequest { +func (m *MockDefaultAPI) AddPublicIpToServer(ctx context.Context, projectId, region, serverId, publicIpId string) v2api.ApiAddPublicIpToServerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "AddPublicIpToServer", ctx, projectId, region, serverId, publicIpId) - ret0, _ := ret[0].(iaas.ApiAddPublicIpToServerRequest) + ret0, _ := ret[0].(v2api.ApiAddPublicIpToServerRequest) return ret0 } // AddPublicIpToServer indicates an expected call of AddPublicIpToServer. -func (mr *MockDefaultApiMockRecorder) AddPublicIpToServer(ctx, projectId, region, serverId, publicIpId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) AddPublicIpToServer(ctx, projectId, region, serverId, publicIpId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddPublicIpToServer", reflect.TypeOf((*MockDefaultApi)(nil).AddPublicIpToServer), ctx, projectId, region, serverId, publicIpId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddPublicIpToServer", reflect.TypeOf((*MockDefaultAPI)(nil).AddPublicIpToServer), ctx, projectId, region, serverId, publicIpId) } // AddPublicIpToServerExecute mocks base method. -func (m *MockDefaultApi) AddPublicIpToServerExecute(ctx context.Context, projectId, region, serverId, publicIpId string) error { +func (m *MockDefaultAPI) AddPublicIpToServerExecute(r v2api.ApiAddPublicIpToServerRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "AddPublicIpToServerExecute", ctx, projectId, region, serverId, publicIpId) + ret := m.ctrl.Call(m, "AddPublicIpToServerExecute", r) ret0, _ := ret[0].(error) return ret0 } // AddPublicIpToServerExecute indicates an expected call of AddPublicIpToServerExecute. -func (mr *MockDefaultApiMockRecorder) AddPublicIpToServerExecute(ctx, projectId, region, serverId, publicIpId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) AddPublicIpToServerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddPublicIpToServerExecute", reflect.TypeOf((*MockDefaultApi)(nil).AddPublicIpToServerExecute), ctx, projectId, region, serverId, publicIpId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddPublicIpToServerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).AddPublicIpToServerExecute), r) } // AddRoutesToRoutingTable mocks base method. -func (m *MockDefaultApi) AddRoutesToRoutingTable(ctx context.Context, organizationId, areaId, region, routingTableId string) iaas.ApiAddRoutesToRoutingTableRequest { +func (m *MockDefaultAPI) AddRoutesToRoutingTable(ctx context.Context, organizationId, areaId, region, routingTableId string) v2api.ApiAddRoutesToRoutingTableRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "AddRoutesToRoutingTable", ctx, organizationId, areaId, region, routingTableId) - ret0, _ := ret[0].(iaas.ApiAddRoutesToRoutingTableRequest) + ret0, _ := ret[0].(v2api.ApiAddRoutesToRoutingTableRequest) return ret0 } // AddRoutesToRoutingTable indicates an expected call of AddRoutesToRoutingTable. -func (mr *MockDefaultApiMockRecorder) AddRoutesToRoutingTable(ctx, organizationId, areaId, region, routingTableId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) AddRoutesToRoutingTable(ctx, organizationId, areaId, region, routingTableId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddRoutesToRoutingTable", reflect.TypeOf((*MockDefaultApi)(nil).AddRoutesToRoutingTable), ctx, organizationId, areaId, region, routingTableId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddRoutesToRoutingTable", reflect.TypeOf((*MockDefaultAPI)(nil).AddRoutesToRoutingTable), ctx, organizationId, areaId, region, routingTableId) } // AddRoutesToRoutingTableExecute mocks base method. -func (m *MockDefaultApi) AddRoutesToRoutingTableExecute(ctx context.Context, organizationId, areaId, region, routingTableId string) (*iaas.RouteListResponse, error) { +func (m *MockDefaultAPI) AddRoutesToRoutingTableExecute(r v2api.ApiAddRoutesToRoutingTableRequest) (*v2api.RouteListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "AddRoutesToRoutingTableExecute", ctx, organizationId, areaId, region, routingTableId) - ret0, _ := ret[0].(*iaas.RouteListResponse) + ret := m.ctrl.Call(m, "AddRoutesToRoutingTableExecute", r) + ret0, _ := ret[0].(*v2api.RouteListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // AddRoutesToRoutingTableExecute indicates an expected call of AddRoutesToRoutingTableExecute. -func (mr *MockDefaultApiMockRecorder) AddRoutesToRoutingTableExecute(ctx, organizationId, areaId, region, routingTableId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) AddRoutesToRoutingTableExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddRoutesToRoutingTableExecute", reflect.TypeOf((*MockDefaultApi)(nil).AddRoutesToRoutingTableExecute), ctx, organizationId, areaId, region, routingTableId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddRoutesToRoutingTableExecute", reflect.TypeOf((*MockDefaultAPI)(nil).AddRoutesToRoutingTableExecute), r) } // AddRoutingTableToArea mocks base method. -func (m *MockDefaultApi) AddRoutingTableToArea(ctx context.Context, organizationId, areaId, region string) iaas.ApiAddRoutingTableToAreaRequest { +func (m *MockDefaultAPI) AddRoutingTableToArea(ctx context.Context, organizationId, areaId, region string) v2api.ApiAddRoutingTableToAreaRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "AddRoutingTableToArea", ctx, organizationId, areaId, region) - ret0, _ := ret[0].(iaas.ApiAddRoutingTableToAreaRequest) + ret0, _ := ret[0].(v2api.ApiAddRoutingTableToAreaRequest) return ret0 } // AddRoutingTableToArea indicates an expected call of AddRoutingTableToArea. -func (mr *MockDefaultApiMockRecorder) AddRoutingTableToArea(ctx, organizationId, areaId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) AddRoutingTableToArea(ctx, organizationId, areaId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddRoutingTableToArea", reflect.TypeOf((*MockDefaultApi)(nil).AddRoutingTableToArea), ctx, organizationId, areaId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddRoutingTableToArea", reflect.TypeOf((*MockDefaultAPI)(nil).AddRoutingTableToArea), ctx, organizationId, areaId, region) } // AddRoutingTableToAreaExecute mocks base method. -func (m *MockDefaultApi) AddRoutingTableToAreaExecute(ctx context.Context, organizationId, areaId, region string) (*iaas.RoutingTable, error) { +func (m *MockDefaultAPI) AddRoutingTableToAreaExecute(r v2api.ApiAddRoutingTableToAreaRequest) (*v2api.RoutingTable, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "AddRoutingTableToAreaExecute", ctx, organizationId, areaId, region) - ret0, _ := ret[0].(*iaas.RoutingTable) + ret := m.ctrl.Call(m, "AddRoutingTableToAreaExecute", r) + ret0, _ := ret[0].(*v2api.RoutingTable) ret1, _ := ret[1].(error) return ret0, ret1 } // AddRoutingTableToAreaExecute indicates an expected call of AddRoutingTableToAreaExecute. -func (mr *MockDefaultApiMockRecorder) AddRoutingTableToAreaExecute(ctx, organizationId, areaId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) AddRoutingTableToAreaExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddRoutingTableToAreaExecute", reflect.TypeOf((*MockDefaultApi)(nil).AddRoutingTableToAreaExecute), ctx, organizationId, areaId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddRoutingTableToAreaExecute", reflect.TypeOf((*MockDefaultAPI)(nil).AddRoutingTableToAreaExecute), r) } // AddSecurityGroupToServer mocks base method. -func (m *MockDefaultApi) AddSecurityGroupToServer(ctx context.Context, projectId, region, serverId, securityGroupId string) iaas.ApiAddSecurityGroupToServerRequest { +func (m *MockDefaultAPI) AddSecurityGroupToServer(ctx context.Context, projectId, region, serverId, securityGroupId string) v2api.ApiAddSecurityGroupToServerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "AddSecurityGroupToServer", ctx, projectId, region, serverId, securityGroupId) - ret0, _ := ret[0].(iaas.ApiAddSecurityGroupToServerRequest) + ret0, _ := ret[0].(v2api.ApiAddSecurityGroupToServerRequest) return ret0 } // AddSecurityGroupToServer indicates an expected call of AddSecurityGroupToServer. -func (mr *MockDefaultApiMockRecorder) AddSecurityGroupToServer(ctx, projectId, region, serverId, securityGroupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) AddSecurityGroupToServer(ctx, projectId, region, serverId, securityGroupId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddSecurityGroupToServer", reflect.TypeOf((*MockDefaultApi)(nil).AddSecurityGroupToServer), ctx, projectId, region, serverId, securityGroupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddSecurityGroupToServer", reflect.TypeOf((*MockDefaultAPI)(nil).AddSecurityGroupToServer), ctx, projectId, region, serverId, securityGroupId) } // AddSecurityGroupToServerExecute mocks base method. -func (m *MockDefaultApi) AddSecurityGroupToServerExecute(ctx context.Context, projectId, region, serverId, securityGroupId string) error { +func (m *MockDefaultAPI) AddSecurityGroupToServerExecute(r v2api.ApiAddSecurityGroupToServerRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "AddSecurityGroupToServerExecute", ctx, projectId, region, serverId, securityGroupId) + ret := m.ctrl.Call(m, "AddSecurityGroupToServerExecute", r) ret0, _ := ret[0].(error) return ret0 } // AddSecurityGroupToServerExecute indicates an expected call of AddSecurityGroupToServerExecute. -func (mr *MockDefaultApiMockRecorder) AddSecurityGroupToServerExecute(ctx, projectId, region, serverId, securityGroupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) AddSecurityGroupToServerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddSecurityGroupToServerExecute", reflect.TypeOf((*MockDefaultApi)(nil).AddSecurityGroupToServerExecute), ctx, projectId, region, serverId, securityGroupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddSecurityGroupToServerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).AddSecurityGroupToServerExecute), r) } // AddServiceAccountToServer mocks base method. -func (m *MockDefaultApi) AddServiceAccountToServer(ctx context.Context, projectId, region, serverId, serviceAccountMail string) iaas.ApiAddServiceAccountToServerRequest { +func (m *MockDefaultAPI) AddServiceAccountToServer(ctx context.Context, projectId, region, serverId, serviceAccountMail string) v2api.ApiAddServiceAccountToServerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "AddServiceAccountToServer", ctx, projectId, region, serverId, serviceAccountMail) - ret0, _ := ret[0].(iaas.ApiAddServiceAccountToServerRequest) + ret0, _ := ret[0].(v2api.ApiAddServiceAccountToServerRequest) return ret0 } // AddServiceAccountToServer indicates an expected call of AddServiceAccountToServer. -func (mr *MockDefaultApiMockRecorder) AddServiceAccountToServer(ctx, projectId, region, serverId, serviceAccountMail any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) AddServiceAccountToServer(ctx, projectId, region, serverId, serviceAccountMail any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddServiceAccountToServer", reflect.TypeOf((*MockDefaultApi)(nil).AddServiceAccountToServer), ctx, projectId, region, serverId, serviceAccountMail) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddServiceAccountToServer", reflect.TypeOf((*MockDefaultAPI)(nil).AddServiceAccountToServer), ctx, projectId, region, serverId, serviceAccountMail) } // AddServiceAccountToServerExecute mocks base method. -func (m *MockDefaultApi) AddServiceAccountToServerExecute(ctx context.Context, projectId, region, serverId, serviceAccountMail string) (*iaas.ServiceAccountMailListResponse, error) { +func (m *MockDefaultAPI) AddServiceAccountToServerExecute(r v2api.ApiAddServiceAccountToServerRequest) (*v2api.ServiceAccountMailListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "AddServiceAccountToServerExecute", ctx, projectId, region, serverId, serviceAccountMail) - ret0, _ := ret[0].(*iaas.ServiceAccountMailListResponse) + ret := m.ctrl.Call(m, "AddServiceAccountToServerExecute", r) + ret0, _ := ret[0].(*v2api.ServiceAccountMailListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // AddServiceAccountToServerExecute indicates an expected call of AddServiceAccountToServerExecute. -func (mr *MockDefaultApiMockRecorder) AddServiceAccountToServerExecute(ctx, projectId, region, serverId, serviceAccountMail any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) AddServiceAccountToServerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddServiceAccountToServerExecute", reflect.TypeOf((*MockDefaultApi)(nil).AddServiceAccountToServerExecute), ctx, projectId, region, serverId, serviceAccountMail) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddServiceAccountToServerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).AddServiceAccountToServerExecute), r) } // AddVolumeToServer mocks base method. -func (m *MockDefaultApi) AddVolumeToServer(ctx context.Context, projectId, region, serverId, volumeId string) iaas.ApiAddVolumeToServerRequest { +func (m *MockDefaultAPI) AddVolumeToServer(ctx context.Context, projectId, region, serverId, volumeId string) v2api.ApiAddVolumeToServerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "AddVolumeToServer", ctx, projectId, region, serverId, volumeId) - ret0, _ := ret[0].(iaas.ApiAddVolumeToServerRequest) + ret0, _ := ret[0].(v2api.ApiAddVolumeToServerRequest) return ret0 } // AddVolumeToServer indicates an expected call of AddVolumeToServer. -func (mr *MockDefaultApiMockRecorder) AddVolumeToServer(ctx, projectId, region, serverId, volumeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) AddVolumeToServer(ctx, projectId, region, serverId, volumeId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddVolumeToServer", reflect.TypeOf((*MockDefaultApi)(nil).AddVolumeToServer), ctx, projectId, region, serverId, volumeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddVolumeToServer", reflect.TypeOf((*MockDefaultAPI)(nil).AddVolumeToServer), ctx, projectId, region, serverId, volumeId) } // AddVolumeToServerExecute mocks base method. -func (m *MockDefaultApi) AddVolumeToServerExecute(ctx context.Context, projectId, region, serverId, volumeId string) (*iaas.VolumeAttachment, error) { +func (m *MockDefaultAPI) AddVolumeToServerExecute(r v2api.ApiAddVolumeToServerRequest) (*v2api.VolumeAttachment, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "AddVolumeToServerExecute", ctx, projectId, region, serverId, volumeId) - ret0, _ := ret[0].(*iaas.VolumeAttachment) + ret := m.ctrl.Call(m, "AddVolumeToServerExecute", r) + ret0, _ := ret[0].(*v2api.VolumeAttachment) ret1, _ := ret[1].(error) return ret0, ret1 } // AddVolumeToServerExecute indicates an expected call of AddVolumeToServerExecute. -func (mr *MockDefaultApiMockRecorder) AddVolumeToServerExecute(ctx, projectId, region, serverId, volumeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) AddVolumeToServerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddVolumeToServerExecute", reflect.TypeOf((*MockDefaultApi)(nil).AddVolumeToServerExecute), ctx, projectId, region, serverId, volumeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddVolumeToServerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).AddVolumeToServerExecute), r) } // CreateAffinityGroup mocks base method. -func (m *MockDefaultApi) CreateAffinityGroup(ctx context.Context, projectId, region string) iaas.ApiCreateAffinityGroupRequest { +func (m *MockDefaultAPI) CreateAffinityGroup(ctx context.Context, projectId, region string) v2api.ApiCreateAffinityGroupRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateAffinityGroup", ctx, projectId, region) - ret0, _ := ret[0].(iaas.ApiCreateAffinityGroupRequest) + ret0, _ := ret[0].(v2api.ApiCreateAffinityGroupRequest) return ret0 } // CreateAffinityGroup indicates an expected call of CreateAffinityGroup. -func (mr *MockDefaultApiMockRecorder) CreateAffinityGroup(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateAffinityGroup(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateAffinityGroup", reflect.TypeOf((*MockDefaultApi)(nil).CreateAffinityGroup), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateAffinityGroup", reflect.TypeOf((*MockDefaultAPI)(nil).CreateAffinityGroup), ctx, projectId, region) } // CreateAffinityGroupExecute mocks base method. -func (m *MockDefaultApi) CreateAffinityGroupExecute(ctx context.Context, projectId, region string) (*iaas.AffinityGroup, error) { +func (m *MockDefaultAPI) CreateAffinityGroupExecute(r v2api.ApiCreateAffinityGroupRequest) (*v2api.AffinityGroup, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateAffinityGroupExecute", ctx, projectId, region) - ret0, _ := ret[0].(*iaas.AffinityGroup) + ret := m.ctrl.Call(m, "CreateAffinityGroupExecute", r) + ret0, _ := ret[0].(*v2api.AffinityGroup) ret1, _ := ret[1].(error) return ret0, ret1 } // CreateAffinityGroupExecute indicates an expected call of CreateAffinityGroupExecute. -func (mr *MockDefaultApiMockRecorder) CreateAffinityGroupExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateAffinityGroupExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateAffinityGroupExecute", reflect.TypeOf((*MockDefaultApi)(nil).CreateAffinityGroupExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateAffinityGroupExecute", reflect.TypeOf((*MockDefaultAPI)(nil).CreateAffinityGroupExecute), r) } // CreateBackup mocks base method. -func (m *MockDefaultApi) CreateBackup(ctx context.Context, projectId, region string) iaas.ApiCreateBackupRequest { +func (m *MockDefaultAPI) CreateBackup(ctx context.Context, projectId, region string) v2api.ApiCreateBackupRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateBackup", ctx, projectId, region) - ret0, _ := ret[0].(iaas.ApiCreateBackupRequest) + ret0, _ := ret[0].(v2api.ApiCreateBackupRequest) return ret0 } // CreateBackup indicates an expected call of CreateBackup. -func (mr *MockDefaultApiMockRecorder) CreateBackup(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateBackup(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateBackup", reflect.TypeOf((*MockDefaultApi)(nil).CreateBackup), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateBackup", reflect.TypeOf((*MockDefaultAPI)(nil).CreateBackup), ctx, projectId, region) } // CreateBackupExecute mocks base method. -func (m *MockDefaultApi) CreateBackupExecute(ctx context.Context, projectId, region string) (*iaas.Backup, error) { +func (m *MockDefaultAPI) CreateBackupExecute(r v2api.ApiCreateBackupRequest) (*v2api.Backup, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateBackupExecute", ctx, projectId, region) - ret0, _ := ret[0].(*iaas.Backup) + ret := m.ctrl.Call(m, "CreateBackupExecute", r) + ret0, _ := ret[0].(*v2api.Backup) ret1, _ := ret[1].(error) return ret0, ret1 } // CreateBackupExecute indicates an expected call of CreateBackupExecute. -func (mr *MockDefaultApiMockRecorder) CreateBackupExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateBackupExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateBackupExecute", reflect.TypeOf((*MockDefaultApi)(nil).CreateBackupExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateBackupExecute", reflect.TypeOf((*MockDefaultAPI)(nil).CreateBackupExecute), r) } // CreateImage mocks base method. -func (m *MockDefaultApi) CreateImage(ctx context.Context, projectId, region string) iaas.ApiCreateImageRequest { +func (m *MockDefaultAPI) CreateImage(ctx context.Context, projectId, region string) v2api.ApiCreateImageRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateImage", ctx, projectId, region) - ret0, _ := ret[0].(iaas.ApiCreateImageRequest) + ret0, _ := ret[0].(v2api.ApiCreateImageRequest) return ret0 } // CreateImage indicates an expected call of CreateImage. -func (mr *MockDefaultApiMockRecorder) CreateImage(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateImage(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateImage", reflect.TypeOf((*MockDefaultApi)(nil).CreateImage), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateImage", reflect.TypeOf((*MockDefaultAPI)(nil).CreateImage), ctx, projectId, region) } // CreateImageExecute mocks base method. -func (m *MockDefaultApi) CreateImageExecute(ctx context.Context, projectId, region string) (*iaas.ImageCreateResponse, error) { +func (m *MockDefaultAPI) CreateImageExecute(r v2api.ApiCreateImageRequest) (*v2api.ImageCreateResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateImageExecute", ctx, projectId, region) - ret0, _ := ret[0].(*iaas.ImageCreateResponse) + ret := m.ctrl.Call(m, "CreateImageExecute", r) + ret0, _ := ret[0].(*v2api.ImageCreateResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // CreateImageExecute indicates an expected call of CreateImageExecute. -func (mr *MockDefaultApiMockRecorder) CreateImageExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateImageExecute(r any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateImageExecute", reflect.TypeOf((*MockDefaultAPI)(nil).CreateImageExecute), r) +} + +// CreateIsolatedNetwork mocks base method. +func (m *MockDefaultAPI) CreateIsolatedNetwork(ctx context.Context, projectId, region string) v2api.ApiCreateIsolatedNetworkRequest { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateIsolatedNetwork", ctx, projectId, region) + ret0, _ := ret[0].(v2api.ApiCreateIsolatedNetworkRequest) + return ret0 +} + +// CreateIsolatedNetwork indicates an expected call of CreateIsolatedNetwork. +func (mr *MockDefaultAPIMockRecorder) CreateIsolatedNetwork(ctx, projectId, region any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateIsolatedNetwork", reflect.TypeOf((*MockDefaultAPI)(nil).CreateIsolatedNetwork), ctx, projectId, region) +} + +// CreateIsolatedNetworkExecute mocks base method. +func (m *MockDefaultAPI) CreateIsolatedNetworkExecute(r v2api.ApiCreateIsolatedNetworkRequest) (*v2api.Network, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateIsolatedNetworkExecute", r) + ret0, _ := ret[0].(*v2api.Network) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateIsolatedNetworkExecute indicates an expected call of CreateIsolatedNetworkExecute. +func (mr *MockDefaultAPIMockRecorder) CreateIsolatedNetworkExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateImageExecute", reflect.TypeOf((*MockDefaultApi)(nil).CreateImageExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateIsolatedNetworkExecute", reflect.TypeOf((*MockDefaultAPI)(nil).CreateIsolatedNetworkExecute), r) } // CreateKeyPair mocks base method. -func (m *MockDefaultApi) CreateKeyPair(ctx context.Context) iaas.ApiCreateKeyPairRequest { +func (m *MockDefaultAPI) CreateKeyPair(ctx context.Context) v2api.ApiCreateKeyPairRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateKeyPair", ctx) - ret0, _ := ret[0].(iaas.ApiCreateKeyPairRequest) + ret0, _ := ret[0].(v2api.ApiCreateKeyPairRequest) return ret0 } // CreateKeyPair indicates an expected call of CreateKeyPair. -func (mr *MockDefaultApiMockRecorder) CreateKeyPair(ctx any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateKeyPair(ctx any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateKeyPair", reflect.TypeOf((*MockDefaultApi)(nil).CreateKeyPair), ctx) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateKeyPair", reflect.TypeOf((*MockDefaultAPI)(nil).CreateKeyPair), ctx) } // CreateKeyPairExecute mocks base method. -func (m *MockDefaultApi) CreateKeyPairExecute(ctx context.Context) (*iaas.Keypair, error) { +func (m *MockDefaultAPI) CreateKeyPairExecute(r v2api.ApiCreateKeyPairRequest) (*v2api.Keypair, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateKeyPairExecute", ctx) - ret0, _ := ret[0].(*iaas.Keypair) + ret := m.ctrl.Call(m, "CreateKeyPairExecute", r) + ret0, _ := ret[0].(*v2api.Keypair) ret1, _ := ret[1].(error) return ret0, ret1 } // CreateKeyPairExecute indicates an expected call of CreateKeyPairExecute. -func (mr *MockDefaultApiMockRecorder) CreateKeyPairExecute(ctx any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateKeyPairExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateKeyPairExecute", reflect.TypeOf((*MockDefaultApi)(nil).CreateKeyPairExecute), ctx) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateKeyPairExecute", reflect.TypeOf((*MockDefaultAPI)(nil).CreateKeyPairExecute), r) } // CreateNetwork mocks base method. -func (m *MockDefaultApi) CreateNetwork(ctx context.Context, projectId, region string) iaas.ApiCreateNetworkRequest { +func (m *MockDefaultAPI) CreateNetwork(ctx context.Context, projectId, region string) v2api.ApiCreateNetworkRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateNetwork", ctx, projectId, region) - ret0, _ := ret[0].(iaas.ApiCreateNetworkRequest) + ret0, _ := ret[0].(v2api.ApiCreateNetworkRequest) return ret0 } // CreateNetwork indicates an expected call of CreateNetwork. -func (mr *MockDefaultApiMockRecorder) CreateNetwork(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateNetwork(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetwork", reflect.TypeOf((*MockDefaultApi)(nil).CreateNetwork), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetwork", reflect.TypeOf((*MockDefaultAPI)(nil).CreateNetwork), ctx, projectId, region) } // CreateNetworkArea mocks base method. -func (m *MockDefaultApi) CreateNetworkArea(ctx context.Context, organizationId string) iaas.ApiCreateNetworkAreaRequest { +func (m *MockDefaultAPI) CreateNetworkArea(ctx context.Context, organizationId string) v2api.ApiCreateNetworkAreaRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateNetworkArea", ctx, organizationId) - ret0, _ := ret[0].(iaas.ApiCreateNetworkAreaRequest) + ret0, _ := ret[0].(v2api.ApiCreateNetworkAreaRequest) return ret0 } // CreateNetworkArea indicates an expected call of CreateNetworkArea. -func (mr *MockDefaultApiMockRecorder) CreateNetworkArea(ctx, organizationId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateNetworkArea(ctx, organizationId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkArea", reflect.TypeOf((*MockDefaultApi)(nil).CreateNetworkArea), ctx, organizationId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkArea", reflect.TypeOf((*MockDefaultAPI)(nil).CreateNetworkArea), ctx, organizationId) } // CreateNetworkAreaExecute mocks base method. -func (m *MockDefaultApi) CreateNetworkAreaExecute(ctx context.Context, organizationId string) (*iaas.NetworkArea, error) { +func (m *MockDefaultAPI) CreateNetworkAreaExecute(r v2api.ApiCreateNetworkAreaRequest) (*v2api.NetworkArea, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateNetworkAreaExecute", ctx, organizationId) - ret0, _ := ret[0].(*iaas.NetworkArea) + ret := m.ctrl.Call(m, "CreateNetworkAreaExecute", r) + ret0, _ := ret[0].(*v2api.NetworkArea) ret1, _ := ret[1].(error) return ret0, ret1 } // CreateNetworkAreaExecute indicates an expected call of CreateNetworkAreaExecute. -func (mr *MockDefaultApiMockRecorder) CreateNetworkAreaExecute(ctx, organizationId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateNetworkAreaExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkAreaExecute", reflect.TypeOf((*MockDefaultApi)(nil).CreateNetworkAreaExecute), ctx, organizationId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkAreaExecute", reflect.TypeOf((*MockDefaultAPI)(nil).CreateNetworkAreaExecute), r) } // CreateNetworkAreaRange mocks base method. -func (m *MockDefaultApi) CreateNetworkAreaRange(ctx context.Context, organizationId, areaId, region string) iaas.ApiCreateNetworkAreaRangeRequest { +func (m *MockDefaultAPI) CreateNetworkAreaRange(ctx context.Context, organizationId, areaId, region string) v2api.ApiCreateNetworkAreaRangeRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateNetworkAreaRange", ctx, organizationId, areaId, region) - ret0, _ := ret[0].(iaas.ApiCreateNetworkAreaRangeRequest) + ret0, _ := ret[0].(v2api.ApiCreateNetworkAreaRangeRequest) return ret0 } // CreateNetworkAreaRange indicates an expected call of CreateNetworkAreaRange. -func (mr *MockDefaultApiMockRecorder) CreateNetworkAreaRange(ctx, organizationId, areaId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateNetworkAreaRange(ctx, organizationId, areaId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkAreaRange", reflect.TypeOf((*MockDefaultApi)(nil).CreateNetworkAreaRange), ctx, organizationId, areaId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkAreaRange", reflect.TypeOf((*MockDefaultAPI)(nil).CreateNetworkAreaRange), ctx, organizationId, areaId, region) } // CreateNetworkAreaRangeExecute mocks base method. -func (m *MockDefaultApi) CreateNetworkAreaRangeExecute(ctx context.Context, organizationId, areaId, region string) (*iaas.NetworkRangeListResponse, error) { +func (m *MockDefaultAPI) CreateNetworkAreaRangeExecute(r v2api.ApiCreateNetworkAreaRangeRequest) (*v2api.NetworkRangeListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateNetworkAreaRangeExecute", ctx, organizationId, areaId, region) - ret0, _ := ret[0].(*iaas.NetworkRangeListResponse) + ret := m.ctrl.Call(m, "CreateNetworkAreaRangeExecute", r) + ret0, _ := ret[0].(*v2api.NetworkRangeListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // CreateNetworkAreaRangeExecute indicates an expected call of CreateNetworkAreaRangeExecute. -func (mr *MockDefaultApiMockRecorder) CreateNetworkAreaRangeExecute(ctx, organizationId, areaId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateNetworkAreaRangeExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkAreaRangeExecute", reflect.TypeOf((*MockDefaultApi)(nil).CreateNetworkAreaRangeExecute), ctx, organizationId, areaId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkAreaRangeExecute", reflect.TypeOf((*MockDefaultAPI)(nil).CreateNetworkAreaRangeExecute), r) } // CreateNetworkAreaRegion mocks base method. -func (m *MockDefaultApi) CreateNetworkAreaRegion(ctx context.Context, organizationId, areaId, region string) iaas.ApiCreateNetworkAreaRegionRequest { +func (m *MockDefaultAPI) CreateNetworkAreaRegion(ctx context.Context, organizationId, areaId, region string) v2api.ApiCreateNetworkAreaRegionRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateNetworkAreaRegion", ctx, organizationId, areaId, region) - ret0, _ := ret[0].(iaas.ApiCreateNetworkAreaRegionRequest) + ret0, _ := ret[0].(v2api.ApiCreateNetworkAreaRegionRequest) return ret0 } // CreateNetworkAreaRegion indicates an expected call of CreateNetworkAreaRegion. -func (mr *MockDefaultApiMockRecorder) CreateNetworkAreaRegion(ctx, organizationId, areaId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateNetworkAreaRegion(ctx, organizationId, areaId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkAreaRegion", reflect.TypeOf((*MockDefaultApi)(nil).CreateNetworkAreaRegion), ctx, organizationId, areaId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkAreaRegion", reflect.TypeOf((*MockDefaultAPI)(nil).CreateNetworkAreaRegion), ctx, organizationId, areaId, region) } // CreateNetworkAreaRegionExecute mocks base method. -func (m *MockDefaultApi) CreateNetworkAreaRegionExecute(ctx context.Context, organizationId, areaId, region string) (*iaas.RegionalArea, error) { +func (m *MockDefaultAPI) CreateNetworkAreaRegionExecute(r v2api.ApiCreateNetworkAreaRegionRequest) (*v2api.RegionalArea, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateNetworkAreaRegionExecute", ctx, organizationId, areaId, region) - ret0, _ := ret[0].(*iaas.RegionalArea) + ret := m.ctrl.Call(m, "CreateNetworkAreaRegionExecute", r) + ret0, _ := ret[0].(*v2api.RegionalArea) ret1, _ := ret[1].(error) return ret0, ret1 } // CreateNetworkAreaRegionExecute indicates an expected call of CreateNetworkAreaRegionExecute. -func (mr *MockDefaultApiMockRecorder) CreateNetworkAreaRegionExecute(ctx, organizationId, areaId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateNetworkAreaRegionExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkAreaRegionExecute", reflect.TypeOf((*MockDefaultApi)(nil).CreateNetworkAreaRegionExecute), ctx, organizationId, areaId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkAreaRegionExecute", reflect.TypeOf((*MockDefaultAPI)(nil).CreateNetworkAreaRegionExecute), r) } // CreateNetworkAreaRoute mocks base method. -func (m *MockDefaultApi) CreateNetworkAreaRoute(ctx context.Context, organizationId, areaId, region string) iaas.ApiCreateNetworkAreaRouteRequest { +func (m *MockDefaultAPI) CreateNetworkAreaRoute(ctx context.Context, organizationId, areaId, region string) v2api.ApiCreateNetworkAreaRouteRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateNetworkAreaRoute", ctx, organizationId, areaId, region) - ret0, _ := ret[0].(iaas.ApiCreateNetworkAreaRouteRequest) + ret0, _ := ret[0].(v2api.ApiCreateNetworkAreaRouteRequest) return ret0 } // CreateNetworkAreaRoute indicates an expected call of CreateNetworkAreaRoute. -func (mr *MockDefaultApiMockRecorder) CreateNetworkAreaRoute(ctx, organizationId, areaId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateNetworkAreaRoute(ctx, organizationId, areaId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkAreaRoute", reflect.TypeOf((*MockDefaultApi)(nil).CreateNetworkAreaRoute), ctx, organizationId, areaId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkAreaRoute", reflect.TypeOf((*MockDefaultAPI)(nil).CreateNetworkAreaRoute), ctx, organizationId, areaId, region) } // CreateNetworkAreaRouteExecute mocks base method. -func (m *MockDefaultApi) CreateNetworkAreaRouteExecute(ctx context.Context, organizationId, areaId, region string) (*iaas.RouteListResponse, error) { +func (m *MockDefaultAPI) CreateNetworkAreaRouteExecute(r v2api.ApiCreateNetworkAreaRouteRequest) (*v2api.RouteListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateNetworkAreaRouteExecute", ctx, organizationId, areaId, region) - ret0, _ := ret[0].(*iaas.RouteListResponse) + ret := m.ctrl.Call(m, "CreateNetworkAreaRouteExecute", r) + ret0, _ := ret[0].(*v2api.RouteListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // CreateNetworkAreaRouteExecute indicates an expected call of CreateNetworkAreaRouteExecute. -func (mr *MockDefaultApiMockRecorder) CreateNetworkAreaRouteExecute(ctx, organizationId, areaId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateNetworkAreaRouteExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkAreaRouteExecute", reflect.TypeOf((*MockDefaultApi)(nil).CreateNetworkAreaRouteExecute), ctx, organizationId, areaId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkAreaRouteExecute", reflect.TypeOf((*MockDefaultAPI)(nil).CreateNetworkAreaRouteExecute), r) } // CreateNetworkExecute mocks base method. -func (m *MockDefaultApi) CreateNetworkExecute(ctx context.Context, projectId, region string) (*iaas.Network, error) { +func (m *MockDefaultAPI) CreateNetworkExecute(r v2api.ApiCreateNetworkRequest) (*v2api.Network, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateNetworkExecute", ctx, projectId, region) - ret0, _ := ret[0].(*iaas.Network) + ret := m.ctrl.Call(m, "CreateNetworkExecute", r) + ret0, _ := ret[0].(*v2api.Network) ret1, _ := ret[1].(error) return ret0, ret1 } // CreateNetworkExecute indicates an expected call of CreateNetworkExecute. -func (mr *MockDefaultApiMockRecorder) CreateNetworkExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateNetworkExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkExecute", reflect.TypeOf((*MockDefaultApi)(nil).CreateNetworkExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkExecute", reflect.TypeOf((*MockDefaultAPI)(nil).CreateNetworkExecute), r) } // CreateNic mocks base method. -func (m *MockDefaultApi) CreateNic(ctx context.Context, projectId, region, networkId string) iaas.ApiCreateNicRequest { +func (m *MockDefaultAPI) CreateNic(ctx context.Context, projectId, region, networkId string) v2api.ApiCreateNicRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateNic", ctx, projectId, region, networkId) - ret0, _ := ret[0].(iaas.ApiCreateNicRequest) + ret0, _ := ret[0].(v2api.ApiCreateNicRequest) return ret0 } // CreateNic indicates an expected call of CreateNic. -func (mr *MockDefaultApiMockRecorder) CreateNic(ctx, projectId, region, networkId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateNic(ctx, projectId, region, networkId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNic", reflect.TypeOf((*MockDefaultApi)(nil).CreateNic), ctx, projectId, region, networkId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNic", reflect.TypeOf((*MockDefaultAPI)(nil).CreateNic), ctx, projectId, region, networkId) } // CreateNicExecute mocks base method. -func (m *MockDefaultApi) CreateNicExecute(ctx context.Context, projectId, region, networkId string) (*iaas.NIC, error) { +func (m *MockDefaultAPI) CreateNicExecute(r v2api.ApiCreateNicRequest) (*v2api.NIC, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateNicExecute", ctx, projectId, region, networkId) - ret0, _ := ret[0].(*iaas.NIC) + ret := m.ctrl.Call(m, "CreateNicExecute", r) + ret0, _ := ret[0].(*v2api.NIC) ret1, _ := ret[1].(error) return ret0, ret1 } // CreateNicExecute indicates an expected call of CreateNicExecute. -func (mr *MockDefaultApiMockRecorder) CreateNicExecute(ctx, projectId, region, networkId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateNicExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNicExecute", reflect.TypeOf((*MockDefaultApi)(nil).CreateNicExecute), ctx, projectId, region, networkId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNicExecute", reflect.TypeOf((*MockDefaultAPI)(nil).CreateNicExecute), r) } // CreatePublicIP mocks base method. -func (m *MockDefaultApi) CreatePublicIP(ctx context.Context, projectId, region string) iaas.ApiCreatePublicIPRequest { +func (m *MockDefaultAPI) CreatePublicIP(ctx context.Context, projectId, region string) v2api.ApiCreatePublicIPRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreatePublicIP", ctx, projectId, region) - ret0, _ := ret[0].(iaas.ApiCreatePublicIPRequest) + ret0, _ := ret[0].(v2api.ApiCreatePublicIPRequest) return ret0 } // CreatePublicIP indicates an expected call of CreatePublicIP. -func (mr *MockDefaultApiMockRecorder) CreatePublicIP(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreatePublicIP(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreatePublicIP", reflect.TypeOf((*MockDefaultApi)(nil).CreatePublicIP), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreatePublicIP", reflect.TypeOf((*MockDefaultAPI)(nil).CreatePublicIP), ctx, projectId, region) } // CreatePublicIPExecute mocks base method. -func (m *MockDefaultApi) CreatePublicIPExecute(ctx context.Context, projectId, region string) (*iaas.PublicIp, error) { +func (m *MockDefaultAPI) CreatePublicIPExecute(r v2api.ApiCreatePublicIPRequest) (*v2api.PublicIp, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreatePublicIPExecute", ctx, projectId, region) - ret0, _ := ret[0].(*iaas.PublicIp) + ret := m.ctrl.Call(m, "CreatePublicIPExecute", r) + ret0, _ := ret[0].(*v2api.PublicIp) ret1, _ := ret[1].(error) return ret0, ret1 } // CreatePublicIPExecute indicates an expected call of CreatePublicIPExecute. -func (mr *MockDefaultApiMockRecorder) CreatePublicIPExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreatePublicIPExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreatePublicIPExecute", reflect.TypeOf((*MockDefaultApi)(nil).CreatePublicIPExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreatePublicIPExecute", reflect.TypeOf((*MockDefaultAPI)(nil).CreatePublicIPExecute), r) } // CreateSecurityGroup mocks base method. -func (m *MockDefaultApi) CreateSecurityGroup(ctx context.Context, projectId, region string) iaas.ApiCreateSecurityGroupRequest { +func (m *MockDefaultAPI) CreateSecurityGroup(ctx context.Context, projectId, region string) v2api.ApiCreateSecurityGroupRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateSecurityGroup", ctx, projectId, region) - ret0, _ := ret[0].(iaas.ApiCreateSecurityGroupRequest) + ret0, _ := ret[0].(v2api.ApiCreateSecurityGroupRequest) return ret0 } // CreateSecurityGroup indicates an expected call of CreateSecurityGroup. -func (mr *MockDefaultApiMockRecorder) CreateSecurityGroup(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateSecurityGroup(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSecurityGroup", reflect.TypeOf((*MockDefaultApi)(nil).CreateSecurityGroup), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSecurityGroup", reflect.TypeOf((*MockDefaultAPI)(nil).CreateSecurityGroup), ctx, projectId, region) } // CreateSecurityGroupExecute mocks base method. -func (m *MockDefaultApi) CreateSecurityGroupExecute(ctx context.Context, projectId, region string) (*iaas.SecurityGroup, error) { +func (m *MockDefaultAPI) CreateSecurityGroupExecute(r v2api.ApiCreateSecurityGroupRequest) (*v2api.SecurityGroup, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateSecurityGroupExecute", ctx, projectId, region) - ret0, _ := ret[0].(*iaas.SecurityGroup) + ret := m.ctrl.Call(m, "CreateSecurityGroupExecute", r) + ret0, _ := ret[0].(*v2api.SecurityGroup) ret1, _ := ret[1].(error) return ret0, ret1 } // CreateSecurityGroupExecute indicates an expected call of CreateSecurityGroupExecute. -func (mr *MockDefaultApiMockRecorder) CreateSecurityGroupExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateSecurityGroupExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSecurityGroupExecute", reflect.TypeOf((*MockDefaultApi)(nil).CreateSecurityGroupExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSecurityGroupExecute", reflect.TypeOf((*MockDefaultAPI)(nil).CreateSecurityGroupExecute), r) } // CreateSecurityGroupRule mocks base method. -func (m *MockDefaultApi) CreateSecurityGroupRule(ctx context.Context, projectId, region, securityGroupId string) iaas.ApiCreateSecurityGroupRuleRequest { +func (m *MockDefaultAPI) CreateSecurityGroupRule(ctx context.Context, projectId, region, securityGroupId string) v2api.ApiCreateSecurityGroupRuleRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateSecurityGroupRule", ctx, projectId, region, securityGroupId) - ret0, _ := ret[0].(iaas.ApiCreateSecurityGroupRuleRequest) + ret0, _ := ret[0].(v2api.ApiCreateSecurityGroupRuleRequest) return ret0 } // CreateSecurityGroupRule indicates an expected call of CreateSecurityGroupRule. -func (mr *MockDefaultApiMockRecorder) CreateSecurityGroupRule(ctx, projectId, region, securityGroupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateSecurityGroupRule(ctx, projectId, region, securityGroupId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSecurityGroupRule", reflect.TypeOf((*MockDefaultApi)(nil).CreateSecurityGroupRule), ctx, projectId, region, securityGroupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSecurityGroupRule", reflect.TypeOf((*MockDefaultAPI)(nil).CreateSecurityGroupRule), ctx, projectId, region, securityGroupId) } // CreateSecurityGroupRuleExecute mocks base method. -func (m *MockDefaultApi) CreateSecurityGroupRuleExecute(ctx context.Context, projectId, region, securityGroupId string) (*iaas.SecurityGroupRule, error) { +func (m *MockDefaultAPI) CreateSecurityGroupRuleExecute(r v2api.ApiCreateSecurityGroupRuleRequest) (*v2api.SecurityGroupRule, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateSecurityGroupRuleExecute", ctx, projectId, region, securityGroupId) - ret0, _ := ret[0].(*iaas.SecurityGroupRule) + ret := m.ctrl.Call(m, "CreateSecurityGroupRuleExecute", r) + ret0, _ := ret[0].(*v2api.SecurityGroupRule) ret1, _ := ret[1].(error) return ret0, ret1 } // CreateSecurityGroupRuleExecute indicates an expected call of CreateSecurityGroupRuleExecute. -func (mr *MockDefaultApiMockRecorder) CreateSecurityGroupRuleExecute(ctx, projectId, region, securityGroupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateSecurityGroupRuleExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSecurityGroupRuleExecute", reflect.TypeOf((*MockDefaultApi)(nil).CreateSecurityGroupRuleExecute), ctx, projectId, region, securityGroupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSecurityGroupRuleExecute", reflect.TypeOf((*MockDefaultAPI)(nil).CreateSecurityGroupRuleExecute), r) } // CreateServer mocks base method. -func (m *MockDefaultApi) CreateServer(ctx context.Context, projectId, region string) iaas.ApiCreateServerRequest { +func (m *MockDefaultAPI) CreateServer(ctx context.Context, projectId, region string) v2api.ApiCreateServerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateServer", ctx, projectId, region) - ret0, _ := ret[0].(iaas.ApiCreateServerRequest) + ret0, _ := ret[0].(v2api.ApiCreateServerRequest) return ret0 } // CreateServer indicates an expected call of CreateServer. -func (mr *MockDefaultApiMockRecorder) CreateServer(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateServer(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateServer", reflect.TypeOf((*MockDefaultApi)(nil).CreateServer), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateServer", reflect.TypeOf((*MockDefaultAPI)(nil).CreateServer), ctx, projectId, region) } // CreateServerExecute mocks base method. -func (m *MockDefaultApi) CreateServerExecute(ctx context.Context, projectId, region string) (*iaas.Server, error) { +func (m *MockDefaultAPI) CreateServerExecute(r v2api.ApiCreateServerRequest) (*v2api.Server, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateServerExecute", ctx, projectId, region) - ret0, _ := ret[0].(*iaas.Server) + ret := m.ctrl.Call(m, "CreateServerExecute", r) + ret0, _ := ret[0].(*v2api.Server) ret1, _ := ret[1].(error) return ret0, ret1 } // CreateServerExecute indicates an expected call of CreateServerExecute. -func (mr *MockDefaultApiMockRecorder) CreateServerExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateServerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateServerExecute", reflect.TypeOf((*MockDefaultApi)(nil).CreateServerExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateServerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).CreateServerExecute), r) } // CreateSnapshot mocks base method. -func (m *MockDefaultApi) CreateSnapshot(ctx context.Context, projectId, region string) iaas.ApiCreateSnapshotRequest { +func (m *MockDefaultAPI) CreateSnapshot(ctx context.Context, projectId, region string) v2api.ApiCreateSnapshotRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateSnapshot", ctx, projectId, region) - ret0, _ := ret[0].(iaas.ApiCreateSnapshotRequest) + ret0, _ := ret[0].(v2api.ApiCreateSnapshotRequest) return ret0 } // CreateSnapshot indicates an expected call of CreateSnapshot. -func (mr *MockDefaultApiMockRecorder) CreateSnapshot(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateSnapshot(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSnapshot", reflect.TypeOf((*MockDefaultApi)(nil).CreateSnapshot), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSnapshot", reflect.TypeOf((*MockDefaultAPI)(nil).CreateSnapshot), ctx, projectId, region) } // CreateSnapshotExecute mocks base method. -func (m *MockDefaultApi) CreateSnapshotExecute(ctx context.Context, projectId, region string) (*iaas.Snapshot, error) { +func (m *MockDefaultAPI) CreateSnapshotExecute(r v2api.ApiCreateSnapshotRequest) (*v2api.Snapshot, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateSnapshotExecute", ctx, projectId, region) - ret0, _ := ret[0].(*iaas.Snapshot) + ret := m.ctrl.Call(m, "CreateSnapshotExecute", r) + ret0, _ := ret[0].(*v2api.Snapshot) ret1, _ := ret[1].(error) return ret0, ret1 } // CreateSnapshotExecute indicates an expected call of CreateSnapshotExecute. -func (mr *MockDefaultApiMockRecorder) CreateSnapshotExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateSnapshotExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSnapshotExecute", reflect.TypeOf((*MockDefaultApi)(nil).CreateSnapshotExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSnapshotExecute", reflect.TypeOf((*MockDefaultAPI)(nil).CreateSnapshotExecute), r) } // CreateVolume mocks base method. -func (m *MockDefaultApi) CreateVolume(ctx context.Context, projectId, region string) iaas.ApiCreateVolumeRequest { +func (m *MockDefaultAPI) CreateVolume(ctx context.Context, projectId, region string) v2api.ApiCreateVolumeRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateVolume", ctx, projectId, region) - ret0, _ := ret[0].(iaas.ApiCreateVolumeRequest) + ret0, _ := ret[0].(v2api.ApiCreateVolumeRequest) return ret0 } // CreateVolume indicates an expected call of CreateVolume. -func (mr *MockDefaultApiMockRecorder) CreateVolume(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateVolume(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateVolume", reflect.TypeOf((*MockDefaultApi)(nil).CreateVolume), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateVolume", reflect.TypeOf((*MockDefaultAPI)(nil).CreateVolume), ctx, projectId, region) } // CreateVolumeExecute mocks base method. -func (m *MockDefaultApi) CreateVolumeExecute(ctx context.Context, projectId, region string) (*iaas.Volume, error) { +func (m *MockDefaultAPI) CreateVolumeExecute(r v2api.ApiCreateVolumeRequest) (*v2api.Volume, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateVolumeExecute", ctx, projectId, region) - ret0, _ := ret[0].(*iaas.Volume) + ret := m.ctrl.Call(m, "CreateVolumeExecute", r) + ret0, _ := ret[0].(*v2api.Volume) ret1, _ := ret[1].(error) return ret0, ret1 } // CreateVolumeExecute indicates an expected call of CreateVolumeExecute. -func (mr *MockDefaultApiMockRecorder) CreateVolumeExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateVolumeExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateVolumeExecute", reflect.TypeOf((*MockDefaultApi)(nil).CreateVolumeExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateVolumeExecute", reflect.TypeOf((*MockDefaultAPI)(nil).CreateVolumeExecute), r) } // DeallocateServer mocks base method. -func (m *MockDefaultApi) DeallocateServer(ctx context.Context, projectId, region, serverId string) iaas.ApiDeallocateServerRequest { +func (m *MockDefaultAPI) DeallocateServer(ctx context.Context, projectId, region, serverId string) v2api.ApiDeallocateServerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeallocateServer", ctx, projectId, region, serverId) - ret0, _ := ret[0].(iaas.ApiDeallocateServerRequest) + ret0, _ := ret[0].(v2api.ApiDeallocateServerRequest) return ret0 } // DeallocateServer indicates an expected call of DeallocateServer. -func (mr *MockDefaultApiMockRecorder) DeallocateServer(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeallocateServer(ctx, projectId, region, serverId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeallocateServer", reflect.TypeOf((*MockDefaultApi)(nil).DeallocateServer), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeallocateServer", reflect.TypeOf((*MockDefaultAPI)(nil).DeallocateServer), ctx, projectId, region, serverId) } // DeallocateServerExecute mocks base method. -func (m *MockDefaultApi) DeallocateServerExecute(ctx context.Context, projectId, region, serverId string) error { +func (m *MockDefaultAPI) DeallocateServerExecute(r v2api.ApiDeallocateServerRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeallocateServerExecute", ctx, projectId, region, serverId) + ret := m.ctrl.Call(m, "DeallocateServerExecute", r) ret0, _ := ret[0].(error) return ret0 } // DeallocateServerExecute indicates an expected call of DeallocateServerExecute. -func (mr *MockDefaultApiMockRecorder) DeallocateServerExecute(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeallocateServerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeallocateServerExecute", reflect.TypeOf((*MockDefaultApi)(nil).DeallocateServerExecute), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeallocateServerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).DeallocateServerExecute), r) } // DeleteAffinityGroup mocks base method. -func (m *MockDefaultApi) DeleteAffinityGroup(ctx context.Context, projectId, region, affinityGroupId string) iaas.ApiDeleteAffinityGroupRequest { +func (m *MockDefaultAPI) DeleteAffinityGroup(ctx context.Context, projectId, region, affinityGroupId string) v2api.ApiDeleteAffinityGroupRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteAffinityGroup", ctx, projectId, region, affinityGroupId) - ret0, _ := ret[0].(iaas.ApiDeleteAffinityGroupRequest) + ret0, _ := ret[0].(v2api.ApiDeleteAffinityGroupRequest) return ret0 } // DeleteAffinityGroup indicates an expected call of DeleteAffinityGroup. -func (mr *MockDefaultApiMockRecorder) DeleteAffinityGroup(ctx, projectId, region, affinityGroupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteAffinityGroup(ctx, projectId, region, affinityGroupId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAffinityGroup", reflect.TypeOf((*MockDefaultApi)(nil).DeleteAffinityGroup), ctx, projectId, region, affinityGroupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAffinityGroup", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteAffinityGroup), ctx, projectId, region, affinityGroupId) } // DeleteAffinityGroupExecute mocks base method. -func (m *MockDefaultApi) DeleteAffinityGroupExecute(ctx context.Context, projectId, region, affinityGroupId string) error { +func (m *MockDefaultAPI) DeleteAffinityGroupExecute(r v2api.ApiDeleteAffinityGroupRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteAffinityGroupExecute", ctx, projectId, region, affinityGroupId) + ret := m.ctrl.Call(m, "DeleteAffinityGroupExecute", r) ret0, _ := ret[0].(error) return ret0 } // DeleteAffinityGroupExecute indicates an expected call of DeleteAffinityGroupExecute. -func (mr *MockDefaultApiMockRecorder) DeleteAffinityGroupExecute(ctx, projectId, region, affinityGroupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteAffinityGroupExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAffinityGroupExecute", reflect.TypeOf((*MockDefaultApi)(nil).DeleteAffinityGroupExecute), ctx, projectId, region, affinityGroupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAffinityGroupExecute", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteAffinityGroupExecute), r) } // DeleteBackup mocks base method. -func (m *MockDefaultApi) DeleteBackup(ctx context.Context, projectId, region, backupId string) iaas.ApiDeleteBackupRequest { +func (m *MockDefaultAPI) DeleteBackup(ctx context.Context, projectId, region, backupId string) v2api.ApiDeleteBackupRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBackup", ctx, projectId, region, backupId) - ret0, _ := ret[0].(iaas.ApiDeleteBackupRequest) + ret0, _ := ret[0].(v2api.ApiDeleteBackupRequest) return ret0 } // DeleteBackup indicates an expected call of DeleteBackup. -func (mr *MockDefaultApiMockRecorder) DeleteBackup(ctx, projectId, region, backupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteBackup(ctx, projectId, region, backupId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBackup", reflect.TypeOf((*MockDefaultApi)(nil).DeleteBackup), ctx, projectId, region, backupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBackup", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteBackup), ctx, projectId, region, backupId) } // DeleteBackupExecute mocks base method. -func (m *MockDefaultApi) DeleteBackupExecute(ctx context.Context, projectId, region, backupId string) error { +func (m *MockDefaultAPI) DeleteBackupExecute(r v2api.ApiDeleteBackupRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteBackupExecute", ctx, projectId, region, backupId) + ret := m.ctrl.Call(m, "DeleteBackupExecute", r) ret0, _ := ret[0].(error) return ret0 } // DeleteBackupExecute indicates an expected call of DeleteBackupExecute. -func (mr *MockDefaultApiMockRecorder) DeleteBackupExecute(ctx, projectId, region, backupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteBackupExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBackupExecute", reflect.TypeOf((*MockDefaultApi)(nil).DeleteBackupExecute), ctx, projectId, region, backupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBackupExecute", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteBackupExecute), r) } // DeleteImage mocks base method. -func (m *MockDefaultApi) DeleteImage(ctx context.Context, projectId, region, imageId string) iaas.ApiDeleteImageRequest { +func (m *MockDefaultAPI) DeleteImage(ctx context.Context, projectId, region, imageId string) v2api.ApiDeleteImageRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteImage", ctx, projectId, region, imageId) - ret0, _ := ret[0].(iaas.ApiDeleteImageRequest) + ret0, _ := ret[0].(v2api.ApiDeleteImageRequest) return ret0 } // DeleteImage indicates an expected call of DeleteImage. -func (mr *MockDefaultApiMockRecorder) DeleteImage(ctx, projectId, region, imageId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteImage(ctx, projectId, region, imageId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteImage", reflect.TypeOf((*MockDefaultApi)(nil).DeleteImage), ctx, projectId, region, imageId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteImage", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteImage), ctx, projectId, region, imageId) } // DeleteImageExecute mocks base method. -func (m *MockDefaultApi) DeleteImageExecute(ctx context.Context, projectId, region, imageId string) error { +func (m *MockDefaultAPI) DeleteImageExecute(r v2api.ApiDeleteImageRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteImageExecute", ctx, projectId, region, imageId) + ret := m.ctrl.Call(m, "DeleteImageExecute", r) ret0, _ := ret[0].(error) return ret0 } // DeleteImageExecute indicates an expected call of DeleteImageExecute. -func (mr *MockDefaultApiMockRecorder) DeleteImageExecute(ctx, projectId, region, imageId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteImageExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteImageExecute", reflect.TypeOf((*MockDefaultApi)(nil).DeleteImageExecute), ctx, projectId, region, imageId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteImageExecute", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteImageExecute), r) } // DeleteImageShare mocks base method. -func (m *MockDefaultApi) DeleteImageShare(ctx context.Context, projectId, region, imageId string) iaas.ApiDeleteImageShareRequest { +func (m *MockDefaultAPI) DeleteImageShare(ctx context.Context, projectId, region, imageId string) v2api.ApiDeleteImageShareRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteImageShare", ctx, projectId, region, imageId) - ret0, _ := ret[0].(iaas.ApiDeleteImageShareRequest) + ret0, _ := ret[0].(v2api.ApiDeleteImageShareRequest) return ret0 } // DeleteImageShare indicates an expected call of DeleteImageShare. -func (mr *MockDefaultApiMockRecorder) DeleteImageShare(ctx, projectId, region, imageId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteImageShare(ctx, projectId, region, imageId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteImageShare", reflect.TypeOf((*MockDefaultApi)(nil).DeleteImageShare), ctx, projectId, region, imageId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteImageShare", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteImageShare), ctx, projectId, region, imageId) } // DeleteImageShareConsumer mocks base method. -func (m *MockDefaultApi) DeleteImageShareConsumer(ctx context.Context, projectId, region, imageId, consumerProjectId string) iaas.ApiDeleteImageShareConsumerRequest { +func (m *MockDefaultAPI) DeleteImageShareConsumer(ctx context.Context, projectId, region, imageId, consumerProjectId string) v2api.ApiDeleteImageShareConsumerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteImageShareConsumer", ctx, projectId, region, imageId, consumerProjectId) - ret0, _ := ret[0].(iaas.ApiDeleteImageShareConsumerRequest) + ret0, _ := ret[0].(v2api.ApiDeleteImageShareConsumerRequest) return ret0 } // DeleteImageShareConsumer indicates an expected call of DeleteImageShareConsumer. -func (mr *MockDefaultApiMockRecorder) DeleteImageShareConsumer(ctx, projectId, region, imageId, consumerProjectId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteImageShareConsumer(ctx, projectId, region, imageId, consumerProjectId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteImageShareConsumer", reflect.TypeOf((*MockDefaultApi)(nil).DeleteImageShareConsumer), ctx, projectId, region, imageId, consumerProjectId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteImageShareConsumer", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteImageShareConsumer), ctx, projectId, region, imageId, consumerProjectId) } // DeleteImageShareConsumerExecute mocks base method. -func (m *MockDefaultApi) DeleteImageShareConsumerExecute(ctx context.Context, projectId, region, imageId, consumerProjectId string) error { +func (m *MockDefaultAPI) DeleteImageShareConsumerExecute(r v2api.ApiDeleteImageShareConsumerRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteImageShareConsumerExecute", ctx, projectId, region, imageId, consumerProjectId) + ret := m.ctrl.Call(m, "DeleteImageShareConsumerExecute", r) ret0, _ := ret[0].(error) return ret0 } // DeleteImageShareConsumerExecute indicates an expected call of DeleteImageShareConsumerExecute. -func (mr *MockDefaultApiMockRecorder) DeleteImageShareConsumerExecute(ctx, projectId, region, imageId, consumerProjectId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteImageShareConsumerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteImageShareConsumerExecute", reflect.TypeOf((*MockDefaultApi)(nil).DeleteImageShareConsumerExecute), ctx, projectId, region, imageId, consumerProjectId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteImageShareConsumerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteImageShareConsumerExecute), r) } // DeleteImageShareExecute mocks base method. -func (m *MockDefaultApi) DeleteImageShareExecute(ctx context.Context, projectId, region, imageId string) error { +func (m *MockDefaultAPI) DeleteImageShareExecute(r v2api.ApiDeleteImageShareRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteImageShareExecute", ctx, projectId, region, imageId) + ret := m.ctrl.Call(m, "DeleteImageShareExecute", r) ret0, _ := ret[0].(error) return ret0 } // DeleteImageShareExecute indicates an expected call of DeleteImageShareExecute. -func (mr *MockDefaultApiMockRecorder) DeleteImageShareExecute(ctx, projectId, region, imageId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteImageShareExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteImageShareExecute", reflect.TypeOf((*MockDefaultApi)(nil).DeleteImageShareExecute), ctx, projectId, region, imageId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteImageShareExecute", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteImageShareExecute), r) } // DeleteKeyPair mocks base method. -func (m *MockDefaultApi) DeleteKeyPair(ctx context.Context, keypairName string) iaas.ApiDeleteKeyPairRequest { +func (m *MockDefaultAPI) DeleteKeyPair(ctx context.Context, keypairName string) v2api.ApiDeleteKeyPairRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteKeyPair", ctx, keypairName) - ret0, _ := ret[0].(iaas.ApiDeleteKeyPairRequest) + ret0, _ := ret[0].(v2api.ApiDeleteKeyPairRequest) return ret0 } // DeleteKeyPair indicates an expected call of DeleteKeyPair. -func (mr *MockDefaultApiMockRecorder) DeleteKeyPair(ctx, keypairName any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteKeyPair(ctx, keypairName any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteKeyPair", reflect.TypeOf((*MockDefaultApi)(nil).DeleteKeyPair), ctx, keypairName) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteKeyPair", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteKeyPair), ctx, keypairName) } // DeleteKeyPairExecute mocks base method. -func (m *MockDefaultApi) DeleteKeyPairExecute(ctx context.Context, keypairName string) error { +func (m *MockDefaultAPI) DeleteKeyPairExecute(r v2api.ApiDeleteKeyPairRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteKeyPairExecute", ctx, keypairName) + ret := m.ctrl.Call(m, "DeleteKeyPairExecute", r) ret0, _ := ret[0].(error) return ret0 } // DeleteKeyPairExecute indicates an expected call of DeleteKeyPairExecute. -func (mr *MockDefaultApiMockRecorder) DeleteKeyPairExecute(ctx, keypairName any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteKeyPairExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteKeyPairExecute", reflect.TypeOf((*MockDefaultApi)(nil).DeleteKeyPairExecute), ctx, keypairName) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteKeyPairExecute", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteKeyPairExecute), r) } // DeleteNetwork mocks base method. -func (m *MockDefaultApi) DeleteNetwork(ctx context.Context, projectId, region, networkId string) iaas.ApiDeleteNetworkRequest { +func (m *MockDefaultAPI) DeleteNetwork(ctx context.Context, projectId, region, networkId string) v2api.ApiDeleteNetworkRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteNetwork", ctx, projectId, region, networkId) - ret0, _ := ret[0].(iaas.ApiDeleteNetworkRequest) + ret0, _ := ret[0].(v2api.ApiDeleteNetworkRequest) return ret0 } // DeleteNetwork indicates an expected call of DeleteNetwork. -func (mr *MockDefaultApiMockRecorder) DeleteNetwork(ctx, projectId, region, networkId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteNetwork(ctx, projectId, region, networkId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetwork", reflect.TypeOf((*MockDefaultApi)(nil).DeleteNetwork), ctx, projectId, region, networkId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetwork", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteNetwork), ctx, projectId, region, networkId) } // DeleteNetworkArea mocks base method. -func (m *MockDefaultApi) DeleteNetworkArea(ctx context.Context, organizationId, areaId string) iaas.ApiDeleteNetworkAreaRequest { +func (m *MockDefaultAPI) DeleteNetworkArea(ctx context.Context, organizationId, areaId string) v2api.ApiDeleteNetworkAreaRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteNetworkArea", ctx, organizationId, areaId) - ret0, _ := ret[0].(iaas.ApiDeleteNetworkAreaRequest) + ret0, _ := ret[0].(v2api.ApiDeleteNetworkAreaRequest) return ret0 } // DeleteNetworkArea indicates an expected call of DeleteNetworkArea. -func (mr *MockDefaultApiMockRecorder) DeleteNetworkArea(ctx, organizationId, areaId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteNetworkArea(ctx, organizationId, areaId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkArea", reflect.TypeOf((*MockDefaultApi)(nil).DeleteNetworkArea), ctx, organizationId, areaId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkArea", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteNetworkArea), ctx, organizationId, areaId) } // DeleteNetworkAreaExecute mocks base method. -func (m *MockDefaultApi) DeleteNetworkAreaExecute(ctx context.Context, organizationId, areaId string) error { +func (m *MockDefaultAPI) DeleteNetworkAreaExecute(r v2api.ApiDeleteNetworkAreaRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteNetworkAreaExecute", ctx, organizationId, areaId) + ret := m.ctrl.Call(m, "DeleteNetworkAreaExecute", r) ret0, _ := ret[0].(error) return ret0 } // DeleteNetworkAreaExecute indicates an expected call of DeleteNetworkAreaExecute. -func (mr *MockDefaultApiMockRecorder) DeleteNetworkAreaExecute(ctx, organizationId, areaId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteNetworkAreaExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkAreaExecute", reflect.TypeOf((*MockDefaultApi)(nil).DeleteNetworkAreaExecute), ctx, organizationId, areaId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkAreaExecute", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteNetworkAreaExecute), r) } // DeleteNetworkAreaRange mocks base method. -func (m *MockDefaultApi) DeleteNetworkAreaRange(ctx context.Context, organizationId, areaId, region, networkRangeId string) iaas.ApiDeleteNetworkAreaRangeRequest { +func (m *MockDefaultAPI) DeleteNetworkAreaRange(ctx context.Context, organizationId, areaId, region, networkRangeId string) v2api.ApiDeleteNetworkAreaRangeRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteNetworkAreaRange", ctx, organizationId, areaId, region, networkRangeId) - ret0, _ := ret[0].(iaas.ApiDeleteNetworkAreaRangeRequest) + ret0, _ := ret[0].(v2api.ApiDeleteNetworkAreaRangeRequest) return ret0 } // DeleteNetworkAreaRange indicates an expected call of DeleteNetworkAreaRange. -func (mr *MockDefaultApiMockRecorder) DeleteNetworkAreaRange(ctx, organizationId, areaId, region, networkRangeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteNetworkAreaRange(ctx, organizationId, areaId, region, networkRangeId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkAreaRange", reflect.TypeOf((*MockDefaultApi)(nil).DeleteNetworkAreaRange), ctx, organizationId, areaId, region, networkRangeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkAreaRange", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteNetworkAreaRange), ctx, organizationId, areaId, region, networkRangeId) } // DeleteNetworkAreaRangeExecute mocks base method. -func (m *MockDefaultApi) DeleteNetworkAreaRangeExecute(ctx context.Context, organizationId, areaId, region, networkRangeId string) error { +func (m *MockDefaultAPI) DeleteNetworkAreaRangeExecute(r v2api.ApiDeleteNetworkAreaRangeRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteNetworkAreaRangeExecute", ctx, organizationId, areaId, region, networkRangeId) + ret := m.ctrl.Call(m, "DeleteNetworkAreaRangeExecute", r) ret0, _ := ret[0].(error) return ret0 } // DeleteNetworkAreaRangeExecute indicates an expected call of DeleteNetworkAreaRangeExecute. -func (mr *MockDefaultApiMockRecorder) DeleteNetworkAreaRangeExecute(ctx, organizationId, areaId, region, networkRangeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteNetworkAreaRangeExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkAreaRangeExecute", reflect.TypeOf((*MockDefaultApi)(nil).DeleteNetworkAreaRangeExecute), ctx, organizationId, areaId, region, networkRangeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkAreaRangeExecute", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteNetworkAreaRangeExecute), r) } // DeleteNetworkAreaRegion mocks base method. -func (m *MockDefaultApi) DeleteNetworkAreaRegion(ctx context.Context, organizationId, areaId, region string) iaas.ApiDeleteNetworkAreaRegionRequest { +func (m *MockDefaultAPI) DeleteNetworkAreaRegion(ctx context.Context, organizationId, areaId, region string) v2api.ApiDeleteNetworkAreaRegionRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteNetworkAreaRegion", ctx, organizationId, areaId, region) - ret0, _ := ret[0].(iaas.ApiDeleteNetworkAreaRegionRequest) + ret0, _ := ret[0].(v2api.ApiDeleteNetworkAreaRegionRequest) return ret0 } // DeleteNetworkAreaRegion indicates an expected call of DeleteNetworkAreaRegion. -func (mr *MockDefaultApiMockRecorder) DeleteNetworkAreaRegion(ctx, organizationId, areaId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteNetworkAreaRegion(ctx, organizationId, areaId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkAreaRegion", reflect.TypeOf((*MockDefaultApi)(nil).DeleteNetworkAreaRegion), ctx, organizationId, areaId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkAreaRegion", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteNetworkAreaRegion), ctx, organizationId, areaId, region) } // DeleteNetworkAreaRegionExecute mocks base method. -func (m *MockDefaultApi) DeleteNetworkAreaRegionExecute(ctx context.Context, organizationId, areaId, region string) error { +func (m *MockDefaultAPI) DeleteNetworkAreaRegionExecute(r v2api.ApiDeleteNetworkAreaRegionRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteNetworkAreaRegionExecute", ctx, organizationId, areaId, region) + ret := m.ctrl.Call(m, "DeleteNetworkAreaRegionExecute", r) ret0, _ := ret[0].(error) return ret0 } // DeleteNetworkAreaRegionExecute indicates an expected call of DeleteNetworkAreaRegionExecute. -func (mr *MockDefaultApiMockRecorder) DeleteNetworkAreaRegionExecute(ctx, organizationId, areaId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteNetworkAreaRegionExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkAreaRegionExecute", reflect.TypeOf((*MockDefaultApi)(nil).DeleteNetworkAreaRegionExecute), ctx, organizationId, areaId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkAreaRegionExecute", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteNetworkAreaRegionExecute), r) } // DeleteNetworkAreaRoute mocks base method. -func (m *MockDefaultApi) DeleteNetworkAreaRoute(ctx context.Context, organizationId, areaId, region, routeId string) iaas.ApiDeleteNetworkAreaRouteRequest { +func (m *MockDefaultAPI) DeleteNetworkAreaRoute(ctx context.Context, organizationId, areaId, region, routeId string) v2api.ApiDeleteNetworkAreaRouteRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteNetworkAreaRoute", ctx, organizationId, areaId, region, routeId) - ret0, _ := ret[0].(iaas.ApiDeleteNetworkAreaRouteRequest) + ret0, _ := ret[0].(v2api.ApiDeleteNetworkAreaRouteRequest) return ret0 } // DeleteNetworkAreaRoute indicates an expected call of DeleteNetworkAreaRoute. -func (mr *MockDefaultApiMockRecorder) DeleteNetworkAreaRoute(ctx, organizationId, areaId, region, routeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteNetworkAreaRoute(ctx, organizationId, areaId, region, routeId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkAreaRoute", reflect.TypeOf((*MockDefaultApi)(nil).DeleteNetworkAreaRoute), ctx, organizationId, areaId, region, routeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkAreaRoute", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteNetworkAreaRoute), ctx, organizationId, areaId, region, routeId) } // DeleteNetworkAreaRouteExecute mocks base method. -func (m *MockDefaultApi) DeleteNetworkAreaRouteExecute(ctx context.Context, organizationId, areaId, region, routeId string) error { +func (m *MockDefaultAPI) DeleteNetworkAreaRouteExecute(r v2api.ApiDeleteNetworkAreaRouteRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteNetworkAreaRouteExecute", ctx, organizationId, areaId, region, routeId) + ret := m.ctrl.Call(m, "DeleteNetworkAreaRouteExecute", r) ret0, _ := ret[0].(error) return ret0 } // DeleteNetworkAreaRouteExecute indicates an expected call of DeleteNetworkAreaRouteExecute. -func (mr *MockDefaultApiMockRecorder) DeleteNetworkAreaRouteExecute(ctx, organizationId, areaId, region, routeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteNetworkAreaRouteExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkAreaRouteExecute", reflect.TypeOf((*MockDefaultApi)(nil).DeleteNetworkAreaRouteExecute), ctx, organizationId, areaId, region, routeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkAreaRouteExecute", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteNetworkAreaRouteExecute), r) } // DeleteNetworkExecute mocks base method. -func (m *MockDefaultApi) DeleteNetworkExecute(ctx context.Context, projectId, region, networkId string) error { +func (m *MockDefaultAPI) DeleteNetworkExecute(r v2api.ApiDeleteNetworkRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteNetworkExecute", ctx, projectId, region, networkId) + ret := m.ctrl.Call(m, "DeleteNetworkExecute", r) ret0, _ := ret[0].(error) return ret0 } // DeleteNetworkExecute indicates an expected call of DeleteNetworkExecute. -func (mr *MockDefaultApiMockRecorder) DeleteNetworkExecute(ctx, projectId, region, networkId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteNetworkExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkExecute", reflect.TypeOf((*MockDefaultApi)(nil).DeleteNetworkExecute), ctx, projectId, region, networkId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkExecute", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteNetworkExecute), r) } // DeleteNic mocks base method. -func (m *MockDefaultApi) DeleteNic(ctx context.Context, projectId, region, networkId, nicId string) iaas.ApiDeleteNicRequest { +func (m *MockDefaultAPI) DeleteNic(ctx context.Context, projectId, region, networkId, nicId string) v2api.ApiDeleteNicRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteNic", ctx, projectId, region, networkId, nicId) - ret0, _ := ret[0].(iaas.ApiDeleteNicRequest) + ret0, _ := ret[0].(v2api.ApiDeleteNicRequest) return ret0 } // DeleteNic indicates an expected call of DeleteNic. -func (mr *MockDefaultApiMockRecorder) DeleteNic(ctx, projectId, region, networkId, nicId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteNic(ctx, projectId, region, networkId, nicId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNic", reflect.TypeOf((*MockDefaultApi)(nil).DeleteNic), ctx, projectId, region, networkId, nicId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNic", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteNic), ctx, projectId, region, networkId, nicId) } // DeleteNicExecute mocks base method. -func (m *MockDefaultApi) DeleteNicExecute(ctx context.Context, projectId, region, networkId, nicId string) error { +func (m *MockDefaultAPI) DeleteNicExecute(r v2api.ApiDeleteNicRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteNicExecute", ctx, projectId, region, networkId, nicId) + ret := m.ctrl.Call(m, "DeleteNicExecute", r) ret0, _ := ret[0].(error) return ret0 } // DeleteNicExecute indicates an expected call of DeleteNicExecute. -func (mr *MockDefaultApiMockRecorder) DeleteNicExecute(ctx, projectId, region, networkId, nicId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteNicExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNicExecute", reflect.TypeOf((*MockDefaultApi)(nil).DeleteNicExecute), ctx, projectId, region, networkId, nicId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNicExecute", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteNicExecute), r) } // DeletePublicIP mocks base method. -func (m *MockDefaultApi) DeletePublicIP(ctx context.Context, projectId, region, publicIpId string) iaas.ApiDeletePublicIPRequest { +func (m *MockDefaultAPI) DeletePublicIP(ctx context.Context, projectId, region, publicIpId string) v2api.ApiDeletePublicIPRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeletePublicIP", ctx, projectId, region, publicIpId) - ret0, _ := ret[0].(iaas.ApiDeletePublicIPRequest) + ret0, _ := ret[0].(v2api.ApiDeletePublicIPRequest) return ret0 } // DeletePublicIP indicates an expected call of DeletePublicIP. -func (mr *MockDefaultApiMockRecorder) DeletePublicIP(ctx, projectId, region, publicIpId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeletePublicIP(ctx, projectId, region, publicIpId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeletePublicIP", reflect.TypeOf((*MockDefaultApi)(nil).DeletePublicIP), ctx, projectId, region, publicIpId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeletePublicIP", reflect.TypeOf((*MockDefaultAPI)(nil).DeletePublicIP), ctx, projectId, region, publicIpId) } // DeletePublicIPExecute mocks base method. -func (m *MockDefaultApi) DeletePublicIPExecute(ctx context.Context, projectId, region, publicIpId string) error { +func (m *MockDefaultAPI) DeletePublicIPExecute(r v2api.ApiDeletePublicIPRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeletePublicIPExecute", ctx, projectId, region, publicIpId) + ret := m.ctrl.Call(m, "DeletePublicIPExecute", r) ret0, _ := ret[0].(error) return ret0 } // DeletePublicIPExecute indicates an expected call of DeletePublicIPExecute. -func (mr *MockDefaultApiMockRecorder) DeletePublicIPExecute(ctx, projectId, region, publicIpId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeletePublicIPExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeletePublicIPExecute", reflect.TypeOf((*MockDefaultApi)(nil).DeletePublicIPExecute), ctx, projectId, region, publicIpId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeletePublicIPExecute", reflect.TypeOf((*MockDefaultAPI)(nil).DeletePublicIPExecute), r) } // DeleteRouteFromRoutingTable mocks base method. -func (m *MockDefaultApi) DeleteRouteFromRoutingTable(ctx context.Context, organizationId, areaId, region, routingTableId, routeId string) iaas.ApiDeleteRouteFromRoutingTableRequest { +func (m *MockDefaultAPI) DeleteRouteFromRoutingTable(ctx context.Context, organizationId, areaId, region, routingTableId, routeId string) v2api.ApiDeleteRouteFromRoutingTableRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteRouteFromRoutingTable", ctx, organizationId, areaId, region, routingTableId, routeId) - ret0, _ := ret[0].(iaas.ApiDeleteRouteFromRoutingTableRequest) + ret0, _ := ret[0].(v2api.ApiDeleteRouteFromRoutingTableRequest) return ret0 } // DeleteRouteFromRoutingTable indicates an expected call of DeleteRouteFromRoutingTable. -func (mr *MockDefaultApiMockRecorder) DeleteRouteFromRoutingTable(ctx, organizationId, areaId, region, routingTableId, routeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteRouteFromRoutingTable(ctx, organizationId, areaId, region, routingTableId, routeId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteRouteFromRoutingTable", reflect.TypeOf((*MockDefaultApi)(nil).DeleteRouteFromRoutingTable), ctx, organizationId, areaId, region, routingTableId, routeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteRouteFromRoutingTable", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteRouteFromRoutingTable), ctx, organizationId, areaId, region, routingTableId, routeId) } // DeleteRouteFromRoutingTableExecute mocks base method. -func (m *MockDefaultApi) DeleteRouteFromRoutingTableExecute(ctx context.Context, organizationId, areaId, region, routingTableId, routeId string) error { +func (m *MockDefaultAPI) DeleteRouteFromRoutingTableExecute(r v2api.ApiDeleteRouteFromRoutingTableRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteRouteFromRoutingTableExecute", ctx, organizationId, areaId, region, routingTableId, routeId) + ret := m.ctrl.Call(m, "DeleteRouteFromRoutingTableExecute", r) ret0, _ := ret[0].(error) return ret0 } // DeleteRouteFromRoutingTableExecute indicates an expected call of DeleteRouteFromRoutingTableExecute. -func (mr *MockDefaultApiMockRecorder) DeleteRouteFromRoutingTableExecute(ctx, organizationId, areaId, region, routingTableId, routeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteRouteFromRoutingTableExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteRouteFromRoutingTableExecute", reflect.TypeOf((*MockDefaultApi)(nil).DeleteRouteFromRoutingTableExecute), ctx, organizationId, areaId, region, routingTableId, routeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteRouteFromRoutingTableExecute", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteRouteFromRoutingTableExecute), r) } // DeleteRoutingTableFromArea mocks base method. -func (m *MockDefaultApi) DeleteRoutingTableFromArea(ctx context.Context, organizationId, areaId, region, routingTableId string) iaas.ApiDeleteRoutingTableFromAreaRequest { +func (m *MockDefaultAPI) DeleteRoutingTableFromArea(ctx context.Context, organizationId, areaId, region, routingTableId string) v2api.ApiDeleteRoutingTableFromAreaRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteRoutingTableFromArea", ctx, organizationId, areaId, region, routingTableId) - ret0, _ := ret[0].(iaas.ApiDeleteRoutingTableFromAreaRequest) + ret0, _ := ret[0].(v2api.ApiDeleteRoutingTableFromAreaRequest) return ret0 } // DeleteRoutingTableFromArea indicates an expected call of DeleteRoutingTableFromArea. -func (mr *MockDefaultApiMockRecorder) DeleteRoutingTableFromArea(ctx, organizationId, areaId, region, routingTableId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteRoutingTableFromArea(ctx, organizationId, areaId, region, routingTableId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteRoutingTableFromArea", reflect.TypeOf((*MockDefaultApi)(nil).DeleteRoutingTableFromArea), ctx, organizationId, areaId, region, routingTableId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteRoutingTableFromArea", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteRoutingTableFromArea), ctx, organizationId, areaId, region, routingTableId) } // DeleteRoutingTableFromAreaExecute mocks base method. -func (m *MockDefaultApi) DeleteRoutingTableFromAreaExecute(ctx context.Context, organizationId, areaId, region, routingTableId string) error { +func (m *MockDefaultAPI) DeleteRoutingTableFromAreaExecute(r v2api.ApiDeleteRoutingTableFromAreaRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteRoutingTableFromAreaExecute", ctx, organizationId, areaId, region, routingTableId) + ret := m.ctrl.Call(m, "DeleteRoutingTableFromAreaExecute", r) ret0, _ := ret[0].(error) return ret0 } // DeleteRoutingTableFromAreaExecute indicates an expected call of DeleteRoutingTableFromAreaExecute. -func (mr *MockDefaultApiMockRecorder) DeleteRoutingTableFromAreaExecute(ctx, organizationId, areaId, region, routingTableId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteRoutingTableFromAreaExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteRoutingTableFromAreaExecute", reflect.TypeOf((*MockDefaultApi)(nil).DeleteRoutingTableFromAreaExecute), ctx, organizationId, areaId, region, routingTableId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteRoutingTableFromAreaExecute", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteRoutingTableFromAreaExecute), r) } // DeleteSecurityGroup mocks base method. -func (m *MockDefaultApi) DeleteSecurityGroup(ctx context.Context, projectId, region, securityGroupId string) iaas.ApiDeleteSecurityGroupRequest { +func (m *MockDefaultAPI) DeleteSecurityGroup(ctx context.Context, projectId, region, securityGroupId string) v2api.ApiDeleteSecurityGroupRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteSecurityGroup", ctx, projectId, region, securityGroupId) - ret0, _ := ret[0].(iaas.ApiDeleteSecurityGroupRequest) + ret0, _ := ret[0].(v2api.ApiDeleteSecurityGroupRequest) return ret0 } // DeleteSecurityGroup indicates an expected call of DeleteSecurityGroup. -func (mr *MockDefaultApiMockRecorder) DeleteSecurityGroup(ctx, projectId, region, securityGroupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteSecurityGroup(ctx, projectId, region, securityGroupId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSecurityGroup", reflect.TypeOf((*MockDefaultApi)(nil).DeleteSecurityGroup), ctx, projectId, region, securityGroupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSecurityGroup", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteSecurityGroup), ctx, projectId, region, securityGroupId) } // DeleteSecurityGroupExecute mocks base method. -func (m *MockDefaultApi) DeleteSecurityGroupExecute(ctx context.Context, projectId, region, securityGroupId string) error { +func (m *MockDefaultAPI) DeleteSecurityGroupExecute(r v2api.ApiDeleteSecurityGroupRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteSecurityGroupExecute", ctx, projectId, region, securityGroupId) + ret := m.ctrl.Call(m, "DeleteSecurityGroupExecute", r) ret0, _ := ret[0].(error) return ret0 } // DeleteSecurityGroupExecute indicates an expected call of DeleteSecurityGroupExecute. -func (mr *MockDefaultApiMockRecorder) DeleteSecurityGroupExecute(ctx, projectId, region, securityGroupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteSecurityGroupExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSecurityGroupExecute", reflect.TypeOf((*MockDefaultApi)(nil).DeleteSecurityGroupExecute), ctx, projectId, region, securityGroupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSecurityGroupExecute", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteSecurityGroupExecute), r) } // DeleteSecurityGroupRule mocks base method. -func (m *MockDefaultApi) DeleteSecurityGroupRule(ctx context.Context, projectId, region, securityGroupId, securityGroupRuleId string) iaas.ApiDeleteSecurityGroupRuleRequest { +func (m *MockDefaultAPI) DeleteSecurityGroupRule(ctx context.Context, projectId, region, securityGroupId, securityGroupRuleId string) v2api.ApiDeleteSecurityGroupRuleRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteSecurityGroupRule", ctx, projectId, region, securityGroupId, securityGroupRuleId) - ret0, _ := ret[0].(iaas.ApiDeleteSecurityGroupRuleRequest) + ret0, _ := ret[0].(v2api.ApiDeleteSecurityGroupRuleRequest) return ret0 } // DeleteSecurityGroupRule indicates an expected call of DeleteSecurityGroupRule. -func (mr *MockDefaultApiMockRecorder) DeleteSecurityGroupRule(ctx, projectId, region, securityGroupId, securityGroupRuleId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteSecurityGroupRule(ctx, projectId, region, securityGroupId, securityGroupRuleId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSecurityGroupRule", reflect.TypeOf((*MockDefaultApi)(nil).DeleteSecurityGroupRule), ctx, projectId, region, securityGroupId, securityGroupRuleId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSecurityGroupRule", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteSecurityGroupRule), ctx, projectId, region, securityGroupId, securityGroupRuleId) } // DeleteSecurityGroupRuleExecute mocks base method. -func (m *MockDefaultApi) DeleteSecurityGroupRuleExecute(ctx context.Context, projectId, region, securityGroupId, securityGroupRuleId string) error { +func (m *MockDefaultAPI) DeleteSecurityGroupRuleExecute(r v2api.ApiDeleteSecurityGroupRuleRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteSecurityGroupRuleExecute", ctx, projectId, region, securityGroupId, securityGroupRuleId) + ret := m.ctrl.Call(m, "DeleteSecurityGroupRuleExecute", r) ret0, _ := ret[0].(error) return ret0 } // DeleteSecurityGroupRuleExecute indicates an expected call of DeleteSecurityGroupRuleExecute. -func (mr *MockDefaultApiMockRecorder) DeleteSecurityGroupRuleExecute(ctx, projectId, region, securityGroupId, securityGroupRuleId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteSecurityGroupRuleExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSecurityGroupRuleExecute", reflect.TypeOf((*MockDefaultApi)(nil).DeleteSecurityGroupRuleExecute), ctx, projectId, region, securityGroupId, securityGroupRuleId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSecurityGroupRuleExecute", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteSecurityGroupRuleExecute), r) } // DeleteServer mocks base method. -func (m *MockDefaultApi) DeleteServer(ctx context.Context, projectId, region, serverId string) iaas.ApiDeleteServerRequest { +func (m *MockDefaultAPI) DeleteServer(ctx context.Context, projectId, region, serverId string) v2api.ApiDeleteServerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteServer", ctx, projectId, region, serverId) - ret0, _ := ret[0].(iaas.ApiDeleteServerRequest) + ret0, _ := ret[0].(v2api.ApiDeleteServerRequest) return ret0 } // DeleteServer indicates an expected call of DeleteServer. -func (mr *MockDefaultApiMockRecorder) DeleteServer(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteServer(ctx, projectId, region, serverId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteServer", reflect.TypeOf((*MockDefaultApi)(nil).DeleteServer), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteServer", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteServer), ctx, projectId, region, serverId) } // DeleteServerExecute mocks base method. -func (m *MockDefaultApi) DeleteServerExecute(ctx context.Context, projectId, region, serverId string) error { +func (m *MockDefaultAPI) DeleteServerExecute(r v2api.ApiDeleteServerRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteServerExecute", ctx, projectId, region, serverId) + ret := m.ctrl.Call(m, "DeleteServerExecute", r) ret0, _ := ret[0].(error) return ret0 } // DeleteServerExecute indicates an expected call of DeleteServerExecute. -func (mr *MockDefaultApiMockRecorder) DeleteServerExecute(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteServerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteServerExecute", reflect.TypeOf((*MockDefaultApi)(nil).DeleteServerExecute), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteServerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteServerExecute), r) } // DeleteSnapshot mocks base method. -func (m *MockDefaultApi) DeleteSnapshot(ctx context.Context, projectId, region, snapshotId string) iaas.ApiDeleteSnapshotRequest { +func (m *MockDefaultAPI) DeleteSnapshot(ctx context.Context, projectId, region, snapshotId string) v2api.ApiDeleteSnapshotRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteSnapshot", ctx, projectId, region, snapshotId) - ret0, _ := ret[0].(iaas.ApiDeleteSnapshotRequest) + ret0, _ := ret[0].(v2api.ApiDeleteSnapshotRequest) return ret0 } // DeleteSnapshot indicates an expected call of DeleteSnapshot. -func (mr *MockDefaultApiMockRecorder) DeleteSnapshot(ctx, projectId, region, snapshotId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteSnapshot(ctx, projectId, region, snapshotId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSnapshot", reflect.TypeOf((*MockDefaultApi)(nil).DeleteSnapshot), ctx, projectId, region, snapshotId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSnapshot", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteSnapshot), ctx, projectId, region, snapshotId) } // DeleteSnapshotExecute mocks base method. -func (m *MockDefaultApi) DeleteSnapshotExecute(ctx context.Context, projectId, region, snapshotId string) error { +func (m *MockDefaultAPI) DeleteSnapshotExecute(r v2api.ApiDeleteSnapshotRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteSnapshotExecute", ctx, projectId, region, snapshotId) + ret := m.ctrl.Call(m, "DeleteSnapshotExecute", r) ret0, _ := ret[0].(error) return ret0 } // DeleteSnapshotExecute indicates an expected call of DeleteSnapshotExecute. -func (mr *MockDefaultApiMockRecorder) DeleteSnapshotExecute(ctx, projectId, region, snapshotId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteSnapshotExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSnapshotExecute", reflect.TypeOf((*MockDefaultApi)(nil).DeleteSnapshotExecute), ctx, projectId, region, snapshotId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSnapshotExecute", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteSnapshotExecute), r) } // DeleteVolume mocks base method. -func (m *MockDefaultApi) DeleteVolume(ctx context.Context, projectId, region, volumeId string) iaas.ApiDeleteVolumeRequest { +func (m *MockDefaultAPI) DeleteVolume(ctx context.Context, projectId, region, volumeId string) v2api.ApiDeleteVolumeRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteVolume", ctx, projectId, region, volumeId) - ret0, _ := ret[0].(iaas.ApiDeleteVolumeRequest) + ret0, _ := ret[0].(v2api.ApiDeleteVolumeRequest) return ret0 } // DeleteVolume indicates an expected call of DeleteVolume. -func (mr *MockDefaultApiMockRecorder) DeleteVolume(ctx, projectId, region, volumeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteVolume(ctx, projectId, region, volumeId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteVolume", reflect.TypeOf((*MockDefaultApi)(nil).DeleteVolume), ctx, projectId, region, volumeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteVolume", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteVolume), ctx, projectId, region, volumeId) } // DeleteVolumeExecute mocks base method. -func (m *MockDefaultApi) DeleteVolumeExecute(ctx context.Context, projectId, region, volumeId string) error { +func (m *MockDefaultAPI) DeleteVolumeExecute(r v2api.ApiDeleteVolumeRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteVolumeExecute", ctx, projectId, region, volumeId) + ret := m.ctrl.Call(m, "DeleteVolumeExecute", r) ret0, _ := ret[0].(error) return ret0 } // DeleteVolumeExecute indicates an expected call of DeleteVolumeExecute. -func (mr *MockDefaultApiMockRecorder) DeleteVolumeExecute(ctx, projectId, region, volumeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteVolumeExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteVolumeExecute", reflect.TypeOf((*MockDefaultApi)(nil).DeleteVolumeExecute), ctx, projectId, region, volumeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteVolumeExecute", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteVolumeExecute), r) } // GetAffinityGroup mocks base method. -func (m *MockDefaultApi) GetAffinityGroup(ctx context.Context, projectId, region, affinityGroupId string) iaas.ApiGetAffinityGroupRequest { +func (m *MockDefaultAPI) GetAffinityGroup(ctx context.Context, projectId, region, affinityGroupId string) v2api.ApiGetAffinityGroupRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetAffinityGroup", ctx, projectId, region, affinityGroupId) - ret0, _ := ret[0].(iaas.ApiGetAffinityGroupRequest) + ret0, _ := ret[0].(v2api.ApiGetAffinityGroupRequest) return ret0 } // GetAffinityGroup indicates an expected call of GetAffinityGroup. -func (mr *MockDefaultApiMockRecorder) GetAffinityGroup(ctx, projectId, region, affinityGroupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetAffinityGroup(ctx, projectId, region, affinityGroupId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAffinityGroup", reflect.TypeOf((*MockDefaultApi)(nil).GetAffinityGroup), ctx, projectId, region, affinityGroupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAffinityGroup", reflect.TypeOf((*MockDefaultAPI)(nil).GetAffinityGroup), ctx, projectId, region, affinityGroupId) } // GetAffinityGroupExecute mocks base method. -func (m *MockDefaultApi) GetAffinityGroupExecute(ctx context.Context, projectId, region, affinityGroupId string) (*iaas.AffinityGroup, error) { +func (m *MockDefaultAPI) GetAffinityGroupExecute(r v2api.ApiGetAffinityGroupRequest) (*v2api.AffinityGroup, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAffinityGroupExecute", ctx, projectId, region, affinityGroupId) - ret0, _ := ret[0].(*iaas.AffinityGroup) + ret := m.ctrl.Call(m, "GetAffinityGroupExecute", r) + ret0, _ := ret[0].(*v2api.AffinityGroup) ret1, _ := ret[1].(error) return ret0, ret1 } // GetAffinityGroupExecute indicates an expected call of GetAffinityGroupExecute. -func (mr *MockDefaultApiMockRecorder) GetAffinityGroupExecute(ctx, projectId, region, affinityGroupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetAffinityGroupExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAffinityGroupExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetAffinityGroupExecute), ctx, projectId, region, affinityGroupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAffinityGroupExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetAffinityGroupExecute), r) } // GetAttachedVolume mocks base method. -func (m *MockDefaultApi) GetAttachedVolume(ctx context.Context, projectId, region, serverId, volumeId string) iaas.ApiGetAttachedVolumeRequest { +func (m *MockDefaultAPI) GetAttachedVolume(ctx context.Context, projectId, region, serverId, volumeId string) v2api.ApiGetAttachedVolumeRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetAttachedVolume", ctx, projectId, region, serverId, volumeId) - ret0, _ := ret[0].(iaas.ApiGetAttachedVolumeRequest) + ret0, _ := ret[0].(v2api.ApiGetAttachedVolumeRequest) return ret0 } // GetAttachedVolume indicates an expected call of GetAttachedVolume. -func (mr *MockDefaultApiMockRecorder) GetAttachedVolume(ctx, projectId, region, serverId, volumeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetAttachedVolume(ctx, projectId, region, serverId, volumeId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAttachedVolume", reflect.TypeOf((*MockDefaultApi)(nil).GetAttachedVolume), ctx, projectId, region, serverId, volumeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAttachedVolume", reflect.TypeOf((*MockDefaultAPI)(nil).GetAttachedVolume), ctx, projectId, region, serverId, volumeId) } // GetAttachedVolumeExecute mocks base method. -func (m *MockDefaultApi) GetAttachedVolumeExecute(ctx context.Context, projectId, region, serverId, volumeId string) (*iaas.VolumeAttachment, error) { +func (m *MockDefaultAPI) GetAttachedVolumeExecute(r v2api.ApiGetAttachedVolumeRequest) (*v2api.VolumeAttachment, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAttachedVolumeExecute", ctx, projectId, region, serverId, volumeId) - ret0, _ := ret[0].(*iaas.VolumeAttachment) + ret := m.ctrl.Call(m, "GetAttachedVolumeExecute", r) + ret0, _ := ret[0].(*v2api.VolumeAttachment) ret1, _ := ret[1].(error) return ret0, ret1 } // GetAttachedVolumeExecute indicates an expected call of GetAttachedVolumeExecute. -func (mr *MockDefaultApiMockRecorder) GetAttachedVolumeExecute(ctx, projectId, region, serverId, volumeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetAttachedVolumeExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAttachedVolumeExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetAttachedVolumeExecute), ctx, projectId, region, serverId, volumeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAttachedVolumeExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetAttachedVolumeExecute), r) } // GetBackup mocks base method. -func (m *MockDefaultApi) GetBackup(ctx context.Context, projectId, region, backupId string) iaas.ApiGetBackupRequest { +func (m *MockDefaultAPI) GetBackup(ctx context.Context, projectId, region, backupId string) v2api.ApiGetBackupRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBackup", ctx, projectId, region, backupId) - ret0, _ := ret[0].(iaas.ApiGetBackupRequest) + ret0, _ := ret[0].(v2api.ApiGetBackupRequest) return ret0 } // GetBackup indicates an expected call of GetBackup. -func (mr *MockDefaultApiMockRecorder) GetBackup(ctx, projectId, region, backupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetBackup(ctx, projectId, region, backupId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBackup", reflect.TypeOf((*MockDefaultApi)(nil).GetBackup), ctx, projectId, region, backupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBackup", reflect.TypeOf((*MockDefaultAPI)(nil).GetBackup), ctx, projectId, region, backupId) } // GetBackupExecute mocks base method. -func (m *MockDefaultApi) GetBackupExecute(ctx context.Context, projectId, region, backupId string) (*iaas.Backup, error) { +func (m *MockDefaultAPI) GetBackupExecute(r v2api.ApiGetBackupRequest) (*v2api.Backup, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetBackupExecute", ctx, projectId, region, backupId) - ret0, _ := ret[0].(*iaas.Backup) + ret := m.ctrl.Call(m, "GetBackupExecute", r) + ret0, _ := ret[0].(*v2api.Backup) ret1, _ := ret[1].(error) return ret0, ret1 } // GetBackupExecute indicates an expected call of GetBackupExecute. -func (mr *MockDefaultApiMockRecorder) GetBackupExecute(ctx, projectId, region, backupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetBackupExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBackupExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetBackupExecute), ctx, projectId, region, backupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBackupExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetBackupExecute), r) } // GetImage mocks base method. -func (m *MockDefaultApi) GetImage(ctx context.Context, projectId, region, imageId string) iaas.ApiGetImageRequest { +func (m *MockDefaultAPI) GetImage(ctx context.Context, projectId, region, imageId string) v2api.ApiGetImageRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetImage", ctx, projectId, region, imageId) - ret0, _ := ret[0].(iaas.ApiGetImageRequest) + ret0, _ := ret[0].(v2api.ApiGetImageRequest) return ret0 } // GetImage indicates an expected call of GetImage. -func (mr *MockDefaultApiMockRecorder) GetImage(ctx, projectId, region, imageId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetImage(ctx, projectId, region, imageId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetImage", reflect.TypeOf((*MockDefaultApi)(nil).GetImage), ctx, projectId, region, imageId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetImage", reflect.TypeOf((*MockDefaultAPI)(nil).GetImage), ctx, projectId, region, imageId) } // GetImageExecute mocks base method. -func (m *MockDefaultApi) GetImageExecute(ctx context.Context, projectId, region, imageId string) (*iaas.Image, error) { +func (m *MockDefaultAPI) GetImageExecute(r v2api.ApiGetImageRequest) (*v2api.Image, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetImageExecute", ctx, projectId, region, imageId) - ret0, _ := ret[0].(*iaas.Image) + ret := m.ctrl.Call(m, "GetImageExecute", r) + ret0, _ := ret[0].(*v2api.Image) ret1, _ := ret[1].(error) return ret0, ret1 } // GetImageExecute indicates an expected call of GetImageExecute. -func (mr *MockDefaultApiMockRecorder) GetImageExecute(ctx, projectId, region, imageId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetImageExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetImageExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetImageExecute), ctx, projectId, region, imageId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetImageExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetImageExecute), r) } // GetImageShare mocks base method. -func (m *MockDefaultApi) GetImageShare(ctx context.Context, projectId, region, imageId string) iaas.ApiGetImageShareRequest { +func (m *MockDefaultAPI) GetImageShare(ctx context.Context, projectId, region, imageId string) v2api.ApiGetImageShareRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetImageShare", ctx, projectId, region, imageId) - ret0, _ := ret[0].(iaas.ApiGetImageShareRequest) + ret0, _ := ret[0].(v2api.ApiGetImageShareRequest) return ret0 } // GetImageShare indicates an expected call of GetImageShare. -func (mr *MockDefaultApiMockRecorder) GetImageShare(ctx, projectId, region, imageId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetImageShare(ctx, projectId, region, imageId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetImageShare", reflect.TypeOf((*MockDefaultApi)(nil).GetImageShare), ctx, projectId, region, imageId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetImageShare", reflect.TypeOf((*MockDefaultAPI)(nil).GetImageShare), ctx, projectId, region, imageId) } // GetImageShareConsumer mocks base method. -func (m *MockDefaultApi) GetImageShareConsumer(ctx context.Context, projectId, region, imageId, consumerProjectId string) iaas.ApiGetImageShareConsumerRequest { +func (m *MockDefaultAPI) GetImageShareConsumer(ctx context.Context, projectId, region, imageId, consumerProjectId string) v2api.ApiGetImageShareConsumerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetImageShareConsumer", ctx, projectId, region, imageId, consumerProjectId) - ret0, _ := ret[0].(iaas.ApiGetImageShareConsumerRequest) + ret0, _ := ret[0].(v2api.ApiGetImageShareConsumerRequest) return ret0 } // GetImageShareConsumer indicates an expected call of GetImageShareConsumer. -func (mr *MockDefaultApiMockRecorder) GetImageShareConsumer(ctx, projectId, region, imageId, consumerProjectId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetImageShareConsumer(ctx, projectId, region, imageId, consumerProjectId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetImageShareConsumer", reflect.TypeOf((*MockDefaultApi)(nil).GetImageShareConsumer), ctx, projectId, region, imageId, consumerProjectId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetImageShareConsumer", reflect.TypeOf((*MockDefaultAPI)(nil).GetImageShareConsumer), ctx, projectId, region, imageId, consumerProjectId) } // GetImageShareConsumerExecute mocks base method. -func (m *MockDefaultApi) GetImageShareConsumerExecute(ctx context.Context, projectId, region, imageId, consumerProjectId string) (*iaas.ImageShareConsumer, error) { +func (m *MockDefaultAPI) GetImageShareConsumerExecute(r v2api.ApiGetImageShareConsumerRequest) (*v2api.ImageShareConsumer, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetImageShareConsumerExecute", ctx, projectId, region, imageId, consumerProjectId) - ret0, _ := ret[0].(*iaas.ImageShareConsumer) + ret := m.ctrl.Call(m, "GetImageShareConsumerExecute", r) + ret0, _ := ret[0].(*v2api.ImageShareConsumer) ret1, _ := ret[1].(error) return ret0, ret1 } // GetImageShareConsumerExecute indicates an expected call of GetImageShareConsumerExecute. -func (mr *MockDefaultApiMockRecorder) GetImageShareConsumerExecute(ctx, projectId, region, imageId, consumerProjectId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetImageShareConsumerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetImageShareConsumerExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetImageShareConsumerExecute), ctx, projectId, region, imageId, consumerProjectId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetImageShareConsumerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetImageShareConsumerExecute), r) } // GetImageShareExecute mocks base method. -func (m *MockDefaultApi) GetImageShareExecute(ctx context.Context, projectId, region, imageId string) (*iaas.ImageShare, error) { +func (m *MockDefaultAPI) GetImageShareExecute(r v2api.ApiGetImageShareRequest) (*v2api.ImageShare, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetImageShareExecute", ctx, projectId, region, imageId) - ret0, _ := ret[0].(*iaas.ImageShare) + ret := m.ctrl.Call(m, "GetImageShareExecute", r) + ret0, _ := ret[0].(*v2api.ImageShare) ret1, _ := ret[1].(error) return ret0, ret1 } // GetImageShareExecute indicates an expected call of GetImageShareExecute. -func (mr *MockDefaultApiMockRecorder) GetImageShareExecute(ctx, projectId, region, imageId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetImageShareExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetImageShareExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetImageShareExecute), ctx, projectId, region, imageId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetImageShareExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetImageShareExecute), r) } // GetKeyPair mocks base method. -func (m *MockDefaultApi) GetKeyPair(ctx context.Context, keypairName string) iaas.ApiGetKeyPairRequest { +func (m *MockDefaultAPI) GetKeyPair(ctx context.Context, keypairName string) v2api.ApiGetKeyPairRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetKeyPair", ctx, keypairName) - ret0, _ := ret[0].(iaas.ApiGetKeyPairRequest) + ret0, _ := ret[0].(v2api.ApiGetKeyPairRequest) return ret0 } // GetKeyPair indicates an expected call of GetKeyPair. -func (mr *MockDefaultApiMockRecorder) GetKeyPair(ctx, keypairName any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetKeyPair(ctx, keypairName any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetKeyPair", reflect.TypeOf((*MockDefaultApi)(nil).GetKeyPair), ctx, keypairName) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetKeyPair", reflect.TypeOf((*MockDefaultAPI)(nil).GetKeyPair), ctx, keypairName) } // GetKeyPairExecute mocks base method. -func (m *MockDefaultApi) GetKeyPairExecute(ctx context.Context, keypairName string) (*iaas.Keypair, error) { +func (m *MockDefaultAPI) GetKeyPairExecute(r v2api.ApiGetKeyPairRequest) (*v2api.Keypair, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetKeyPairExecute", ctx, keypairName) - ret0, _ := ret[0].(*iaas.Keypair) + ret := m.ctrl.Call(m, "GetKeyPairExecute", r) + ret0, _ := ret[0].(*v2api.Keypair) ret1, _ := ret[1].(error) return ret0, ret1 } // GetKeyPairExecute indicates an expected call of GetKeyPairExecute. -func (mr *MockDefaultApiMockRecorder) GetKeyPairExecute(ctx, keypairName any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetKeyPairExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetKeyPairExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetKeyPairExecute), ctx, keypairName) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetKeyPairExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetKeyPairExecute), r) } // GetMachineType mocks base method. -func (m *MockDefaultApi) GetMachineType(ctx context.Context, projectId, region, machineType string) iaas.ApiGetMachineTypeRequest { +func (m *MockDefaultAPI) GetMachineType(ctx context.Context, projectId, region, machineType string) v2api.ApiGetMachineTypeRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetMachineType", ctx, projectId, region, machineType) - ret0, _ := ret[0].(iaas.ApiGetMachineTypeRequest) + ret0, _ := ret[0].(v2api.ApiGetMachineTypeRequest) return ret0 } // GetMachineType indicates an expected call of GetMachineType. -func (mr *MockDefaultApiMockRecorder) GetMachineType(ctx, projectId, region, machineType any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetMachineType(ctx, projectId, region, machineType any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMachineType", reflect.TypeOf((*MockDefaultApi)(nil).GetMachineType), ctx, projectId, region, machineType) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMachineType", reflect.TypeOf((*MockDefaultAPI)(nil).GetMachineType), ctx, projectId, region, machineType) } // GetMachineTypeExecute mocks base method. -func (m *MockDefaultApi) GetMachineTypeExecute(ctx context.Context, projectId, region, machineType string) (*iaas.MachineType, error) { +func (m *MockDefaultAPI) GetMachineTypeExecute(r v2api.ApiGetMachineTypeRequest) (*v2api.MachineType, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetMachineTypeExecute", ctx, projectId, region, machineType) - ret0, _ := ret[0].(*iaas.MachineType) + ret := m.ctrl.Call(m, "GetMachineTypeExecute", r) + ret0, _ := ret[0].(*v2api.MachineType) ret1, _ := ret[1].(error) return ret0, ret1 } // GetMachineTypeExecute indicates an expected call of GetMachineTypeExecute. -func (mr *MockDefaultApiMockRecorder) GetMachineTypeExecute(ctx, projectId, region, machineType any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetMachineTypeExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMachineTypeExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetMachineTypeExecute), ctx, projectId, region, machineType) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMachineTypeExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetMachineTypeExecute), r) } // GetNetwork mocks base method. -func (m *MockDefaultApi) GetNetwork(ctx context.Context, projectId, region, networkId string) iaas.ApiGetNetworkRequest { +func (m *MockDefaultAPI) GetNetwork(ctx context.Context, projectId, region, networkId string) v2api.ApiGetNetworkRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetNetwork", ctx, projectId, region, networkId) - ret0, _ := ret[0].(iaas.ApiGetNetworkRequest) + ret0, _ := ret[0].(v2api.ApiGetNetworkRequest) return ret0 } // GetNetwork indicates an expected call of GetNetwork. -func (mr *MockDefaultApiMockRecorder) GetNetwork(ctx, projectId, region, networkId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetNetwork(ctx, projectId, region, networkId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetwork", reflect.TypeOf((*MockDefaultApi)(nil).GetNetwork), ctx, projectId, region, networkId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetwork", reflect.TypeOf((*MockDefaultAPI)(nil).GetNetwork), ctx, projectId, region, networkId) } // GetNetworkArea mocks base method. -func (m *MockDefaultApi) GetNetworkArea(ctx context.Context, organizationId, areaId string) iaas.ApiGetNetworkAreaRequest { +func (m *MockDefaultAPI) GetNetworkArea(ctx context.Context, organizationId, areaId string) v2api.ApiGetNetworkAreaRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetNetworkArea", ctx, organizationId, areaId) - ret0, _ := ret[0].(iaas.ApiGetNetworkAreaRequest) + ret0, _ := ret[0].(v2api.ApiGetNetworkAreaRequest) return ret0 } // GetNetworkArea indicates an expected call of GetNetworkArea. -func (mr *MockDefaultApiMockRecorder) GetNetworkArea(ctx, organizationId, areaId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetNetworkArea(ctx, organizationId, areaId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkArea", reflect.TypeOf((*MockDefaultApi)(nil).GetNetworkArea), ctx, organizationId, areaId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkArea", reflect.TypeOf((*MockDefaultAPI)(nil).GetNetworkArea), ctx, organizationId, areaId) } // GetNetworkAreaExecute mocks base method. -func (m *MockDefaultApi) GetNetworkAreaExecute(ctx context.Context, organizationId, areaId string) (*iaas.NetworkArea, error) { +func (m *MockDefaultAPI) GetNetworkAreaExecute(r v2api.ApiGetNetworkAreaRequest) (*v2api.NetworkArea, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetNetworkAreaExecute", ctx, organizationId, areaId) - ret0, _ := ret[0].(*iaas.NetworkArea) + ret := m.ctrl.Call(m, "GetNetworkAreaExecute", r) + ret0, _ := ret[0].(*v2api.NetworkArea) ret1, _ := ret[1].(error) return ret0, ret1 } // GetNetworkAreaExecute indicates an expected call of GetNetworkAreaExecute. -func (mr *MockDefaultApiMockRecorder) GetNetworkAreaExecute(ctx, organizationId, areaId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetNetworkAreaExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkAreaExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetNetworkAreaExecute), ctx, organizationId, areaId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkAreaExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetNetworkAreaExecute), r) } // GetNetworkAreaRange mocks base method. -func (m *MockDefaultApi) GetNetworkAreaRange(ctx context.Context, organizationId, areaId, region, networkRangeId string) iaas.ApiGetNetworkAreaRangeRequest { +func (m *MockDefaultAPI) GetNetworkAreaRange(ctx context.Context, organizationId, areaId, region, networkRangeId string) v2api.ApiGetNetworkAreaRangeRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetNetworkAreaRange", ctx, organizationId, areaId, region, networkRangeId) - ret0, _ := ret[0].(iaas.ApiGetNetworkAreaRangeRequest) + ret0, _ := ret[0].(v2api.ApiGetNetworkAreaRangeRequest) return ret0 } // GetNetworkAreaRange indicates an expected call of GetNetworkAreaRange. -func (mr *MockDefaultApiMockRecorder) GetNetworkAreaRange(ctx, organizationId, areaId, region, networkRangeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetNetworkAreaRange(ctx, organizationId, areaId, region, networkRangeId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkAreaRange", reflect.TypeOf((*MockDefaultApi)(nil).GetNetworkAreaRange), ctx, organizationId, areaId, region, networkRangeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkAreaRange", reflect.TypeOf((*MockDefaultAPI)(nil).GetNetworkAreaRange), ctx, organizationId, areaId, region, networkRangeId) } // GetNetworkAreaRangeExecute mocks base method. -func (m *MockDefaultApi) GetNetworkAreaRangeExecute(ctx context.Context, organizationId, areaId, region, networkRangeId string) (*iaas.NetworkRange, error) { +func (m *MockDefaultAPI) GetNetworkAreaRangeExecute(r v2api.ApiGetNetworkAreaRangeRequest) (*v2api.NetworkRange, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetNetworkAreaRangeExecute", ctx, organizationId, areaId, region, networkRangeId) - ret0, _ := ret[0].(*iaas.NetworkRange) + ret := m.ctrl.Call(m, "GetNetworkAreaRangeExecute", r) + ret0, _ := ret[0].(*v2api.NetworkRange) ret1, _ := ret[1].(error) return ret0, ret1 } // GetNetworkAreaRangeExecute indicates an expected call of GetNetworkAreaRangeExecute. -func (mr *MockDefaultApiMockRecorder) GetNetworkAreaRangeExecute(ctx, organizationId, areaId, region, networkRangeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetNetworkAreaRangeExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkAreaRangeExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetNetworkAreaRangeExecute), ctx, organizationId, areaId, region, networkRangeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkAreaRangeExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetNetworkAreaRangeExecute), r) } // GetNetworkAreaRegion mocks base method. -func (m *MockDefaultApi) GetNetworkAreaRegion(ctx context.Context, organizationId, areaId, region string) iaas.ApiGetNetworkAreaRegionRequest { +func (m *MockDefaultAPI) GetNetworkAreaRegion(ctx context.Context, organizationId, areaId, region string) v2api.ApiGetNetworkAreaRegionRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetNetworkAreaRegion", ctx, organizationId, areaId, region) - ret0, _ := ret[0].(iaas.ApiGetNetworkAreaRegionRequest) + ret0, _ := ret[0].(v2api.ApiGetNetworkAreaRegionRequest) return ret0 } // GetNetworkAreaRegion indicates an expected call of GetNetworkAreaRegion. -func (mr *MockDefaultApiMockRecorder) GetNetworkAreaRegion(ctx, organizationId, areaId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetNetworkAreaRegion(ctx, organizationId, areaId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkAreaRegion", reflect.TypeOf((*MockDefaultApi)(nil).GetNetworkAreaRegion), ctx, organizationId, areaId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkAreaRegion", reflect.TypeOf((*MockDefaultAPI)(nil).GetNetworkAreaRegion), ctx, organizationId, areaId, region) } // GetNetworkAreaRegionExecute mocks base method. -func (m *MockDefaultApi) GetNetworkAreaRegionExecute(ctx context.Context, organizationId, areaId, region string) (*iaas.RegionalArea, error) { +func (m *MockDefaultAPI) GetNetworkAreaRegionExecute(r v2api.ApiGetNetworkAreaRegionRequest) (*v2api.RegionalArea, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetNetworkAreaRegionExecute", ctx, organizationId, areaId, region) - ret0, _ := ret[0].(*iaas.RegionalArea) + ret := m.ctrl.Call(m, "GetNetworkAreaRegionExecute", r) + ret0, _ := ret[0].(*v2api.RegionalArea) ret1, _ := ret[1].(error) return ret0, ret1 } // GetNetworkAreaRegionExecute indicates an expected call of GetNetworkAreaRegionExecute. -func (mr *MockDefaultApiMockRecorder) GetNetworkAreaRegionExecute(ctx, organizationId, areaId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetNetworkAreaRegionExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkAreaRegionExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetNetworkAreaRegionExecute), ctx, organizationId, areaId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkAreaRegionExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetNetworkAreaRegionExecute), r) } // GetNetworkAreaRoute mocks base method. -func (m *MockDefaultApi) GetNetworkAreaRoute(ctx context.Context, organizationId, areaId, region, routeId string) iaas.ApiGetNetworkAreaRouteRequest { +func (m *MockDefaultAPI) GetNetworkAreaRoute(ctx context.Context, organizationId, areaId, region, routeId string) v2api.ApiGetNetworkAreaRouteRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetNetworkAreaRoute", ctx, organizationId, areaId, region, routeId) - ret0, _ := ret[0].(iaas.ApiGetNetworkAreaRouteRequest) + ret0, _ := ret[0].(v2api.ApiGetNetworkAreaRouteRequest) return ret0 } // GetNetworkAreaRoute indicates an expected call of GetNetworkAreaRoute. -func (mr *MockDefaultApiMockRecorder) GetNetworkAreaRoute(ctx, organizationId, areaId, region, routeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetNetworkAreaRoute(ctx, organizationId, areaId, region, routeId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkAreaRoute", reflect.TypeOf((*MockDefaultApi)(nil).GetNetworkAreaRoute), ctx, organizationId, areaId, region, routeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkAreaRoute", reflect.TypeOf((*MockDefaultAPI)(nil).GetNetworkAreaRoute), ctx, organizationId, areaId, region, routeId) } // GetNetworkAreaRouteExecute mocks base method. -func (m *MockDefaultApi) GetNetworkAreaRouteExecute(ctx context.Context, organizationId, areaId, region, routeId string) (*iaas.Route, error) { +func (m *MockDefaultAPI) GetNetworkAreaRouteExecute(r v2api.ApiGetNetworkAreaRouteRequest) (*v2api.Route, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetNetworkAreaRouteExecute", ctx, organizationId, areaId, region, routeId) - ret0, _ := ret[0].(*iaas.Route) + ret := m.ctrl.Call(m, "GetNetworkAreaRouteExecute", r) + ret0, _ := ret[0].(*v2api.Route) ret1, _ := ret[1].(error) return ret0, ret1 } // GetNetworkAreaRouteExecute indicates an expected call of GetNetworkAreaRouteExecute. -func (mr *MockDefaultApiMockRecorder) GetNetworkAreaRouteExecute(ctx, organizationId, areaId, region, routeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetNetworkAreaRouteExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkAreaRouteExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetNetworkAreaRouteExecute), ctx, organizationId, areaId, region, routeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkAreaRouteExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetNetworkAreaRouteExecute), r) } // GetNetworkExecute mocks base method. -func (m *MockDefaultApi) GetNetworkExecute(ctx context.Context, projectId, region, networkId string) (*iaas.Network, error) { +func (m *MockDefaultAPI) GetNetworkExecute(r v2api.ApiGetNetworkRequest) (*v2api.Network, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetNetworkExecute", ctx, projectId, region, networkId) - ret0, _ := ret[0].(*iaas.Network) + ret := m.ctrl.Call(m, "GetNetworkExecute", r) + ret0, _ := ret[0].(*v2api.Network) ret1, _ := ret[1].(error) return ret0, ret1 } // GetNetworkExecute indicates an expected call of GetNetworkExecute. -func (mr *MockDefaultApiMockRecorder) GetNetworkExecute(ctx, projectId, region, networkId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetNetworkExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetNetworkExecute), ctx, projectId, region, networkId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNetworkExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetNetworkExecute), r) } // GetNic mocks base method. -func (m *MockDefaultApi) GetNic(ctx context.Context, projectId, region, networkId, nicId string) iaas.ApiGetNicRequest { +func (m *MockDefaultAPI) GetNic(ctx context.Context, projectId, region, networkId, nicId string) v2api.ApiGetNicRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetNic", ctx, projectId, region, networkId, nicId) - ret0, _ := ret[0].(iaas.ApiGetNicRequest) + ret0, _ := ret[0].(v2api.ApiGetNicRequest) return ret0 } // GetNic indicates an expected call of GetNic. -func (mr *MockDefaultApiMockRecorder) GetNic(ctx, projectId, region, networkId, nicId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetNic(ctx, projectId, region, networkId, nicId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNic", reflect.TypeOf((*MockDefaultApi)(nil).GetNic), ctx, projectId, region, networkId, nicId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNic", reflect.TypeOf((*MockDefaultAPI)(nil).GetNic), ctx, projectId, region, networkId, nicId) } // GetNicExecute mocks base method. -func (m *MockDefaultApi) GetNicExecute(ctx context.Context, projectId, region, networkId, nicId string) (*iaas.NIC, error) { +func (m *MockDefaultAPI) GetNicExecute(r v2api.ApiGetNicRequest) (*v2api.NIC, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetNicExecute", ctx, projectId, region, networkId, nicId) - ret0, _ := ret[0].(*iaas.NIC) + ret := m.ctrl.Call(m, "GetNicExecute", r) + ret0, _ := ret[0].(*v2api.NIC) ret1, _ := ret[1].(error) return ret0, ret1 } // GetNicExecute indicates an expected call of GetNicExecute. -func (mr *MockDefaultApiMockRecorder) GetNicExecute(ctx, projectId, region, networkId, nicId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetNicExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNicExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetNicExecute), ctx, projectId, region, networkId, nicId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNicExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetNicExecute), r) } // GetOrganizationRequest mocks base method. -func (m *MockDefaultApi) GetOrganizationRequest(ctx context.Context, organizationId, requestId string) iaas.ApiGetOrganizationRequestRequest { +func (m *MockDefaultAPI) GetOrganizationRequest(ctx context.Context, organizationId, requestId string) v2api.ApiGetOrganizationRequestRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetOrganizationRequest", ctx, organizationId, requestId) - ret0, _ := ret[0].(iaas.ApiGetOrganizationRequestRequest) + ret0, _ := ret[0].(v2api.ApiGetOrganizationRequestRequest) return ret0 } // GetOrganizationRequest indicates an expected call of GetOrganizationRequest. -func (mr *MockDefaultApiMockRecorder) GetOrganizationRequest(ctx, organizationId, requestId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetOrganizationRequest(ctx, organizationId, requestId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOrganizationRequest", reflect.TypeOf((*MockDefaultApi)(nil).GetOrganizationRequest), ctx, organizationId, requestId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOrganizationRequest", reflect.TypeOf((*MockDefaultAPI)(nil).GetOrganizationRequest), ctx, organizationId, requestId) } // GetOrganizationRequestExecute mocks base method. -func (m *MockDefaultApi) GetOrganizationRequestExecute(ctx context.Context, organizationId, requestId string) (*iaas.Request, error) { +func (m *MockDefaultAPI) GetOrganizationRequestExecute(r v2api.ApiGetOrganizationRequestRequest) (*v2api.Request, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOrganizationRequestExecute", ctx, organizationId, requestId) - ret0, _ := ret[0].(*iaas.Request) + ret := m.ctrl.Call(m, "GetOrganizationRequestExecute", r) + ret0, _ := ret[0].(*v2api.Request) ret1, _ := ret[1].(error) return ret0, ret1 } // GetOrganizationRequestExecute indicates an expected call of GetOrganizationRequestExecute. -func (mr *MockDefaultApiMockRecorder) GetOrganizationRequestExecute(ctx, organizationId, requestId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetOrganizationRequestExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOrganizationRequestExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetOrganizationRequestExecute), ctx, organizationId, requestId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOrganizationRequestExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetOrganizationRequestExecute), r) } // GetProjectDetails mocks base method. -func (m *MockDefaultApi) GetProjectDetails(ctx context.Context, projectId string) iaas.ApiGetProjectDetailsRequest { +func (m *MockDefaultAPI) GetProjectDetails(ctx context.Context, projectId string) v2api.ApiGetProjectDetailsRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetProjectDetails", ctx, projectId) - ret0, _ := ret[0].(iaas.ApiGetProjectDetailsRequest) + ret0, _ := ret[0].(v2api.ApiGetProjectDetailsRequest) return ret0 } // GetProjectDetails indicates an expected call of GetProjectDetails. -func (mr *MockDefaultApiMockRecorder) GetProjectDetails(ctx, projectId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetProjectDetails(ctx, projectId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProjectDetails", reflect.TypeOf((*MockDefaultApi)(nil).GetProjectDetails), ctx, projectId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProjectDetails", reflect.TypeOf((*MockDefaultAPI)(nil).GetProjectDetails), ctx, projectId) } // GetProjectDetailsExecute mocks base method. -func (m *MockDefaultApi) GetProjectDetailsExecute(ctx context.Context, projectId string) (*iaas.Project, error) { +func (m *MockDefaultAPI) GetProjectDetailsExecute(r v2api.ApiGetProjectDetailsRequest) (*v2api.Project, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetProjectDetailsExecute", ctx, projectId) - ret0, _ := ret[0].(*iaas.Project) + ret := m.ctrl.Call(m, "GetProjectDetailsExecute", r) + ret0, _ := ret[0].(*v2api.Project) ret1, _ := ret[1].(error) return ret0, ret1 } // GetProjectDetailsExecute indicates an expected call of GetProjectDetailsExecute. -func (mr *MockDefaultApiMockRecorder) GetProjectDetailsExecute(ctx, projectId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetProjectDetailsExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProjectDetailsExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetProjectDetailsExecute), ctx, projectId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProjectDetailsExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetProjectDetailsExecute), r) } // GetProjectNIC mocks base method. -func (m *MockDefaultApi) GetProjectNIC(ctx context.Context, projectId, region, nicId string) iaas.ApiGetProjectNICRequest { +func (m *MockDefaultAPI) GetProjectNIC(ctx context.Context, projectId, region, nicId string) v2api.ApiGetProjectNICRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetProjectNIC", ctx, projectId, region, nicId) - ret0, _ := ret[0].(iaas.ApiGetProjectNICRequest) + ret0, _ := ret[0].(v2api.ApiGetProjectNICRequest) return ret0 } // GetProjectNIC indicates an expected call of GetProjectNIC. -func (mr *MockDefaultApiMockRecorder) GetProjectNIC(ctx, projectId, region, nicId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetProjectNIC(ctx, projectId, region, nicId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProjectNIC", reflect.TypeOf((*MockDefaultApi)(nil).GetProjectNIC), ctx, projectId, region, nicId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProjectNIC", reflect.TypeOf((*MockDefaultAPI)(nil).GetProjectNIC), ctx, projectId, region, nicId) } // GetProjectNICExecute mocks base method. -func (m *MockDefaultApi) GetProjectNICExecute(ctx context.Context, projectId, region, nicId string) (*iaas.NIC, error) { +func (m *MockDefaultAPI) GetProjectNICExecute(r v2api.ApiGetProjectNICRequest) (*v2api.NIC, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetProjectNICExecute", ctx, projectId, region, nicId) - ret0, _ := ret[0].(*iaas.NIC) + ret := m.ctrl.Call(m, "GetProjectNICExecute", r) + ret0, _ := ret[0].(*v2api.NIC) ret1, _ := ret[1].(error) return ret0, ret1 } // GetProjectNICExecute indicates an expected call of GetProjectNICExecute. -func (mr *MockDefaultApiMockRecorder) GetProjectNICExecute(ctx, projectId, region, nicId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetProjectNICExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProjectNICExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetProjectNICExecute), ctx, projectId, region, nicId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProjectNICExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetProjectNICExecute), r) } // GetProjectRequest mocks base method. -func (m *MockDefaultApi) GetProjectRequest(ctx context.Context, projectId, region, requestId string) iaas.ApiGetProjectRequestRequest { +func (m *MockDefaultAPI) GetProjectRequest(ctx context.Context, projectId, region, requestId string) v2api.ApiGetProjectRequestRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetProjectRequest", ctx, projectId, region, requestId) - ret0, _ := ret[0].(iaas.ApiGetProjectRequestRequest) + ret0, _ := ret[0].(v2api.ApiGetProjectRequestRequest) return ret0 } // GetProjectRequest indicates an expected call of GetProjectRequest. -func (mr *MockDefaultApiMockRecorder) GetProjectRequest(ctx, projectId, region, requestId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetProjectRequest(ctx, projectId, region, requestId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProjectRequest", reflect.TypeOf((*MockDefaultApi)(nil).GetProjectRequest), ctx, projectId, region, requestId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProjectRequest", reflect.TypeOf((*MockDefaultAPI)(nil).GetProjectRequest), ctx, projectId, region, requestId) } // GetProjectRequestExecute mocks base method. -func (m *MockDefaultApi) GetProjectRequestExecute(ctx context.Context, projectId, region, requestId string) (*iaas.Request, error) { +func (m *MockDefaultAPI) GetProjectRequestExecute(r v2api.ApiGetProjectRequestRequest) (*v2api.Request, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetProjectRequestExecute", ctx, projectId, region, requestId) - ret0, _ := ret[0].(*iaas.Request) + ret := m.ctrl.Call(m, "GetProjectRequestExecute", r) + ret0, _ := ret[0].(*v2api.Request) ret1, _ := ret[1].(error) return ret0, ret1 } // GetProjectRequestExecute indicates an expected call of GetProjectRequestExecute. -func (mr *MockDefaultApiMockRecorder) GetProjectRequestExecute(ctx, projectId, region, requestId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetProjectRequestExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProjectRequestExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetProjectRequestExecute), ctx, projectId, region, requestId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProjectRequestExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetProjectRequestExecute), r) } // GetPublicIP mocks base method. -func (m *MockDefaultApi) GetPublicIP(ctx context.Context, projectId, region, publicIpId string) iaas.ApiGetPublicIPRequest { +func (m *MockDefaultAPI) GetPublicIP(ctx context.Context, projectId, region, publicIpId string) v2api.ApiGetPublicIPRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetPublicIP", ctx, projectId, region, publicIpId) - ret0, _ := ret[0].(iaas.ApiGetPublicIPRequest) + ret0, _ := ret[0].(v2api.ApiGetPublicIPRequest) return ret0 } // GetPublicIP indicates an expected call of GetPublicIP. -func (mr *MockDefaultApiMockRecorder) GetPublicIP(ctx, projectId, region, publicIpId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetPublicIP(ctx, projectId, region, publicIpId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPublicIP", reflect.TypeOf((*MockDefaultApi)(nil).GetPublicIP), ctx, projectId, region, publicIpId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPublicIP", reflect.TypeOf((*MockDefaultAPI)(nil).GetPublicIP), ctx, projectId, region, publicIpId) } // GetPublicIPExecute mocks base method. -func (m *MockDefaultApi) GetPublicIPExecute(ctx context.Context, projectId, region, publicIpId string) (*iaas.PublicIp, error) { +func (m *MockDefaultAPI) GetPublicIPExecute(r v2api.ApiGetPublicIPRequest) (*v2api.PublicIp, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetPublicIPExecute", ctx, projectId, region, publicIpId) - ret0, _ := ret[0].(*iaas.PublicIp) + ret := m.ctrl.Call(m, "GetPublicIPExecute", r) + ret0, _ := ret[0].(*v2api.PublicIp) ret1, _ := ret[1].(error) return ret0, ret1 } // GetPublicIPExecute indicates an expected call of GetPublicIPExecute. -func (mr *MockDefaultApiMockRecorder) GetPublicIPExecute(ctx, projectId, region, publicIpId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetPublicIPExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPublicIPExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetPublicIPExecute), ctx, projectId, region, publicIpId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPublicIPExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetPublicIPExecute), r) } // GetRouteOfRoutingTable mocks base method. -func (m *MockDefaultApi) GetRouteOfRoutingTable(ctx context.Context, organizationId, areaId, region, routingTableId, routeId string) iaas.ApiGetRouteOfRoutingTableRequest { +func (m *MockDefaultAPI) GetRouteOfRoutingTable(ctx context.Context, organizationId, areaId, region, routingTableId, routeId string) v2api.ApiGetRouteOfRoutingTableRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetRouteOfRoutingTable", ctx, organizationId, areaId, region, routingTableId, routeId) - ret0, _ := ret[0].(iaas.ApiGetRouteOfRoutingTableRequest) + ret0, _ := ret[0].(v2api.ApiGetRouteOfRoutingTableRequest) return ret0 } // GetRouteOfRoutingTable indicates an expected call of GetRouteOfRoutingTable. -func (mr *MockDefaultApiMockRecorder) GetRouteOfRoutingTable(ctx, organizationId, areaId, region, routingTableId, routeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetRouteOfRoutingTable(ctx, organizationId, areaId, region, routingTableId, routeId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRouteOfRoutingTable", reflect.TypeOf((*MockDefaultApi)(nil).GetRouteOfRoutingTable), ctx, organizationId, areaId, region, routingTableId, routeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRouteOfRoutingTable", reflect.TypeOf((*MockDefaultAPI)(nil).GetRouteOfRoutingTable), ctx, organizationId, areaId, region, routingTableId, routeId) } // GetRouteOfRoutingTableExecute mocks base method. -func (m *MockDefaultApi) GetRouteOfRoutingTableExecute(ctx context.Context, organizationId, areaId, region, routingTableId, routeId string) (*iaas.Route, error) { +func (m *MockDefaultAPI) GetRouteOfRoutingTableExecute(r v2api.ApiGetRouteOfRoutingTableRequest) (*v2api.Route, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetRouteOfRoutingTableExecute", ctx, organizationId, areaId, region, routingTableId, routeId) - ret0, _ := ret[0].(*iaas.Route) + ret := m.ctrl.Call(m, "GetRouteOfRoutingTableExecute", r) + ret0, _ := ret[0].(*v2api.Route) ret1, _ := ret[1].(error) return ret0, ret1 } // GetRouteOfRoutingTableExecute indicates an expected call of GetRouteOfRoutingTableExecute. -func (mr *MockDefaultApiMockRecorder) GetRouteOfRoutingTableExecute(ctx, organizationId, areaId, region, routingTableId, routeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetRouteOfRoutingTableExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRouteOfRoutingTableExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetRouteOfRoutingTableExecute), ctx, organizationId, areaId, region, routingTableId, routeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRouteOfRoutingTableExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetRouteOfRoutingTableExecute), r) } // GetRoutingTableOfArea mocks base method. -func (m *MockDefaultApi) GetRoutingTableOfArea(ctx context.Context, organizationId, areaId, region, routingTableId string) iaas.ApiGetRoutingTableOfAreaRequest { +func (m *MockDefaultAPI) GetRoutingTableOfArea(ctx context.Context, organizationId, areaId, region, routingTableId string) v2api.ApiGetRoutingTableOfAreaRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetRoutingTableOfArea", ctx, organizationId, areaId, region, routingTableId) - ret0, _ := ret[0].(iaas.ApiGetRoutingTableOfAreaRequest) + ret0, _ := ret[0].(v2api.ApiGetRoutingTableOfAreaRequest) return ret0 } // GetRoutingTableOfArea indicates an expected call of GetRoutingTableOfArea. -func (mr *MockDefaultApiMockRecorder) GetRoutingTableOfArea(ctx, organizationId, areaId, region, routingTableId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetRoutingTableOfArea(ctx, organizationId, areaId, region, routingTableId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRoutingTableOfArea", reflect.TypeOf((*MockDefaultApi)(nil).GetRoutingTableOfArea), ctx, organizationId, areaId, region, routingTableId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRoutingTableOfArea", reflect.TypeOf((*MockDefaultAPI)(nil).GetRoutingTableOfArea), ctx, organizationId, areaId, region, routingTableId) } // GetRoutingTableOfAreaExecute mocks base method. -func (m *MockDefaultApi) GetRoutingTableOfAreaExecute(ctx context.Context, organizationId, areaId, region, routingTableId string) (*iaas.RoutingTable, error) { +func (m *MockDefaultAPI) GetRoutingTableOfAreaExecute(r v2api.ApiGetRoutingTableOfAreaRequest) (*v2api.RoutingTable, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetRoutingTableOfAreaExecute", ctx, organizationId, areaId, region, routingTableId) - ret0, _ := ret[0].(*iaas.RoutingTable) + ret := m.ctrl.Call(m, "GetRoutingTableOfAreaExecute", r) + ret0, _ := ret[0].(*v2api.RoutingTable) ret1, _ := ret[1].(error) return ret0, ret1 } // GetRoutingTableOfAreaExecute indicates an expected call of GetRoutingTableOfAreaExecute. -func (mr *MockDefaultApiMockRecorder) GetRoutingTableOfAreaExecute(ctx, organizationId, areaId, region, routingTableId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetRoutingTableOfAreaExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRoutingTableOfAreaExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetRoutingTableOfAreaExecute), ctx, organizationId, areaId, region, routingTableId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRoutingTableOfAreaExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetRoutingTableOfAreaExecute), r) } // GetSecurityGroup mocks base method. -func (m *MockDefaultApi) GetSecurityGroup(ctx context.Context, projectId, region, securityGroupId string) iaas.ApiGetSecurityGroupRequest { +func (m *MockDefaultAPI) GetSecurityGroup(ctx context.Context, projectId, region, securityGroupId string) v2api.ApiGetSecurityGroupRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetSecurityGroup", ctx, projectId, region, securityGroupId) - ret0, _ := ret[0].(iaas.ApiGetSecurityGroupRequest) + ret0, _ := ret[0].(v2api.ApiGetSecurityGroupRequest) return ret0 } // GetSecurityGroup indicates an expected call of GetSecurityGroup. -func (mr *MockDefaultApiMockRecorder) GetSecurityGroup(ctx, projectId, region, securityGroupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetSecurityGroup(ctx, projectId, region, securityGroupId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecurityGroup", reflect.TypeOf((*MockDefaultApi)(nil).GetSecurityGroup), ctx, projectId, region, securityGroupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecurityGroup", reflect.TypeOf((*MockDefaultAPI)(nil).GetSecurityGroup), ctx, projectId, region, securityGroupId) } // GetSecurityGroupExecute mocks base method. -func (m *MockDefaultApi) GetSecurityGroupExecute(ctx context.Context, projectId, region, securityGroupId string) (*iaas.SecurityGroup, error) { +func (m *MockDefaultAPI) GetSecurityGroupExecute(r v2api.ApiGetSecurityGroupRequest) (*v2api.SecurityGroup, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetSecurityGroupExecute", ctx, projectId, region, securityGroupId) - ret0, _ := ret[0].(*iaas.SecurityGroup) + ret := m.ctrl.Call(m, "GetSecurityGroupExecute", r) + ret0, _ := ret[0].(*v2api.SecurityGroup) ret1, _ := ret[1].(error) return ret0, ret1 } // GetSecurityGroupExecute indicates an expected call of GetSecurityGroupExecute. -func (mr *MockDefaultApiMockRecorder) GetSecurityGroupExecute(ctx, projectId, region, securityGroupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetSecurityGroupExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecurityGroupExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetSecurityGroupExecute), ctx, projectId, region, securityGroupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecurityGroupExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetSecurityGroupExecute), r) } // GetSecurityGroupRule mocks base method. -func (m *MockDefaultApi) GetSecurityGroupRule(ctx context.Context, projectId, region, securityGroupId, securityGroupRuleId string) iaas.ApiGetSecurityGroupRuleRequest { +func (m *MockDefaultAPI) GetSecurityGroupRule(ctx context.Context, projectId, region, securityGroupId, securityGroupRuleId string) v2api.ApiGetSecurityGroupRuleRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetSecurityGroupRule", ctx, projectId, region, securityGroupId, securityGroupRuleId) - ret0, _ := ret[0].(iaas.ApiGetSecurityGroupRuleRequest) + ret0, _ := ret[0].(v2api.ApiGetSecurityGroupRuleRequest) return ret0 } // GetSecurityGroupRule indicates an expected call of GetSecurityGroupRule. -func (mr *MockDefaultApiMockRecorder) GetSecurityGroupRule(ctx, projectId, region, securityGroupId, securityGroupRuleId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetSecurityGroupRule(ctx, projectId, region, securityGroupId, securityGroupRuleId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecurityGroupRule", reflect.TypeOf((*MockDefaultApi)(nil).GetSecurityGroupRule), ctx, projectId, region, securityGroupId, securityGroupRuleId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecurityGroupRule", reflect.TypeOf((*MockDefaultAPI)(nil).GetSecurityGroupRule), ctx, projectId, region, securityGroupId, securityGroupRuleId) } // GetSecurityGroupRuleExecute mocks base method. -func (m *MockDefaultApi) GetSecurityGroupRuleExecute(ctx context.Context, projectId, region, securityGroupId, securityGroupRuleId string) (*iaas.SecurityGroupRule, error) { +func (m *MockDefaultAPI) GetSecurityGroupRuleExecute(r v2api.ApiGetSecurityGroupRuleRequest) (*v2api.SecurityGroupRule, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetSecurityGroupRuleExecute", ctx, projectId, region, securityGroupId, securityGroupRuleId) - ret0, _ := ret[0].(*iaas.SecurityGroupRule) + ret := m.ctrl.Call(m, "GetSecurityGroupRuleExecute", r) + ret0, _ := ret[0].(*v2api.SecurityGroupRule) ret1, _ := ret[1].(error) return ret0, ret1 } // GetSecurityGroupRuleExecute indicates an expected call of GetSecurityGroupRuleExecute. -func (mr *MockDefaultApiMockRecorder) GetSecurityGroupRuleExecute(ctx, projectId, region, securityGroupId, securityGroupRuleId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetSecurityGroupRuleExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecurityGroupRuleExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetSecurityGroupRuleExecute), ctx, projectId, region, securityGroupId, securityGroupRuleId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecurityGroupRuleExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetSecurityGroupRuleExecute), r) } // GetServer mocks base method. -func (m *MockDefaultApi) GetServer(ctx context.Context, projectId, region, serverId string) iaas.ApiGetServerRequest { +func (m *MockDefaultAPI) GetServer(ctx context.Context, projectId, region, serverId string) v2api.ApiGetServerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetServer", ctx, projectId, region, serverId) - ret0, _ := ret[0].(iaas.ApiGetServerRequest) + ret0, _ := ret[0].(v2api.ApiGetServerRequest) return ret0 } // GetServer indicates an expected call of GetServer. -func (mr *MockDefaultApiMockRecorder) GetServer(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetServer(ctx, projectId, region, serverId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetServer", reflect.TypeOf((*MockDefaultApi)(nil).GetServer), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetServer", reflect.TypeOf((*MockDefaultAPI)(nil).GetServer), ctx, projectId, region, serverId) } // GetServerConsole mocks base method. -func (m *MockDefaultApi) GetServerConsole(ctx context.Context, projectId, region, serverId string) iaas.ApiGetServerConsoleRequest { +func (m *MockDefaultAPI) GetServerConsole(ctx context.Context, projectId, region, serverId string) v2api.ApiGetServerConsoleRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetServerConsole", ctx, projectId, region, serverId) - ret0, _ := ret[0].(iaas.ApiGetServerConsoleRequest) + ret0, _ := ret[0].(v2api.ApiGetServerConsoleRequest) return ret0 } // GetServerConsole indicates an expected call of GetServerConsole. -func (mr *MockDefaultApiMockRecorder) GetServerConsole(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetServerConsole(ctx, projectId, region, serverId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetServerConsole", reflect.TypeOf((*MockDefaultApi)(nil).GetServerConsole), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetServerConsole", reflect.TypeOf((*MockDefaultAPI)(nil).GetServerConsole), ctx, projectId, region, serverId) } // GetServerConsoleExecute mocks base method. -func (m *MockDefaultApi) GetServerConsoleExecute(ctx context.Context, projectId, region, serverId string) (*iaas.ServerConsoleUrl, error) { +func (m *MockDefaultAPI) GetServerConsoleExecute(r v2api.ApiGetServerConsoleRequest) (*v2api.ServerConsoleUrl, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetServerConsoleExecute", ctx, projectId, region, serverId) - ret0, _ := ret[0].(*iaas.ServerConsoleUrl) + ret := m.ctrl.Call(m, "GetServerConsoleExecute", r) + ret0, _ := ret[0].(*v2api.ServerConsoleUrl) ret1, _ := ret[1].(error) return ret0, ret1 } // GetServerConsoleExecute indicates an expected call of GetServerConsoleExecute. -func (mr *MockDefaultApiMockRecorder) GetServerConsoleExecute(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetServerConsoleExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetServerConsoleExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetServerConsoleExecute), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetServerConsoleExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetServerConsoleExecute), r) } // GetServerExecute mocks base method. -func (m *MockDefaultApi) GetServerExecute(ctx context.Context, projectId, region, serverId string) (*iaas.Server, error) { +func (m *MockDefaultAPI) GetServerExecute(r v2api.ApiGetServerRequest) (*v2api.Server, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetServerExecute", ctx, projectId, region, serverId) - ret0, _ := ret[0].(*iaas.Server) + ret := m.ctrl.Call(m, "GetServerExecute", r) + ret0, _ := ret[0].(*v2api.Server) ret1, _ := ret[1].(error) return ret0, ret1 } // GetServerExecute indicates an expected call of GetServerExecute. -func (mr *MockDefaultApiMockRecorder) GetServerExecute(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetServerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetServerExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetServerExecute), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetServerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetServerExecute), r) } // GetServerLog mocks base method. -func (m *MockDefaultApi) GetServerLog(ctx context.Context, projectId, region, serverId string) iaas.ApiGetServerLogRequest { +func (m *MockDefaultAPI) GetServerLog(ctx context.Context, projectId, region, serverId string) v2api.ApiGetServerLogRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetServerLog", ctx, projectId, region, serverId) - ret0, _ := ret[0].(iaas.ApiGetServerLogRequest) + ret0, _ := ret[0].(v2api.ApiGetServerLogRequest) return ret0 } // GetServerLog indicates an expected call of GetServerLog. -func (mr *MockDefaultApiMockRecorder) GetServerLog(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetServerLog(ctx, projectId, region, serverId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetServerLog", reflect.TypeOf((*MockDefaultApi)(nil).GetServerLog), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetServerLog", reflect.TypeOf((*MockDefaultAPI)(nil).GetServerLog), ctx, projectId, region, serverId) } // GetServerLogExecute mocks base method. -func (m *MockDefaultApi) GetServerLogExecute(ctx context.Context, projectId, region, serverId string) (*iaas.GetServerLog200Response, error) { +func (m *MockDefaultAPI) GetServerLogExecute(r v2api.ApiGetServerLogRequest) (*v2api.GetServerLog200Response, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetServerLogExecute", ctx, projectId, region, serverId) - ret0, _ := ret[0].(*iaas.GetServerLog200Response) + ret := m.ctrl.Call(m, "GetServerLogExecute", r) + ret0, _ := ret[0].(*v2api.GetServerLog200Response) ret1, _ := ret[1].(error) return ret0, ret1 } // GetServerLogExecute indicates an expected call of GetServerLogExecute. -func (mr *MockDefaultApiMockRecorder) GetServerLogExecute(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetServerLogExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetServerLogExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetServerLogExecute), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetServerLogExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetServerLogExecute), r) } // GetSnapshot mocks base method. -func (m *MockDefaultApi) GetSnapshot(ctx context.Context, projectId, region, snapshotId string) iaas.ApiGetSnapshotRequest { +func (m *MockDefaultAPI) GetSnapshot(ctx context.Context, projectId, region, snapshotId string) v2api.ApiGetSnapshotRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetSnapshot", ctx, projectId, region, snapshotId) - ret0, _ := ret[0].(iaas.ApiGetSnapshotRequest) + ret0, _ := ret[0].(v2api.ApiGetSnapshotRequest) return ret0 } // GetSnapshot indicates an expected call of GetSnapshot. -func (mr *MockDefaultApiMockRecorder) GetSnapshot(ctx, projectId, region, snapshotId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetSnapshot(ctx, projectId, region, snapshotId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSnapshot", reflect.TypeOf((*MockDefaultApi)(nil).GetSnapshot), ctx, projectId, region, snapshotId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSnapshot", reflect.TypeOf((*MockDefaultAPI)(nil).GetSnapshot), ctx, projectId, region, snapshotId) } // GetSnapshotExecute mocks base method. -func (m *MockDefaultApi) GetSnapshotExecute(ctx context.Context, projectId, region, snapshotId string) (*iaas.Snapshot, error) { +func (m *MockDefaultAPI) GetSnapshotExecute(r v2api.ApiGetSnapshotRequest) (*v2api.Snapshot, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetSnapshotExecute", ctx, projectId, region, snapshotId) - ret0, _ := ret[0].(*iaas.Snapshot) + ret := m.ctrl.Call(m, "GetSnapshotExecute", r) + ret0, _ := ret[0].(*v2api.Snapshot) ret1, _ := ret[1].(error) return ret0, ret1 } // GetSnapshotExecute indicates an expected call of GetSnapshotExecute. -func (mr *MockDefaultApiMockRecorder) GetSnapshotExecute(ctx, projectId, region, snapshotId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetSnapshotExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSnapshotExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetSnapshotExecute), ctx, projectId, region, snapshotId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSnapshotExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetSnapshotExecute), r) } // GetVolume mocks base method. -func (m *MockDefaultApi) GetVolume(ctx context.Context, projectId, region, volumeId string) iaas.ApiGetVolumeRequest { +func (m *MockDefaultAPI) GetVolume(ctx context.Context, projectId, region, volumeId string) v2api.ApiGetVolumeRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetVolume", ctx, projectId, region, volumeId) - ret0, _ := ret[0].(iaas.ApiGetVolumeRequest) + ret0, _ := ret[0].(v2api.ApiGetVolumeRequest) return ret0 } // GetVolume indicates an expected call of GetVolume. -func (mr *MockDefaultApiMockRecorder) GetVolume(ctx, projectId, region, volumeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetVolume(ctx, projectId, region, volumeId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolume", reflect.TypeOf((*MockDefaultApi)(nil).GetVolume), ctx, projectId, region, volumeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolume", reflect.TypeOf((*MockDefaultAPI)(nil).GetVolume), ctx, projectId, region, volumeId) } // GetVolumeExecute mocks base method. -func (m *MockDefaultApi) GetVolumeExecute(ctx context.Context, projectId, region, volumeId string) (*iaas.Volume, error) { +func (m *MockDefaultAPI) GetVolumeExecute(r v2api.ApiGetVolumeRequest) (*v2api.Volume, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetVolumeExecute", ctx, projectId, region, volumeId) - ret0, _ := ret[0].(*iaas.Volume) + ret := m.ctrl.Call(m, "GetVolumeExecute", r) + ret0, _ := ret[0].(*v2api.Volume) ret1, _ := ret[1].(error) return ret0, ret1 } // GetVolumeExecute indicates an expected call of GetVolumeExecute. -func (mr *MockDefaultApiMockRecorder) GetVolumeExecute(ctx, projectId, region, volumeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetVolumeExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolumeExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetVolumeExecute), ctx, projectId, region, volumeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolumeExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetVolumeExecute), r) } // GetVolumePerformanceClass mocks base method. -func (m *MockDefaultApi) GetVolumePerformanceClass(ctx context.Context, projectId, region, volumePerformanceClass string) iaas.ApiGetVolumePerformanceClassRequest { +func (m *MockDefaultAPI) GetVolumePerformanceClass(ctx context.Context, projectId, region, volumePerformanceClass string) v2api.ApiGetVolumePerformanceClassRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetVolumePerformanceClass", ctx, projectId, region, volumePerformanceClass) - ret0, _ := ret[0].(iaas.ApiGetVolumePerformanceClassRequest) + ret0, _ := ret[0].(v2api.ApiGetVolumePerformanceClassRequest) return ret0 } // GetVolumePerformanceClass indicates an expected call of GetVolumePerformanceClass. -func (mr *MockDefaultApiMockRecorder) GetVolumePerformanceClass(ctx, projectId, region, volumePerformanceClass any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetVolumePerformanceClass(ctx, projectId, region, volumePerformanceClass any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolumePerformanceClass", reflect.TypeOf((*MockDefaultApi)(nil).GetVolumePerformanceClass), ctx, projectId, region, volumePerformanceClass) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolumePerformanceClass", reflect.TypeOf((*MockDefaultAPI)(nil).GetVolumePerformanceClass), ctx, projectId, region, volumePerformanceClass) } // GetVolumePerformanceClassExecute mocks base method. -func (m *MockDefaultApi) GetVolumePerformanceClassExecute(ctx context.Context, projectId, region, volumePerformanceClass string) (*iaas.VolumePerformanceClass, error) { +func (m *MockDefaultAPI) GetVolumePerformanceClassExecute(r v2api.ApiGetVolumePerformanceClassRequest) (*v2api.VolumePerformanceClass, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetVolumePerformanceClassExecute", ctx, projectId, region, volumePerformanceClass) - ret0, _ := ret[0].(*iaas.VolumePerformanceClass) + ret := m.ctrl.Call(m, "GetVolumePerformanceClassExecute", r) + ret0, _ := ret[0].(*v2api.VolumePerformanceClass) ret1, _ := ret[1].(error) return ret0, ret1 } // GetVolumePerformanceClassExecute indicates an expected call of GetVolumePerformanceClassExecute. -func (mr *MockDefaultApiMockRecorder) GetVolumePerformanceClassExecute(ctx, projectId, region, volumePerformanceClass any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetVolumePerformanceClassExecute(r any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolumePerformanceClassExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetVolumePerformanceClassExecute), r) +} + +// ImageFromVolume mocks base method. +func (m *MockDefaultAPI) ImageFromVolume(ctx context.Context, projectId, volumeId, region string) v2api.ApiImageFromVolumeRequest { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ImageFromVolume", ctx, projectId, volumeId, region) + ret0, _ := ret[0].(v2api.ApiImageFromVolumeRequest) + return ret0 +} + +// ImageFromVolume indicates an expected call of ImageFromVolume. +func (mr *MockDefaultAPIMockRecorder) ImageFromVolume(ctx, projectId, volumeId, region any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ImageFromVolume", reflect.TypeOf((*MockDefaultAPI)(nil).ImageFromVolume), ctx, projectId, volumeId, region) +} + +// ImageFromVolumeExecute mocks base method. +func (m *MockDefaultAPI) ImageFromVolumeExecute(r v2api.ApiImageFromVolumeRequest) (*v2api.Image, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ImageFromVolumeExecute", r) + ret0, _ := ret[0].(*v2api.Image) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ImageFromVolumeExecute indicates an expected call of ImageFromVolumeExecute. +func (mr *MockDefaultAPIMockRecorder) ImageFromVolumeExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolumePerformanceClassExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetVolumePerformanceClassExecute), ctx, projectId, region, volumePerformanceClass) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ImageFromVolumeExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ImageFromVolumeExecute), r) } // ListAffinityGroups mocks base method. -func (m *MockDefaultApi) ListAffinityGroups(ctx context.Context, projectId, region string) iaas.ApiListAffinityGroupsRequest { +func (m *MockDefaultAPI) ListAffinityGroups(ctx context.Context, projectId, region string) v2api.ApiListAffinityGroupsRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListAffinityGroups", ctx, projectId, region) - ret0, _ := ret[0].(iaas.ApiListAffinityGroupsRequest) + ret0, _ := ret[0].(v2api.ApiListAffinityGroupsRequest) return ret0 } // ListAffinityGroups indicates an expected call of ListAffinityGroups. -func (mr *MockDefaultApiMockRecorder) ListAffinityGroups(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListAffinityGroups(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAffinityGroups", reflect.TypeOf((*MockDefaultApi)(nil).ListAffinityGroups), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAffinityGroups", reflect.TypeOf((*MockDefaultAPI)(nil).ListAffinityGroups), ctx, projectId, region) } // ListAffinityGroupsExecute mocks base method. -func (m *MockDefaultApi) ListAffinityGroupsExecute(ctx context.Context, projectId, region string) (*iaas.AffinityGroupListResponse, error) { +func (m *MockDefaultAPI) ListAffinityGroupsExecute(r v2api.ApiListAffinityGroupsRequest) (*v2api.AffinityGroupListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListAffinityGroupsExecute", ctx, projectId, region) - ret0, _ := ret[0].(*iaas.AffinityGroupListResponse) + ret := m.ctrl.Call(m, "ListAffinityGroupsExecute", r) + ret0, _ := ret[0].(*v2api.AffinityGroupListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListAffinityGroupsExecute indicates an expected call of ListAffinityGroupsExecute. -func (mr *MockDefaultApiMockRecorder) ListAffinityGroupsExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListAffinityGroupsExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAffinityGroupsExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListAffinityGroupsExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAffinityGroupsExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListAffinityGroupsExecute), r) } // ListAttachedVolumes mocks base method. -func (m *MockDefaultApi) ListAttachedVolumes(ctx context.Context, projectId, region, serverId string) iaas.ApiListAttachedVolumesRequest { +func (m *MockDefaultAPI) ListAttachedVolumes(ctx context.Context, projectId, region, serverId string) v2api.ApiListAttachedVolumesRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListAttachedVolumes", ctx, projectId, region, serverId) - ret0, _ := ret[0].(iaas.ApiListAttachedVolumesRequest) + ret0, _ := ret[0].(v2api.ApiListAttachedVolumesRequest) return ret0 } // ListAttachedVolumes indicates an expected call of ListAttachedVolumes. -func (mr *MockDefaultApiMockRecorder) ListAttachedVolumes(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListAttachedVolumes(ctx, projectId, region, serverId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAttachedVolumes", reflect.TypeOf((*MockDefaultApi)(nil).ListAttachedVolumes), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAttachedVolumes", reflect.TypeOf((*MockDefaultAPI)(nil).ListAttachedVolumes), ctx, projectId, region, serverId) } // ListAttachedVolumesExecute mocks base method. -func (m *MockDefaultApi) ListAttachedVolumesExecute(ctx context.Context, projectId, region, serverId string) (*iaas.VolumeAttachmentListResponse, error) { +func (m *MockDefaultAPI) ListAttachedVolumesExecute(r v2api.ApiListAttachedVolumesRequest) (*v2api.VolumeAttachmentListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListAttachedVolumesExecute", ctx, projectId, region, serverId) - ret0, _ := ret[0].(*iaas.VolumeAttachmentListResponse) + ret := m.ctrl.Call(m, "ListAttachedVolumesExecute", r) + ret0, _ := ret[0].(*v2api.VolumeAttachmentListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListAttachedVolumesExecute indicates an expected call of ListAttachedVolumesExecute. -func (mr *MockDefaultApiMockRecorder) ListAttachedVolumesExecute(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListAttachedVolumesExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAttachedVolumesExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListAttachedVolumesExecute), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAttachedVolumesExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListAttachedVolumesExecute), r) } // ListAvailabilityZones mocks base method. -func (m *MockDefaultApi) ListAvailabilityZones(ctx context.Context, region string) iaas.ApiListAvailabilityZonesRequest { +func (m *MockDefaultAPI) ListAvailabilityZones(ctx context.Context, region string) v2api.ApiListAvailabilityZonesRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListAvailabilityZones", ctx, region) - ret0, _ := ret[0].(iaas.ApiListAvailabilityZonesRequest) + ret0, _ := ret[0].(v2api.ApiListAvailabilityZonesRequest) return ret0 } // ListAvailabilityZones indicates an expected call of ListAvailabilityZones. -func (mr *MockDefaultApiMockRecorder) ListAvailabilityZones(ctx, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListAvailabilityZones(ctx, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAvailabilityZones", reflect.TypeOf((*MockDefaultApi)(nil).ListAvailabilityZones), ctx, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAvailabilityZones", reflect.TypeOf((*MockDefaultAPI)(nil).ListAvailabilityZones), ctx, region) } // ListAvailabilityZonesExecute mocks base method. -func (m *MockDefaultApi) ListAvailabilityZonesExecute(ctx context.Context, region string) (*iaas.AvailabilityZoneListResponse, error) { +func (m *MockDefaultAPI) ListAvailabilityZonesExecute(r v2api.ApiListAvailabilityZonesRequest) (*v2api.AvailabilityZoneListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListAvailabilityZonesExecute", ctx, region) - ret0, _ := ret[0].(*iaas.AvailabilityZoneListResponse) + ret := m.ctrl.Call(m, "ListAvailabilityZonesExecute", r) + ret0, _ := ret[0].(*v2api.AvailabilityZoneListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListAvailabilityZonesExecute indicates an expected call of ListAvailabilityZonesExecute. -func (mr *MockDefaultApiMockRecorder) ListAvailabilityZonesExecute(ctx, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListAvailabilityZonesExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAvailabilityZonesExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListAvailabilityZonesExecute), ctx, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAvailabilityZonesExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListAvailabilityZonesExecute), r) } // ListBackups mocks base method. -func (m *MockDefaultApi) ListBackups(ctx context.Context, projectId, region string) iaas.ApiListBackupsRequest { +func (m *MockDefaultAPI) ListBackups(ctx context.Context, projectId, region string) v2api.ApiListBackupsRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListBackups", ctx, projectId, region) - ret0, _ := ret[0].(iaas.ApiListBackupsRequest) + ret0, _ := ret[0].(v2api.ApiListBackupsRequest) return ret0 } // ListBackups indicates an expected call of ListBackups. -func (mr *MockDefaultApiMockRecorder) ListBackups(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListBackups(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBackups", reflect.TypeOf((*MockDefaultApi)(nil).ListBackups), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBackups", reflect.TypeOf((*MockDefaultAPI)(nil).ListBackups), ctx, projectId, region) } // ListBackupsExecute mocks base method. -func (m *MockDefaultApi) ListBackupsExecute(ctx context.Context, projectId, region string) (*iaas.BackupListResponse, error) { +func (m *MockDefaultAPI) ListBackupsExecute(r v2api.ApiListBackupsRequest) (*v2api.BackupListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListBackupsExecute", ctx, projectId, region) - ret0, _ := ret[0].(*iaas.BackupListResponse) + ret := m.ctrl.Call(m, "ListBackupsExecute", r) + ret0, _ := ret[0].(*v2api.BackupListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListBackupsExecute indicates an expected call of ListBackupsExecute. -func (mr *MockDefaultApiMockRecorder) ListBackupsExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListBackupsExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBackupsExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListBackupsExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBackupsExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListBackupsExecute), r) } // ListImages mocks base method. -func (m *MockDefaultApi) ListImages(ctx context.Context, projectId, region string) iaas.ApiListImagesRequest { +func (m *MockDefaultAPI) ListImages(ctx context.Context, projectId, region string) v2api.ApiListImagesRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListImages", ctx, projectId, region) - ret0, _ := ret[0].(iaas.ApiListImagesRequest) + ret0, _ := ret[0].(v2api.ApiListImagesRequest) return ret0 } // ListImages indicates an expected call of ListImages. -func (mr *MockDefaultApiMockRecorder) ListImages(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListImages(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListImages", reflect.TypeOf((*MockDefaultApi)(nil).ListImages), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListImages", reflect.TypeOf((*MockDefaultAPI)(nil).ListImages), ctx, projectId, region) } // ListImagesExecute mocks base method. -func (m *MockDefaultApi) ListImagesExecute(ctx context.Context, projectId, region string) (*iaas.ImageListResponse, error) { +func (m *MockDefaultAPI) ListImagesExecute(r v2api.ApiListImagesRequest) (*v2api.ImageListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListImagesExecute", ctx, projectId, region) - ret0, _ := ret[0].(*iaas.ImageListResponse) + ret := m.ctrl.Call(m, "ListImagesExecute", r) + ret0, _ := ret[0].(*v2api.ImageListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListImagesExecute indicates an expected call of ListImagesExecute. -func (mr *MockDefaultApiMockRecorder) ListImagesExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListImagesExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListImagesExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListImagesExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListImagesExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListImagesExecute), r) } // ListKeyPairs mocks base method. -func (m *MockDefaultApi) ListKeyPairs(ctx context.Context) iaas.ApiListKeyPairsRequest { +func (m *MockDefaultAPI) ListKeyPairs(ctx context.Context) v2api.ApiListKeyPairsRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListKeyPairs", ctx) - ret0, _ := ret[0].(iaas.ApiListKeyPairsRequest) + ret0, _ := ret[0].(v2api.ApiListKeyPairsRequest) return ret0 } // ListKeyPairs indicates an expected call of ListKeyPairs. -func (mr *MockDefaultApiMockRecorder) ListKeyPairs(ctx any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListKeyPairs(ctx any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListKeyPairs", reflect.TypeOf((*MockDefaultApi)(nil).ListKeyPairs), ctx) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListKeyPairs", reflect.TypeOf((*MockDefaultAPI)(nil).ListKeyPairs), ctx) } // ListKeyPairsExecute mocks base method. -func (m *MockDefaultApi) ListKeyPairsExecute(ctx context.Context) (*iaas.KeyPairListResponse, error) { +func (m *MockDefaultAPI) ListKeyPairsExecute(r v2api.ApiListKeyPairsRequest) (*v2api.KeyPairListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListKeyPairsExecute", ctx) - ret0, _ := ret[0].(*iaas.KeyPairListResponse) + ret := m.ctrl.Call(m, "ListKeyPairsExecute", r) + ret0, _ := ret[0].(*v2api.KeyPairListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListKeyPairsExecute indicates an expected call of ListKeyPairsExecute. -func (mr *MockDefaultApiMockRecorder) ListKeyPairsExecute(ctx any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListKeyPairsExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListKeyPairsExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListKeyPairsExecute), ctx) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListKeyPairsExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListKeyPairsExecute), r) } // ListMachineTypes mocks base method. -func (m *MockDefaultApi) ListMachineTypes(ctx context.Context, projectId, region string) iaas.ApiListMachineTypesRequest { +func (m *MockDefaultAPI) ListMachineTypes(ctx context.Context, projectId, region string) v2api.ApiListMachineTypesRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListMachineTypes", ctx, projectId, region) - ret0, _ := ret[0].(iaas.ApiListMachineTypesRequest) + ret0, _ := ret[0].(v2api.ApiListMachineTypesRequest) return ret0 } // ListMachineTypes indicates an expected call of ListMachineTypes. -func (mr *MockDefaultApiMockRecorder) ListMachineTypes(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListMachineTypes(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListMachineTypes", reflect.TypeOf((*MockDefaultApi)(nil).ListMachineTypes), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListMachineTypes", reflect.TypeOf((*MockDefaultAPI)(nil).ListMachineTypes), ctx, projectId, region) } // ListMachineTypesExecute mocks base method. -func (m *MockDefaultApi) ListMachineTypesExecute(ctx context.Context, projectId, region string) (*iaas.MachineTypeListResponse, error) { +func (m *MockDefaultAPI) ListMachineTypesExecute(r v2api.ApiListMachineTypesRequest) (*v2api.MachineTypeListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListMachineTypesExecute", ctx, projectId, region) - ret0, _ := ret[0].(*iaas.MachineTypeListResponse) + ret := m.ctrl.Call(m, "ListMachineTypesExecute", r) + ret0, _ := ret[0].(*v2api.MachineTypeListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListMachineTypesExecute indicates an expected call of ListMachineTypesExecute. -func (mr *MockDefaultApiMockRecorder) ListMachineTypesExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListMachineTypesExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListMachineTypesExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListMachineTypesExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListMachineTypesExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListMachineTypesExecute), r) } // ListNetworkAreaProjects mocks base method. -func (m *MockDefaultApi) ListNetworkAreaProjects(ctx context.Context, organizationId, areaId string) iaas.ApiListNetworkAreaProjectsRequest { +func (m *MockDefaultAPI) ListNetworkAreaProjects(ctx context.Context, organizationId, areaId string) v2api.ApiListNetworkAreaProjectsRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListNetworkAreaProjects", ctx, organizationId, areaId) - ret0, _ := ret[0].(iaas.ApiListNetworkAreaProjectsRequest) + ret0, _ := ret[0].(v2api.ApiListNetworkAreaProjectsRequest) return ret0 } // ListNetworkAreaProjects indicates an expected call of ListNetworkAreaProjects. -func (mr *MockDefaultApiMockRecorder) ListNetworkAreaProjects(ctx, organizationId, areaId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListNetworkAreaProjects(ctx, organizationId, areaId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkAreaProjects", reflect.TypeOf((*MockDefaultApi)(nil).ListNetworkAreaProjects), ctx, organizationId, areaId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkAreaProjects", reflect.TypeOf((*MockDefaultAPI)(nil).ListNetworkAreaProjects), ctx, organizationId, areaId) } // ListNetworkAreaProjectsExecute mocks base method. -func (m *MockDefaultApi) ListNetworkAreaProjectsExecute(ctx context.Context, organizationId, areaId string) (*iaas.ProjectListResponse, error) { +func (m *MockDefaultAPI) ListNetworkAreaProjectsExecute(r v2api.ApiListNetworkAreaProjectsRequest) (*v2api.ProjectListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListNetworkAreaProjectsExecute", ctx, organizationId, areaId) - ret0, _ := ret[0].(*iaas.ProjectListResponse) + ret := m.ctrl.Call(m, "ListNetworkAreaProjectsExecute", r) + ret0, _ := ret[0].(*v2api.ProjectListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListNetworkAreaProjectsExecute indicates an expected call of ListNetworkAreaProjectsExecute. -func (mr *MockDefaultApiMockRecorder) ListNetworkAreaProjectsExecute(ctx, organizationId, areaId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListNetworkAreaProjectsExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkAreaProjectsExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListNetworkAreaProjectsExecute), ctx, organizationId, areaId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkAreaProjectsExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListNetworkAreaProjectsExecute), r) } // ListNetworkAreaRanges mocks base method. -func (m *MockDefaultApi) ListNetworkAreaRanges(ctx context.Context, organizationId, areaId, region string) iaas.ApiListNetworkAreaRangesRequest { +func (m *MockDefaultAPI) ListNetworkAreaRanges(ctx context.Context, organizationId, areaId, region string) v2api.ApiListNetworkAreaRangesRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListNetworkAreaRanges", ctx, organizationId, areaId, region) - ret0, _ := ret[0].(iaas.ApiListNetworkAreaRangesRequest) + ret0, _ := ret[0].(v2api.ApiListNetworkAreaRangesRequest) return ret0 } // ListNetworkAreaRanges indicates an expected call of ListNetworkAreaRanges. -func (mr *MockDefaultApiMockRecorder) ListNetworkAreaRanges(ctx, organizationId, areaId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListNetworkAreaRanges(ctx, organizationId, areaId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkAreaRanges", reflect.TypeOf((*MockDefaultApi)(nil).ListNetworkAreaRanges), ctx, organizationId, areaId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkAreaRanges", reflect.TypeOf((*MockDefaultAPI)(nil).ListNetworkAreaRanges), ctx, organizationId, areaId, region) } // ListNetworkAreaRangesExecute mocks base method. -func (m *MockDefaultApi) ListNetworkAreaRangesExecute(ctx context.Context, organizationId, areaId, region string) (*iaas.NetworkRangeListResponse, error) { +func (m *MockDefaultAPI) ListNetworkAreaRangesExecute(r v2api.ApiListNetworkAreaRangesRequest) (*v2api.NetworkRangeListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListNetworkAreaRangesExecute", ctx, organizationId, areaId, region) - ret0, _ := ret[0].(*iaas.NetworkRangeListResponse) + ret := m.ctrl.Call(m, "ListNetworkAreaRangesExecute", r) + ret0, _ := ret[0].(*v2api.NetworkRangeListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListNetworkAreaRangesExecute indicates an expected call of ListNetworkAreaRangesExecute. -func (mr *MockDefaultApiMockRecorder) ListNetworkAreaRangesExecute(ctx, organizationId, areaId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListNetworkAreaRangesExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkAreaRangesExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListNetworkAreaRangesExecute), ctx, organizationId, areaId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkAreaRangesExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListNetworkAreaRangesExecute), r) } // ListNetworkAreaRegions mocks base method. -func (m *MockDefaultApi) ListNetworkAreaRegions(ctx context.Context, organizationId, areaId string) iaas.ApiListNetworkAreaRegionsRequest { +func (m *MockDefaultAPI) ListNetworkAreaRegions(ctx context.Context, organizationId, areaId string) v2api.ApiListNetworkAreaRegionsRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListNetworkAreaRegions", ctx, organizationId, areaId) - ret0, _ := ret[0].(iaas.ApiListNetworkAreaRegionsRequest) + ret0, _ := ret[0].(v2api.ApiListNetworkAreaRegionsRequest) return ret0 } // ListNetworkAreaRegions indicates an expected call of ListNetworkAreaRegions. -func (mr *MockDefaultApiMockRecorder) ListNetworkAreaRegions(ctx, organizationId, areaId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListNetworkAreaRegions(ctx, organizationId, areaId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkAreaRegions", reflect.TypeOf((*MockDefaultApi)(nil).ListNetworkAreaRegions), ctx, organizationId, areaId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkAreaRegions", reflect.TypeOf((*MockDefaultAPI)(nil).ListNetworkAreaRegions), ctx, organizationId, areaId) } // ListNetworkAreaRegionsExecute mocks base method. -func (m *MockDefaultApi) ListNetworkAreaRegionsExecute(ctx context.Context, organizationId, areaId string) (*iaas.RegionalAreaListResponse, error) { +func (m *MockDefaultAPI) ListNetworkAreaRegionsExecute(r v2api.ApiListNetworkAreaRegionsRequest) (*v2api.RegionalAreaListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListNetworkAreaRegionsExecute", ctx, organizationId, areaId) - ret0, _ := ret[0].(*iaas.RegionalAreaListResponse) + ret := m.ctrl.Call(m, "ListNetworkAreaRegionsExecute", r) + ret0, _ := ret[0].(*v2api.RegionalAreaListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListNetworkAreaRegionsExecute indicates an expected call of ListNetworkAreaRegionsExecute. -func (mr *MockDefaultApiMockRecorder) ListNetworkAreaRegionsExecute(ctx, organizationId, areaId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListNetworkAreaRegionsExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkAreaRegionsExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListNetworkAreaRegionsExecute), ctx, organizationId, areaId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkAreaRegionsExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListNetworkAreaRegionsExecute), r) } // ListNetworkAreaRoutes mocks base method. -func (m *MockDefaultApi) ListNetworkAreaRoutes(ctx context.Context, organizationId, areaId, region string) iaas.ApiListNetworkAreaRoutesRequest { +func (m *MockDefaultAPI) ListNetworkAreaRoutes(ctx context.Context, organizationId, areaId, region string) v2api.ApiListNetworkAreaRoutesRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListNetworkAreaRoutes", ctx, organizationId, areaId, region) - ret0, _ := ret[0].(iaas.ApiListNetworkAreaRoutesRequest) + ret0, _ := ret[0].(v2api.ApiListNetworkAreaRoutesRequest) return ret0 } // ListNetworkAreaRoutes indicates an expected call of ListNetworkAreaRoutes. -func (mr *MockDefaultApiMockRecorder) ListNetworkAreaRoutes(ctx, organizationId, areaId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListNetworkAreaRoutes(ctx, organizationId, areaId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkAreaRoutes", reflect.TypeOf((*MockDefaultApi)(nil).ListNetworkAreaRoutes), ctx, organizationId, areaId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkAreaRoutes", reflect.TypeOf((*MockDefaultAPI)(nil).ListNetworkAreaRoutes), ctx, organizationId, areaId, region) } // ListNetworkAreaRoutesExecute mocks base method. -func (m *MockDefaultApi) ListNetworkAreaRoutesExecute(ctx context.Context, organizationId, areaId, region string) (*iaas.RouteListResponse, error) { +func (m *MockDefaultAPI) ListNetworkAreaRoutesExecute(r v2api.ApiListNetworkAreaRoutesRequest) (*v2api.RouteListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListNetworkAreaRoutesExecute", ctx, organizationId, areaId, region) - ret0, _ := ret[0].(*iaas.RouteListResponse) + ret := m.ctrl.Call(m, "ListNetworkAreaRoutesExecute", r) + ret0, _ := ret[0].(*v2api.RouteListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListNetworkAreaRoutesExecute indicates an expected call of ListNetworkAreaRoutesExecute. -func (mr *MockDefaultApiMockRecorder) ListNetworkAreaRoutesExecute(ctx, organizationId, areaId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListNetworkAreaRoutesExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkAreaRoutesExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListNetworkAreaRoutesExecute), ctx, organizationId, areaId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkAreaRoutesExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListNetworkAreaRoutesExecute), r) } // ListNetworkAreas mocks base method. -func (m *MockDefaultApi) ListNetworkAreas(ctx context.Context, organizationId string) iaas.ApiListNetworkAreasRequest { +func (m *MockDefaultAPI) ListNetworkAreas(ctx context.Context, organizationId string) v2api.ApiListNetworkAreasRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListNetworkAreas", ctx, organizationId) - ret0, _ := ret[0].(iaas.ApiListNetworkAreasRequest) + ret0, _ := ret[0].(v2api.ApiListNetworkAreasRequest) return ret0 } // ListNetworkAreas indicates an expected call of ListNetworkAreas. -func (mr *MockDefaultApiMockRecorder) ListNetworkAreas(ctx, organizationId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListNetworkAreas(ctx, organizationId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkAreas", reflect.TypeOf((*MockDefaultApi)(nil).ListNetworkAreas), ctx, organizationId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkAreas", reflect.TypeOf((*MockDefaultAPI)(nil).ListNetworkAreas), ctx, organizationId) } // ListNetworkAreasExecute mocks base method. -func (m *MockDefaultApi) ListNetworkAreasExecute(ctx context.Context, organizationId string) (*iaas.NetworkAreaListResponse, error) { +func (m *MockDefaultAPI) ListNetworkAreasExecute(r v2api.ApiListNetworkAreasRequest) (*v2api.NetworkAreaListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListNetworkAreasExecute", ctx, organizationId) - ret0, _ := ret[0].(*iaas.NetworkAreaListResponse) + ret := m.ctrl.Call(m, "ListNetworkAreasExecute", r) + ret0, _ := ret[0].(*v2api.NetworkAreaListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListNetworkAreasExecute indicates an expected call of ListNetworkAreasExecute. -func (mr *MockDefaultApiMockRecorder) ListNetworkAreasExecute(ctx, organizationId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListNetworkAreasExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkAreasExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListNetworkAreasExecute), ctx, organizationId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworkAreasExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListNetworkAreasExecute), r) } // ListNetworks mocks base method. -func (m *MockDefaultApi) ListNetworks(ctx context.Context, projectId, region string) iaas.ApiListNetworksRequest { +func (m *MockDefaultAPI) ListNetworks(ctx context.Context, projectId, region string) v2api.ApiListNetworksRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListNetworks", ctx, projectId, region) - ret0, _ := ret[0].(iaas.ApiListNetworksRequest) + ret0, _ := ret[0].(v2api.ApiListNetworksRequest) return ret0 } // ListNetworks indicates an expected call of ListNetworks. -func (mr *MockDefaultApiMockRecorder) ListNetworks(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListNetworks(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworks", reflect.TypeOf((*MockDefaultApi)(nil).ListNetworks), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworks", reflect.TypeOf((*MockDefaultAPI)(nil).ListNetworks), ctx, projectId, region) } // ListNetworksExecute mocks base method. -func (m *MockDefaultApi) ListNetworksExecute(ctx context.Context, projectId, region string) (*iaas.NetworkListResponse, error) { +func (m *MockDefaultAPI) ListNetworksExecute(r v2api.ApiListNetworksRequest) (*v2api.NetworkListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListNetworksExecute", ctx, projectId, region) - ret0, _ := ret[0].(*iaas.NetworkListResponse) + ret := m.ctrl.Call(m, "ListNetworksExecute", r) + ret0, _ := ret[0].(*v2api.NetworkListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListNetworksExecute indicates an expected call of ListNetworksExecute. -func (mr *MockDefaultApiMockRecorder) ListNetworksExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListNetworksExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworksExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListNetworksExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNetworksExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListNetworksExecute), r) } // ListNics mocks base method. -func (m *MockDefaultApi) ListNics(ctx context.Context, projectId, region, networkId string) iaas.ApiListNicsRequest { +func (m *MockDefaultAPI) ListNics(ctx context.Context, projectId, region, networkId string) v2api.ApiListNicsRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListNics", ctx, projectId, region, networkId) - ret0, _ := ret[0].(iaas.ApiListNicsRequest) + ret0, _ := ret[0].(v2api.ApiListNicsRequest) return ret0 } // ListNics indicates an expected call of ListNics. -func (mr *MockDefaultApiMockRecorder) ListNics(ctx, projectId, region, networkId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListNics(ctx, projectId, region, networkId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNics", reflect.TypeOf((*MockDefaultApi)(nil).ListNics), ctx, projectId, region, networkId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNics", reflect.TypeOf((*MockDefaultAPI)(nil).ListNics), ctx, projectId, region, networkId) } // ListNicsExecute mocks base method. -func (m *MockDefaultApi) ListNicsExecute(ctx context.Context, projectId, region, networkId string) (*iaas.NICListResponse, error) { +func (m *MockDefaultAPI) ListNicsExecute(r v2api.ApiListNicsRequest) (*v2api.NICListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListNicsExecute", ctx, projectId, region, networkId) - ret0, _ := ret[0].(*iaas.NICListResponse) + ret := m.ctrl.Call(m, "ListNicsExecute", r) + ret0, _ := ret[0].(*v2api.NICListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListNicsExecute indicates an expected call of ListNicsExecute. -func (mr *MockDefaultApiMockRecorder) ListNicsExecute(ctx, projectId, region, networkId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListNicsExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNicsExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListNicsExecute), ctx, projectId, region, networkId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListNicsExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListNicsExecute), r) } // ListProjectNICs mocks base method. -func (m *MockDefaultApi) ListProjectNICs(ctx context.Context, projectId, region string) iaas.ApiListProjectNICsRequest { +func (m *MockDefaultAPI) ListProjectNICs(ctx context.Context, projectId, region string) v2api.ApiListProjectNICsRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListProjectNICs", ctx, projectId, region) - ret0, _ := ret[0].(iaas.ApiListProjectNICsRequest) + ret0, _ := ret[0].(v2api.ApiListProjectNICsRequest) return ret0 } // ListProjectNICs indicates an expected call of ListProjectNICs. -func (mr *MockDefaultApiMockRecorder) ListProjectNICs(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListProjectNICs(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListProjectNICs", reflect.TypeOf((*MockDefaultApi)(nil).ListProjectNICs), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListProjectNICs", reflect.TypeOf((*MockDefaultAPI)(nil).ListProjectNICs), ctx, projectId, region) } // ListProjectNICsExecute mocks base method. -func (m *MockDefaultApi) ListProjectNICsExecute(ctx context.Context, projectId, region string) (*iaas.NICListResponse, error) { +func (m *MockDefaultAPI) ListProjectNICsExecute(r v2api.ApiListProjectNICsRequest) (*v2api.NICListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListProjectNICsExecute", ctx, projectId, region) - ret0, _ := ret[0].(*iaas.NICListResponse) + ret := m.ctrl.Call(m, "ListProjectNICsExecute", r) + ret0, _ := ret[0].(*v2api.NICListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListProjectNICsExecute indicates an expected call of ListProjectNICsExecute. -func (mr *MockDefaultApiMockRecorder) ListProjectNICsExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListProjectNICsExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListProjectNICsExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListProjectNICsExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListProjectNICsExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListProjectNICsExecute), r) } // ListPublicIPRanges mocks base method. -func (m *MockDefaultApi) ListPublicIPRanges(ctx context.Context) iaas.ApiListPublicIPRangesRequest { +func (m *MockDefaultAPI) ListPublicIPRanges(ctx context.Context) v2api.ApiListPublicIPRangesRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListPublicIPRanges", ctx) - ret0, _ := ret[0].(iaas.ApiListPublicIPRangesRequest) + ret0, _ := ret[0].(v2api.ApiListPublicIPRangesRequest) return ret0 } // ListPublicIPRanges indicates an expected call of ListPublicIPRanges. -func (mr *MockDefaultApiMockRecorder) ListPublicIPRanges(ctx any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListPublicIPRanges(ctx any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPublicIPRanges", reflect.TypeOf((*MockDefaultApi)(nil).ListPublicIPRanges), ctx) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPublicIPRanges", reflect.TypeOf((*MockDefaultAPI)(nil).ListPublicIPRanges), ctx) } // ListPublicIPRangesExecute mocks base method. -func (m *MockDefaultApi) ListPublicIPRangesExecute(ctx context.Context) (*iaas.PublicNetworkListResponse, error) { +func (m *MockDefaultAPI) ListPublicIPRangesExecute(r v2api.ApiListPublicIPRangesRequest) (*v2api.PublicNetworkListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListPublicIPRangesExecute", ctx) - ret0, _ := ret[0].(*iaas.PublicNetworkListResponse) + ret := m.ctrl.Call(m, "ListPublicIPRangesExecute", r) + ret0, _ := ret[0].(*v2api.PublicNetworkListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListPublicIPRangesExecute indicates an expected call of ListPublicIPRangesExecute. -func (mr *MockDefaultApiMockRecorder) ListPublicIPRangesExecute(ctx any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListPublicIPRangesExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPublicIPRangesExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListPublicIPRangesExecute), ctx) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPublicIPRangesExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListPublicIPRangesExecute), r) } // ListPublicIPs mocks base method. -func (m *MockDefaultApi) ListPublicIPs(ctx context.Context, projectId, region string) iaas.ApiListPublicIPsRequest { +func (m *MockDefaultAPI) ListPublicIPs(ctx context.Context, projectId, region string) v2api.ApiListPublicIPsRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListPublicIPs", ctx, projectId, region) - ret0, _ := ret[0].(iaas.ApiListPublicIPsRequest) + ret0, _ := ret[0].(v2api.ApiListPublicIPsRequest) return ret0 } // ListPublicIPs indicates an expected call of ListPublicIPs. -func (mr *MockDefaultApiMockRecorder) ListPublicIPs(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListPublicIPs(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPublicIPs", reflect.TypeOf((*MockDefaultApi)(nil).ListPublicIPs), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPublicIPs", reflect.TypeOf((*MockDefaultAPI)(nil).ListPublicIPs), ctx, projectId, region) } // ListPublicIPsExecute mocks base method. -func (m *MockDefaultApi) ListPublicIPsExecute(ctx context.Context, projectId, region string) (*iaas.PublicIpListResponse, error) { +func (m *MockDefaultAPI) ListPublicIPsExecute(r v2api.ApiListPublicIPsRequest) (*v2api.PublicIpListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListPublicIPsExecute", ctx, projectId, region) - ret0, _ := ret[0].(*iaas.PublicIpListResponse) + ret := m.ctrl.Call(m, "ListPublicIPsExecute", r) + ret0, _ := ret[0].(*v2api.PublicIpListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListPublicIPsExecute indicates an expected call of ListPublicIPsExecute. -func (mr *MockDefaultApiMockRecorder) ListPublicIPsExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListPublicIPsExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPublicIPsExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListPublicIPsExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPublicIPsExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListPublicIPsExecute), r) } // ListQuotas mocks base method. -func (m *MockDefaultApi) ListQuotas(ctx context.Context, projectId, region string) iaas.ApiListQuotasRequest { +func (m *MockDefaultAPI) ListQuotas(ctx context.Context, projectId, region string) v2api.ApiListQuotasRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListQuotas", ctx, projectId, region) - ret0, _ := ret[0].(iaas.ApiListQuotasRequest) + ret0, _ := ret[0].(v2api.ApiListQuotasRequest) return ret0 } // ListQuotas indicates an expected call of ListQuotas. -func (mr *MockDefaultApiMockRecorder) ListQuotas(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListQuotas(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListQuotas", reflect.TypeOf((*MockDefaultApi)(nil).ListQuotas), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListQuotas", reflect.TypeOf((*MockDefaultAPI)(nil).ListQuotas), ctx, projectId, region) } // ListQuotasExecute mocks base method. -func (m *MockDefaultApi) ListQuotasExecute(ctx context.Context, projectId, region string) (*iaas.QuotaListResponse, error) { +func (m *MockDefaultAPI) ListQuotasExecute(r v2api.ApiListQuotasRequest) (*v2api.QuotaListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListQuotasExecute", ctx, projectId, region) - ret0, _ := ret[0].(*iaas.QuotaListResponse) + ret := m.ctrl.Call(m, "ListQuotasExecute", r) + ret0, _ := ret[0].(*v2api.QuotaListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListQuotasExecute indicates an expected call of ListQuotasExecute. -func (mr *MockDefaultApiMockRecorder) ListQuotasExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListQuotasExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListQuotasExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListQuotasExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListQuotasExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListQuotasExecute), r) } // ListRoutesOfRoutingTable mocks base method. -func (m *MockDefaultApi) ListRoutesOfRoutingTable(ctx context.Context, organizationId, areaId, region, routingTableId string) iaas.ApiListRoutesOfRoutingTableRequest { +func (m *MockDefaultAPI) ListRoutesOfRoutingTable(ctx context.Context, organizationId, areaId, region, routingTableId string) v2api.ApiListRoutesOfRoutingTableRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListRoutesOfRoutingTable", ctx, organizationId, areaId, region, routingTableId) - ret0, _ := ret[0].(iaas.ApiListRoutesOfRoutingTableRequest) + ret0, _ := ret[0].(v2api.ApiListRoutesOfRoutingTableRequest) return ret0 } // ListRoutesOfRoutingTable indicates an expected call of ListRoutesOfRoutingTable. -func (mr *MockDefaultApiMockRecorder) ListRoutesOfRoutingTable(ctx, organizationId, areaId, region, routingTableId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListRoutesOfRoutingTable(ctx, organizationId, areaId, region, routingTableId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListRoutesOfRoutingTable", reflect.TypeOf((*MockDefaultApi)(nil).ListRoutesOfRoutingTable), ctx, organizationId, areaId, region, routingTableId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListRoutesOfRoutingTable", reflect.TypeOf((*MockDefaultAPI)(nil).ListRoutesOfRoutingTable), ctx, organizationId, areaId, region, routingTableId) } // ListRoutesOfRoutingTableExecute mocks base method. -func (m *MockDefaultApi) ListRoutesOfRoutingTableExecute(ctx context.Context, organizationId, areaId, region, routingTableId string) (*iaas.RouteListResponse, error) { +func (m *MockDefaultAPI) ListRoutesOfRoutingTableExecute(r v2api.ApiListRoutesOfRoutingTableRequest) (*v2api.RouteListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListRoutesOfRoutingTableExecute", ctx, organizationId, areaId, region, routingTableId) - ret0, _ := ret[0].(*iaas.RouteListResponse) + ret := m.ctrl.Call(m, "ListRoutesOfRoutingTableExecute", r) + ret0, _ := ret[0].(*v2api.RouteListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListRoutesOfRoutingTableExecute indicates an expected call of ListRoutesOfRoutingTableExecute. -func (mr *MockDefaultApiMockRecorder) ListRoutesOfRoutingTableExecute(ctx, organizationId, areaId, region, routingTableId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListRoutesOfRoutingTableExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListRoutesOfRoutingTableExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListRoutesOfRoutingTableExecute), ctx, organizationId, areaId, region, routingTableId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListRoutesOfRoutingTableExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListRoutesOfRoutingTableExecute), r) } // ListRoutingTablesOfArea mocks base method. -func (m *MockDefaultApi) ListRoutingTablesOfArea(ctx context.Context, organizationId, areaId, region string) iaas.ApiListRoutingTablesOfAreaRequest { +func (m *MockDefaultAPI) ListRoutingTablesOfArea(ctx context.Context, organizationId, areaId, region string) v2api.ApiListRoutingTablesOfAreaRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListRoutingTablesOfArea", ctx, organizationId, areaId, region) - ret0, _ := ret[0].(iaas.ApiListRoutingTablesOfAreaRequest) + ret0, _ := ret[0].(v2api.ApiListRoutingTablesOfAreaRequest) return ret0 } // ListRoutingTablesOfArea indicates an expected call of ListRoutingTablesOfArea. -func (mr *MockDefaultApiMockRecorder) ListRoutingTablesOfArea(ctx, organizationId, areaId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListRoutingTablesOfArea(ctx, organizationId, areaId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListRoutingTablesOfArea", reflect.TypeOf((*MockDefaultApi)(nil).ListRoutingTablesOfArea), ctx, organizationId, areaId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListRoutingTablesOfArea", reflect.TypeOf((*MockDefaultAPI)(nil).ListRoutingTablesOfArea), ctx, organizationId, areaId, region) } // ListRoutingTablesOfAreaExecute mocks base method. -func (m *MockDefaultApi) ListRoutingTablesOfAreaExecute(ctx context.Context, organizationId, areaId, region string) (*iaas.RoutingTableListResponse, error) { +func (m *MockDefaultAPI) ListRoutingTablesOfAreaExecute(r v2api.ApiListRoutingTablesOfAreaRequest) (*v2api.RoutingTableListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListRoutingTablesOfAreaExecute", ctx, organizationId, areaId, region) - ret0, _ := ret[0].(*iaas.RoutingTableListResponse) + ret := m.ctrl.Call(m, "ListRoutingTablesOfAreaExecute", r) + ret0, _ := ret[0].(*v2api.RoutingTableListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListRoutingTablesOfAreaExecute indicates an expected call of ListRoutingTablesOfAreaExecute. -func (mr *MockDefaultApiMockRecorder) ListRoutingTablesOfAreaExecute(ctx, organizationId, areaId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListRoutingTablesOfAreaExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListRoutingTablesOfAreaExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListRoutingTablesOfAreaExecute), ctx, organizationId, areaId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListRoutingTablesOfAreaExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListRoutingTablesOfAreaExecute), r) } // ListSecurityGroupRules mocks base method. -func (m *MockDefaultApi) ListSecurityGroupRules(ctx context.Context, projectId, region, securityGroupId string) iaas.ApiListSecurityGroupRulesRequest { +func (m *MockDefaultAPI) ListSecurityGroupRules(ctx context.Context, projectId, region, securityGroupId string) v2api.ApiListSecurityGroupRulesRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListSecurityGroupRules", ctx, projectId, region, securityGroupId) - ret0, _ := ret[0].(iaas.ApiListSecurityGroupRulesRequest) + ret0, _ := ret[0].(v2api.ApiListSecurityGroupRulesRequest) return ret0 } // ListSecurityGroupRules indicates an expected call of ListSecurityGroupRules. -func (mr *MockDefaultApiMockRecorder) ListSecurityGroupRules(ctx, projectId, region, securityGroupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListSecurityGroupRules(ctx, projectId, region, securityGroupId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSecurityGroupRules", reflect.TypeOf((*MockDefaultApi)(nil).ListSecurityGroupRules), ctx, projectId, region, securityGroupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSecurityGroupRules", reflect.TypeOf((*MockDefaultAPI)(nil).ListSecurityGroupRules), ctx, projectId, region, securityGroupId) } // ListSecurityGroupRulesExecute mocks base method. -func (m *MockDefaultApi) ListSecurityGroupRulesExecute(ctx context.Context, projectId, region, securityGroupId string) (*iaas.SecurityGroupRuleListResponse, error) { +func (m *MockDefaultAPI) ListSecurityGroupRulesExecute(r v2api.ApiListSecurityGroupRulesRequest) (*v2api.SecurityGroupRuleListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListSecurityGroupRulesExecute", ctx, projectId, region, securityGroupId) - ret0, _ := ret[0].(*iaas.SecurityGroupRuleListResponse) + ret := m.ctrl.Call(m, "ListSecurityGroupRulesExecute", r) + ret0, _ := ret[0].(*v2api.SecurityGroupRuleListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListSecurityGroupRulesExecute indicates an expected call of ListSecurityGroupRulesExecute. -func (mr *MockDefaultApiMockRecorder) ListSecurityGroupRulesExecute(ctx, projectId, region, securityGroupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListSecurityGroupRulesExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSecurityGroupRulesExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListSecurityGroupRulesExecute), ctx, projectId, region, securityGroupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSecurityGroupRulesExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListSecurityGroupRulesExecute), r) } // ListSecurityGroups mocks base method. -func (m *MockDefaultApi) ListSecurityGroups(ctx context.Context, projectId, region string) iaas.ApiListSecurityGroupsRequest { +func (m *MockDefaultAPI) ListSecurityGroups(ctx context.Context, projectId, region string) v2api.ApiListSecurityGroupsRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListSecurityGroups", ctx, projectId, region) - ret0, _ := ret[0].(iaas.ApiListSecurityGroupsRequest) + ret0, _ := ret[0].(v2api.ApiListSecurityGroupsRequest) return ret0 } // ListSecurityGroups indicates an expected call of ListSecurityGroups. -func (mr *MockDefaultApiMockRecorder) ListSecurityGroups(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListSecurityGroups(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSecurityGroups", reflect.TypeOf((*MockDefaultApi)(nil).ListSecurityGroups), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSecurityGroups", reflect.TypeOf((*MockDefaultAPI)(nil).ListSecurityGroups), ctx, projectId, region) } // ListSecurityGroupsExecute mocks base method. -func (m *MockDefaultApi) ListSecurityGroupsExecute(ctx context.Context, projectId, region string) (*iaas.SecurityGroupListResponse, error) { +func (m *MockDefaultAPI) ListSecurityGroupsExecute(r v2api.ApiListSecurityGroupsRequest) (*v2api.SecurityGroupListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListSecurityGroupsExecute", ctx, projectId, region) - ret0, _ := ret[0].(*iaas.SecurityGroupListResponse) + ret := m.ctrl.Call(m, "ListSecurityGroupsExecute", r) + ret0, _ := ret[0].(*v2api.SecurityGroupListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListSecurityGroupsExecute indicates an expected call of ListSecurityGroupsExecute. -func (mr *MockDefaultApiMockRecorder) ListSecurityGroupsExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListSecurityGroupsExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSecurityGroupsExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListSecurityGroupsExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSecurityGroupsExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListSecurityGroupsExecute), r) } // ListServerNICs mocks base method. -func (m *MockDefaultApi) ListServerNICs(ctx context.Context, projectId, region, serverId string) iaas.ApiListServerNICsRequest { +func (m *MockDefaultAPI) ListServerNICs(ctx context.Context, projectId, region, serverId string) v2api.ApiListServerNICsRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListServerNICs", ctx, projectId, region, serverId) - ret0, _ := ret[0].(iaas.ApiListServerNICsRequest) + ret0, _ := ret[0].(v2api.ApiListServerNICsRequest) return ret0 } // ListServerNICs indicates an expected call of ListServerNICs. -func (mr *MockDefaultApiMockRecorder) ListServerNICs(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListServerNICs(ctx, projectId, region, serverId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListServerNICs", reflect.TypeOf((*MockDefaultApi)(nil).ListServerNICs), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListServerNICs", reflect.TypeOf((*MockDefaultAPI)(nil).ListServerNICs), ctx, projectId, region, serverId) } // ListServerNICsExecute mocks base method. -func (m *MockDefaultApi) ListServerNICsExecute(ctx context.Context, projectId, region, serverId string) (*iaas.NICListResponse, error) { +func (m *MockDefaultAPI) ListServerNICsExecute(r v2api.ApiListServerNICsRequest) (*v2api.NICListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListServerNICsExecute", ctx, projectId, region, serverId) - ret0, _ := ret[0].(*iaas.NICListResponse) + ret := m.ctrl.Call(m, "ListServerNICsExecute", r) + ret0, _ := ret[0].(*v2api.NICListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListServerNICsExecute indicates an expected call of ListServerNICsExecute. -func (mr *MockDefaultApiMockRecorder) ListServerNICsExecute(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListServerNICsExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListServerNICsExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListServerNICsExecute), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListServerNICsExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListServerNICsExecute), r) } // ListServerServiceAccounts mocks base method. -func (m *MockDefaultApi) ListServerServiceAccounts(ctx context.Context, projectId, region, serverId string) iaas.ApiListServerServiceAccountsRequest { +func (m *MockDefaultAPI) ListServerServiceAccounts(ctx context.Context, projectId, region, serverId string) v2api.ApiListServerServiceAccountsRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListServerServiceAccounts", ctx, projectId, region, serverId) - ret0, _ := ret[0].(iaas.ApiListServerServiceAccountsRequest) + ret0, _ := ret[0].(v2api.ApiListServerServiceAccountsRequest) return ret0 } // ListServerServiceAccounts indicates an expected call of ListServerServiceAccounts. -func (mr *MockDefaultApiMockRecorder) ListServerServiceAccounts(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListServerServiceAccounts(ctx, projectId, region, serverId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListServerServiceAccounts", reflect.TypeOf((*MockDefaultApi)(nil).ListServerServiceAccounts), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListServerServiceAccounts", reflect.TypeOf((*MockDefaultAPI)(nil).ListServerServiceAccounts), ctx, projectId, region, serverId) } // ListServerServiceAccountsExecute mocks base method. -func (m *MockDefaultApi) ListServerServiceAccountsExecute(ctx context.Context, projectId, region, serverId string) (*iaas.ServiceAccountMailListResponse, error) { +func (m *MockDefaultAPI) ListServerServiceAccountsExecute(r v2api.ApiListServerServiceAccountsRequest) (*v2api.ServiceAccountMailListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListServerServiceAccountsExecute", ctx, projectId, region, serverId) - ret0, _ := ret[0].(*iaas.ServiceAccountMailListResponse) + ret := m.ctrl.Call(m, "ListServerServiceAccountsExecute", r) + ret0, _ := ret[0].(*v2api.ServiceAccountMailListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListServerServiceAccountsExecute indicates an expected call of ListServerServiceAccountsExecute. -func (mr *MockDefaultApiMockRecorder) ListServerServiceAccountsExecute(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListServerServiceAccountsExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListServerServiceAccountsExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListServerServiceAccountsExecute), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListServerServiceAccountsExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListServerServiceAccountsExecute), r) } // ListServers mocks base method. -func (m *MockDefaultApi) ListServers(ctx context.Context, projectId, region string) iaas.ApiListServersRequest { +func (m *MockDefaultAPI) ListServers(ctx context.Context, projectId, region string) v2api.ApiListServersRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListServers", ctx, projectId, region) - ret0, _ := ret[0].(iaas.ApiListServersRequest) + ret0, _ := ret[0].(v2api.ApiListServersRequest) return ret0 } // ListServers indicates an expected call of ListServers. -func (mr *MockDefaultApiMockRecorder) ListServers(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListServers(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListServers", reflect.TypeOf((*MockDefaultApi)(nil).ListServers), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListServers", reflect.TypeOf((*MockDefaultAPI)(nil).ListServers), ctx, projectId, region) } // ListServersExecute mocks base method. -func (m *MockDefaultApi) ListServersExecute(ctx context.Context, projectId, region string) (*iaas.ServerListResponse, error) { +func (m *MockDefaultAPI) ListServersExecute(r v2api.ApiListServersRequest) (*v2api.ServerListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListServersExecute", ctx, projectId, region) - ret0, _ := ret[0].(*iaas.ServerListResponse) + ret := m.ctrl.Call(m, "ListServersExecute", r) + ret0, _ := ret[0].(*v2api.ServerListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListServersExecute indicates an expected call of ListServersExecute. -func (mr *MockDefaultApiMockRecorder) ListServersExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListServersExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListServersExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListServersExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListServersExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListServersExecute), r) } // ListSnapshotsInProject mocks base method. -func (m *MockDefaultApi) ListSnapshotsInProject(ctx context.Context, projectId, region string) iaas.ApiListSnapshotsInProjectRequest { +func (m *MockDefaultAPI) ListSnapshotsInProject(ctx context.Context, projectId, region string) v2api.ApiListSnapshotsInProjectRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListSnapshotsInProject", ctx, projectId, region) - ret0, _ := ret[0].(iaas.ApiListSnapshotsInProjectRequest) + ret0, _ := ret[0].(v2api.ApiListSnapshotsInProjectRequest) return ret0 } // ListSnapshotsInProject indicates an expected call of ListSnapshotsInProject. -func (mr *MockDefaultApiMockRecorder) ListSnapshotsInProject(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListSnapshotsInProject(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSnapshotsInProject", reflect.TypeOf((*MockDefaultApi)(nil).ListSnapshotsInProject), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSnapshotsInProject", reflect.TypeOf((*MockDefaultAPI)(nil).ListSnapshotsInProject), ctx, projectId, region) } // ListSnapshotsInProjectExecute mocks base method. -func (m *MockDefaultApi) ListSnapshotsInProjectExecute(ctx context.Context, projectId, region string) (*iaas.SnapshotListResponse, error) { +func (m *MockDefaultAPI) ListSnapshotsInProjectExecute(r v2api.ApiListSnapshotsInProjectRequest) (*v2api.SnapshotListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListSnapshotsInProjectExecute", ctx, projectId, region) - ret0, _ := ret[0].(*iaas.SnapshotListResponse) + ret := m.ctrl.Call(m, "ListSnapshotsInProjectExecute", r) + ret0, _ := ret[0].(*v2api.SnapshotListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListSnapshotsInProjectExecute indicates an expected call of ListSnapshotsInProjectExecute. -func (mr *MockDefaultApiMockRecorder) ListSnapshotsInProjectExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListSnapshotsInProjectExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSnapshotsInProjectExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListSnapshotsInProjectExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSnapshotsInProjectExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListSnapshotsInProjectExecute), r) } // ListVolumePerformanceClasses mocks base method. -func (m *MockDefaultApi) ListVolumePerformanceClasses(ctx context.Context, projectId, region string) iaas.ApiListVolumePerformanceClassesRequest { +func (m *MockDefaultAPI) ListVolumePerformanceClasses(ctx context.Context, projectId, region string) v2api.ApiListVolumePerformanceClassesRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListVolumePerformanceClasses", ctx, projectId, region) - ret0, _ := ret[0].(iaas.ApiListVolumePerformanceClassesRequest) + ret0, _ := ret[0].(v2api.ApiListVolumePerformanceClassesRequest) return ret0 } // ListVolumePerformanceClasses indicates an expected call of ListVolumePerformanceClasses. -func (mr *MockDefaultApiMockRecorder) ListVolumePerformanceClasses(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListVolumePerformanceClasses(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVolumePerformanceClasses", reflect.TypeOf((*MockDefaultApi)(nil).ListVolumePerformanceClasses), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVolumePerformanceClasses", reflect.TypeOf((*MockDefaultAPI)(nil).ListVolumePerformanceClasses), ctx, projectId, region) } // ListVolumePerformanceClassesExecute mocks base method. -func (m *MockDefaultApi) ListVolumePerformanceClassesExecute(ctx context.Context, projectId, region string) (*iaas.VolumePerformanceClassListResponse, error) { +func (m *MockDefaultAPI) ListVolumePerformanceClassesExecute(r v2api.ApiListVolumePerformanceClassesRequest) (*v2api.VolumePerformanceClassListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListVolumePerformanceClassesExecute", ctx, projectId, region) - ret0, _ := ret[0].(*iaas.VolumePerformanceClassListResponse) + ret := m.ctrl.Call(m, "ListVolumePerformanceClassesExecute", r) + ret0, _ := ret[0].(*v2api.VolumePerformanceClassListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListVolumePerformanceClassesExecute indicates an expected call of ListVolumePerformanceClassesExecute. -func (mr *MockDefaultApiMockRecorder) ListVolumePerformanceClassesExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListVolumePerformanceClassesExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVolumePerformanceClassesExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListVolumePerformanceClassesExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVolumePerformanceClassesExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListVolumePerformanceClassesExecute), r) } // ListVolumes mocks base method. -func (m *MockDefaultApi) ListVolumes(ctx context.Context, projectId, region string) iaas.ApiListVolumesRequest { +func (m *MockDefaultAPI) ListVolumes(ctx context.Context, projectId, region string) v2api.ApiListVolumesRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListVolumes", ctx, projectId, region) - ret0, _ := ret[0].(iaas.ApiListVolumesRequest) + ret0, _ := ret[0].(v2api.ApiListVolumesRequest) return ret0 } // ListVolumes indicates an expected call of ListVolumes. -func (mr *MockDefaultApiMockRecorder) ListVolumes(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListVolumes(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVolumes", reflect.TypeOf((*MockDefaultApi)(nil).ListVolumes), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVolumes", reflect.TypeOf((*MockDefaultAPI)(nil).ListVolumes), ctx, projectId, region) } // ListVolumesExecute mocks base method. -func (m *MockDefaultApi) ListVolumesExecute(ctx context.Context, projectId, region string) (*iaas.VolumeListResponse, error) { +func (m *MockDefaultAPI) ListVolumesExecute(r v2api.ApiListVolumesRequest) (*v2api.VolumeListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListVolumesExecute", ctx, projectId, region) - ret0, _ := ret[0].(*iaas.VolumeListResponse) + ret := m.ctrl.Call(m, "ListVolumesExecute", r) + ret0, _ := ret[0].(*v2api.VolumeListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListVolumesExecute indicates an expected call of ListVolumesExecute. -func (mr *MockDefaultApiMockRecorder) ListVolumesExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListVolumesExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVolumesExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListVolumesExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVolumesExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListVolumesExecute), r) } // PartialUpdateNetwork mocks base method. -func (m *MockDefaultApi) PartialUpdateNetwork(ctx context.Context, projectId, region, networkId string) iaas.ApiPartialUpdateNetworkRequest { +func (m *MockDefaultAPI) PartialUpdateNetwork(ctx context.Context, projectId, region, networkId string) v2api.ApiPartialUpdateNetworkRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PartialUpdateNetwork", ctx, projectId, region, networkId) - ret0, _ := ret[0].(iaas.ApiPartialUpdateNetworkRequest) + ret0, _ := ret[0].(v2api.ApiPartialUpdateNetworkRequest) return ret0 } // PartialUpdateNetwork indicates an expected call of PartialUpdateNetwork. -func (mr *MockDefaultApiMockRecorder) PartialUpdateNetwork(ctx, projectId, region, networkId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) PartialUpdateNetwork(ctx, projectId, region, networkId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PartialUpdateNetwork", reflect.TypeOf((*MockDefaultApi)(nil).PartialUpdateNetwork), ctx, projectId, region, networkId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PartialUpdateNetwork", reflect.TypeOf((*MockDefaultAPI)(nil).PartialUpdateNetwork), ctx, projectId, region, networkId) } // PartialUpdateNetworkArea mocks base method. -func (m *MockDefaultApi) PartialUpdateNetworkArea(ctx context.Context, organizationId, areaId string) iaas.ApiPartialUpdateNetworkAreaRequest { +func (m *MockDefaultAPI) PartialUpdateNetworkArea(ctx context.Context, organizationId, areaId string) v2api.ApiPartialUpdateNetworkAreaRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PartialUpdateNetworkArea", ctx, organizationId, areaId) - ret0, _ := ret[0].(iaas.ApiPartialUpdateNetworkAreaRequest) + ret0, _ := ret[0].(v2api.ApiPartialUpdateNetworkAreaRequest) return ret0 } // PartialUpdateNetworkArea indicates an expected call of PartialUpdateNetworkArea. -func (mr *MockDefaultApiMockRecorder) PartialUpdateNetworkArea(ctx, organizationId, areaId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) PartialUpdateNetworkArea(ctx, organizationId, areaId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PartialUpdateNetworkArea", reflect.TypeOf((*MockDefaultApi)(nil).PartialUpdateNetworkArea), ctx, organizationId, areaId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PartialUpdateNetworkArea", reflect.TypeOf((*MockDefaultAPI)(nil).PartialUpdateNetworkArea), ctx, organizationId, areaId) } // PartialUpdateNetworkAreaExecute mocks base method. -func (m *MockDefaultApi) PartialUpdateNetworkAreaExecute(ctx context.Context, organizationId, areaId string) (*iaas.NetworkArea, error) { +func (m *MockDefaultAPI) PartialUpdateNetworkAreaExecute(r v2api.ApiPartialUpdateNetworkAreaRequest) (*v2api.NetworkArea, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "PartialUpdateNetworkAreaExecute", ctx, organizationId, areaId) - ret0, _ := ret[0].(*iaas.NetworkArea) + ret := m.ctrl.Call(m, "PartialUpdateNetworkAreaExecute", r) + ret0, _ := ret[0].(*v2api.NetworkArea) ret1, _ := ret[1].(error) return ret0, ret1 } // PartialUpdateNetworkAreaExecute indicates an expected call of PartialUpdateNetworkAreaExecute. -func (mr *MockDefaultApiMockRecorder) PartialUpdateNetworkAreaExecute(ctx, organizationId, areaId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) PartialUpdateNetworkAreaExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PartialUpdateNetworkAreaExecute", reflect.TypeOf((*MockDefaultApi)(nil).PartialUpdateNetworkAreaExecute), ctx, organizationId, areaId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PartialUpdateNetworkAreaExecute", reflect.TypeOf((*MockDefaultAPI)(nil).PartialUpdateNetworkAreaExecute), r) } // PartialUpdateNetworkExecute mocks base method. -func (m *MockDefaultApi) PartialUpdateNetworkExecute(ctx context.Context, projectId, region, networkId string) error { +func (m *MockDefaultAPI) PartialUpdateNetworkExecute(r v2api.ApiPartialUpdateNetworkRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "PartialUpdateNetworkExecute", ctx, projectId, region, networkId) + ret := m.ctrl.Call(m, "PartialUpdateNetworkExecute", r) ret0, _ := ret[0].(error) return ret0 } // PartialUpdateNetworkExecute indicates an expected call of PartialUpdateNetworkExecute. -func (mr *MockDefaultApiMockRecorder) PartialUpdateNetworkExecute(ctx, projectId, region, networkId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) PartialUpdateNetworkExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PartialUpdateNetworkExecute", reflect.TypeOf((*MockDefaultApi)(nil).PartialUpdateNetworkExecute), ctx, projectId, region, networkId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PartialUpdateNetworkExecute", reflect.TypeOf((*MockDefaultAPI)(nil).PartialUpdateNetworkExecute), r) } // RebootServer mocks base method. -func (m *MockDefaultApi) RebootServer(ctx context.Context, projectId, region, serverId string) iaas.ApiRebootServerRequest { +func (m *MockDefaultAPI) RebootServer(ctx context.Context, projectId, region, serverId string) v2api.ApiRebootServerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "RebootServer", ctx, projectId, region, serverId) - ret0, _ := ret[0].(iaas.ApiRebootServerRequest) + ret0, _ := ret[0].(v2api.ApiRebootServerRequest) return ret0 } // RebootServer indicates an expected call of RebootServer. -func (mr *MockDefaultApiMockRecorder) RebootServer(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) RebootServer(ctx, projectId, region, serverId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RebootServer", reflect.TypeOf((*MockDefaultApi)(nil).RebootServer), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RebootServer", reflect.TypeOf((*MockDefaultAPI)(nil).RebootServer), ctx, projectId, region, serverId) } // RebootServerExecute mocks base method. -func (m *MockDefaultApi) RebootServerExecute(ctx context.Context, projectId, region, serverId string) error { +func (m *MockDefaultAPI) RebootServerExecute(r v2api.ApiRebootServerRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RebootServerExecute", ctx, projectId, region, serverId) + ret := m.ctrl.Call(m, "RebootServerExecute", r) ret0, _ := ret[0].(error) return ret0 } // RebootServerExecute indicates an expected call of RebootServerExecute. -func (mr *MockDefaultApiMockRecorder) RebootServerExecute(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) RebootServerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RebootServerExecute", reflect.TypeOf((*MockDefaultApi)(nil).RebootServerExecute), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RebootServerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).RebootServerExecute), r) } // RemoveNetworkFromServer mocks base method. -func (m *MockDefaultApi) RemoveNetworkFromServer(ctx context.Context, projectId, region, serverId, networkId string) iaas.ApiRemoveNetworkFromServerRequest { +func (m *MockDefaultAPI) RemoveNetworkFromServer(ctx context.Context, projectId, region, serverId, networkId string) v2api.ApiRemoveNetworkFromServerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "RemoveNetworkFromServer", ctx, projectId, region, serverId, networkId) - ret0, _ := ret[0].(iaas.ApiRemoveNetworkFromServerRequest) + ret0, _ := ret[0].(v2api.ApiRemoveNetworkFromServerRequest) return ret0 } // RemoveNetworkFromServer indicates an expected call of RemoveNetworkFromServer. -func (mr *MockDefaultApiMockRecorder) RemoveNetworkFromServer(ctx, projectId, region, serverId, networkId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) RemoveNetworkFromServer(ctx, projectId, region, serverId, networkId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveNetworkFromServer", reflect.TypeOf((*MockDefaultApi)(nil).RemoveNetworkFromServer), ctx, projectId, region, serverId, networkId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveNetworkFromServer", reflect.TypeOf((*MockDefaultAPI)(nil).RemoveNetworkFromServer), ctx, projectId, region, serverId, networkId) } // RemoveNetworkFromServerExecute mocks base method. -func (m *MockDefaultApi) RemoveNetworkFromServerExecute(ctx context.Context, projectId, region, serverId, networkId string) error { +func (m *MockDefaultAPI) RemoveNetworkFromServerExecute(r v2api.ApiRemoveNetworkFromServerRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RemoveNetworkFromServerExecute", ctx, projectId, region, serverId, networkId) + ret := m.ctrl.Call(m, "RemoveNetworkFromServerExecute", r) ret0, _ := ret[0].(error) return ret0 } // RemoveNetworkFromServerExecute indicates an expected call of RemoveNetworkFromServerExecute. -func (mr *MockDefaultApiMockRecorder) RemoveNetworkFromServerExecute(ctx, projectId, region, serverId, networkId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) RemoveNetworkFromServerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveNetworkFromServerExecute", reflect.TypeOf((*MockDefaultApi)(nil).RemoveNetworkFromServerExecute), ctx, projectId, region, serverId, networkId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveNetworkFromServerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).RemoveNetworkFromServerExecute), r) } // RemoveNicFromServer mocks base method. -func (m *MockDefaultApi) RemoveNicFromServer(ctx context.Context, projectId, region, serverId, nicId string) iaas.ApiRemoveNicFromServerRequest { +func (m *MockDefaultAPI) RemoveNicFromServer(ctx context.Context, projectId, region, serverId, nicId string) v2api.ApiRemoveNicFromServerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "RemoveNicFromServer", ctx, projectId, region, serverId, nicId) - ret0, _ := ret[0].(iaas.ApiRemoveNicFromServerRequest) + ret0, _ := ret[0].(v2api.ApiRemoveNicFromServerRequest) return ret0 } // RemoveNicFromServer indicates an expected call of RemoveNicFromServer. -func (mr *MockDefaultApiMockRecorder) RemoveNicFromServer(ctx, projectId, region, serverId, nicId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) RemoveNicFromServer(ctx, projectId, region, serverId, nicId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveNicFromServer", reflect.TypeOf((*MockDefaultApi)(nil).RemoveNicFromServer), ctx, projectId, region, serverId, nicId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveNicFromServer", reflect.TypeOf((*MockDefaultAPI)(nil).RemoveNicFromServer), ctx, projectId, region, serverId, nicId) } // RemoveNicFromServerExecute mocks base method. -func (m *MockDefaultApi) RemoveNicFromServerExecute(ctx context.Context, projectId, region, serverId, nicId string) error { +func (m *MockDefaultAPI) RemoveNicFromServerExecute(r v2api.ApiRemoveNicFromServerRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RemoveNicFromServerExecute", ctx, projectId, region, serverId, nicId) + ret := m.ctrl.Call(m, "RemoveNicFromServerExecute", r) ret0, _ := ret[0].(error) return ret0 } // RemoveNicFromServerExecute indicates an expected call of RemoveNicFromServerExecute. -func (mr *MockDefaultApiMockRecorder) RemoveNicFromServerExecute(ctx, projectId, region, serverId, nicId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) RemoveNicFromServerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveNicFromServerExecute", reflect.TypeOf((*MockDefaultApi)(nil).RemoveNicFromServerExecute), ctx, projectId, region, serverId, nicId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveNicFromServerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).RemoveNicFromServerExecute), r) } // RemovePublicIpFromServer mocks base method. -func (m *MockDefaultApi) RemovePublicIpFromServer(ctx context.Context, projectId, region, serverId, publicIpId string) iaas.ApiRemovePublicIpFromServerRequest { +func (m *MockDefaultAPI) RemovePublicIpFromServer(ctx context.Context, projectId, region, serverId, publicIpId string) v2api.ApiRemovePublicIpFromServerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "RemovePublicIpFromServer", ctx, projectId, region, serverId, publicIpId) - ret0, _ := ret[0].(iaas.ApiRemovePublicIpFromServerRequest) + ret0, _ := ret[0].(v2api.ApiRemovePublicIpFromServerRequest) return ret0 } // RemovePublicIpFromServer indicates an expected call of RemovePublicIpFromServer. -func (mr *MockDefaultApiMockRecorder) RemovePublicIpFromServer(ctx, projectId, region, serverId, publicIpId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) RemovePublicIpFromServer(ctx, projectId, region, serverId, publicIpId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemovePublicIpFromServer", reflect.TypeOf((*MockDefaultApi)(nil).RemovePublicIpFromServer), ctx, projectId, region, serverId, publicIpId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemovePublicIpFromServer", reflect.TypeOf((*MockDefaultAPI)(nil).RemovePublicIpFromServer), ctx, projectId, region, serverId, publicIpId) } // RemovePublicIpFromServerExecute mocks base method. -func (m *MockDefaultApi) RemovePublicIpFromServerExecute(ctx context.Context, projectId, region, serverId, publicIpId string) error { +func (m *MockDefaultAPI) RemovePublicIpFromServerExecute(r v2api.ApiRemovePublicIpFromServerRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RemovePublicIpFromServerExecute", ctx, projectId, region, serverId, publicIpId) + ret := m.ctrl.Call(m, "RemovePublicIpFromServerExecute", r) ret0, _ := ret[0].(error) return ret0 } // RemovePublicIpFromServerExecute indicates an expected call of RemovePublicIpFromServerExecute. -func (mr *MockDefaultApiMockRecorder) RemovePublicIpFromServerExecute(ctx, projectId, region, serverId, publicIpId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) RemovePublicIpFromServerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemovePublicIpFromServerExecute", reflect.TypeOf((*MockDefaultApi)(nil).RemovePublicIpFromServerExecute), ctx, projectId, region, serverId, publicIpId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemovePublicIpFromServerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).RemovePublicIpFromServerExecute), r) } // RemoveSecurityGroupFromServer mocks base method. -func (m *MockDefaultApi) RemoveSecurityGroupFromServer(ctx context.Context, projectId, region, serverId, securityGroupId string) iaas.ApiRemoveSecurityGroupFromServerRequest { +func (m *MockDefaultAPI) RemoveSecurityGroupFromServer(ctx context.Context, projectId, region, serverId, securityGroupId string) v2api.ApiRemoveSecurityGroupFromServerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "RemoveSecurityGroupFromServer", ctx, projectId, region, serverId, securityGroupId) - ret0, _ := ret[0].(iaas.ApiRemoveSecurityGroupFromServerRequest) + ret0, _ := ret[0].(v2api.ApiRemoveSecurityGroupFromServerRequest) return ret0 } // RemoveSecurityGroupFromServer indicates an expected call of RemoveSecurityGroupFromServer. -func (mr *MockDefaultApiMockRecorder) RemoveSecurityGroupFromServer(ctx, projectId, region, serverId, securityGroupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) RemoveSecurityGroupFromServer(ctx, projectId, region, serverId, securityGroupId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveSecurityGroupFromServer", reflect.TypeOf((*MockDefaultApi)(nil).RemoveSecurityGroupFromServer), ctx, projectId, region, serverId, securityGroupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveSecurityGroupFromServer", reflect.TypeOf((*MockDefaultAPI)(nil).RemoveSecurityGroupFromServer), ctx, projectId, region, serverId, securityGroupId) } // RemoveSecurityGroupFromServerExecute mocks base method. -func (m *MockDefaultApi) RemoveSecurityGroupFromServerExecute(ctx context.Context, projectId, region, serverId, securityGroupId string) error { +func (m *MockDefaultAPI) RemoveSecurityGroupFromServerExecute(r v2api.ApiRemoveSecurityGroupFromServerRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RemoveSecurityGroupFromServerExecute", ctx, projectId, region, serverId, securityGroupId) + ret := m.ctrl.Call(m, "RemoveSecurityGroupFromServerExecute", r) ret0, _ := ret[0].(error) return ret0 } // RemoveSecurityGroupFromServerExecute indicates an expected call of RemoveSecurityGroupFromServerExecute. -func (mr *MockDefaultApiMockRecorder) RemoveSecurityGroupFromServerExecute(ctx, projectId, region, serverId, securityGroupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) RemoveSecurityGroupFromServerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveSecurityGroupFromServerExecute", reflect.TypeOf((*MockDefaultApi)(nil).RemoveSecurityGroupFromServerExecute), ctx, projectId, region, serverId, securityGroupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveSecurityGroupFromServerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).RemoveSecurityGroupFromServerExecute), r) } // RemoveServiceAccountFromServer mocks base method. -func (m *MockDefaultApi) RemoveServiceAccountFromServer(ctx context.Context, projectId, region, serverId, serviceAccountMail string) iaas.ApiRemoveServiceAccountFromServerRequest { +func (m *MockDefaultAPI) RemoveServiceAccountFromServer(ctx context.Context, projectId, region, serverId, serviceAccountMail string) v2api.ApiRemoveServiceAccountFromServerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "RemoveServiceAccountFromServer", ctx, projectId, region, serverId, serviceAccountMail) - ret0, _ := ret[0].(iaas.ApiRemoveServiceAccountFromServerRequest) + ret0, _ := ret[0].(v2api.ApiRemoveServiceAccountFromServerRequest) return ret0 } // RemoveServiceAccountFromServer indicates an expected call of RemoveServiceAccountFromServer. -func (mr *MockDefaultApiMockRecorder) RemoveServiceAccountFromServer(ctx, projectId, region, serverId, serviceAccountMail any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) RemoveServiceAccountFromServer(ctx, projectId, region, serverId, serviceAccountMail any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveServiceAccountFromServer", reflect.TypeOf((*MockDefaultApi)(nil).RemoveServiceAccountFromServer), ctx, projectId, region, serverId, serviceAccountMail) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveServiceAccountFromServer", reflect.TypeOf((*MockDefaultAPI)(nil).RemoveServiceAccountFromServer), ctx, projectId, region, serverId, serviceAccountMail) } // RemoveServiceAccountFromServerExecute mocks base method. -func (m *MockDefaultApi) RemoveServiceAccountFromServerExecute(ctx context.Context, projectId, region, serverId, serviceAccountMail string) (*iaas.ServiceAccountMailListResponse, error) { +func (m *MockDefaultAPI) RemoveServiceAccountFromServerExecute(r v2api.ApiRemoveServiceAccountFromServerRequest) (*v2api.ServiceAccountMailListResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RemoveServiceAccountFromServerExecute", ctx, projectId, region, serverId, serviceAccountMail) - ret0, _ := ret[0].(*iaas.ServiceAccountMailListResponse) + ret := m.ctrl.Call(m, "RemoveServiceAccountFromServerExecute", r) + ret0, _ := ret[0].(*v2api.ServiceAccountMailListResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // RemoveServiceAccountFromServerExecute indicates an expected call of RemoveServiceAccountFromServerExecute. -func (mr *MockDefaultApiMockRecorder) RemoveServiceAccountFromServerExecute(ctx, projectId, region, serverId, serviceAccountMail any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) RemoveServiceAccountFromServerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveServiceAccountFromServerExecute", reflect.TypeOf((*MockDefaultApi)(nil).RemoveServiceAccountFromServerExecute), ctx, projectId, region, serverId, serviceAccountMail) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveServiceAccountFromServerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).RemoveServiceAccountFromServerExecute), r) } // RemoveVolumeFromServer mocks base method. -func (m *MockDefaultApi) RemoveVolumeFromServer(ctx context.Context, projectId, region, serverId, volumeId string) iaas.ApiRemoveVolumeFromServerRequest { +func (m *MockDefaultAPI) RemoveVolumeFromServer(ctx context.Context, projectId, region, serverId, volumeId string) v2api.ApiRemoveVolumeFromServerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "RemoveVolumeFromServer", ctx, projectId, region, serverId, volumeId) - ret0, _ := ret[0].(iaas.ApiRemoveVolumeFromServerRequest) + ret0, _ := ret[0].(v2api.ApiRemoveVolumeFromServerRequest) return ret0 } // RemoveVolumeFromServer indicates an expected call of RemoveVolumeFromServer. -func (mr *MockDefaultApiMockRecorder) RemoveVolumeFromServer(ctx, projectId, region, serverId, volumeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) RemoveVolumeFromServer(ctx, projectId, region, serverId, volumeId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveVolumeFromServer", reflect.TypeOf((*MockDefaultApi)(nil).RemoveVolumeFromServer), ctx, projectId, region, serverId, volumeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveVolumeFromServer", reflect.TypeOf((*MockDefaultAPI)(nil).RemoveVolumeFromServer), ctx, projectId, region, serverId, volumeId) } // RemoveVolumeFromServerExecute mocks base method. -func (m *MockDefaultApi) RemoveVolumeFromServerExecute(ctx context.Context, projectId, region, serverId, volumeId string) error { +func (m *MockDefaultAPI) RemoveVolumeFromServerExecute(r v2api.ApiRemoveVolumeFromServerRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RemoveVolumeFromServerExecute", ctx, projectId, region, serverId, volumeId) + ret := m.ctrl.Call(m, "RemoveVolumeFromServerExecute", r) ret0, _ := ret[0].(error) return ret0 } // RemoveVolumeFromServerExecute indicates an expected call of RemoveVolumeFromServerExecute. -func (mr *MockDefaultApiMockRecorder) RemoveVolumeFromServerExecute(ctx, projectId, region, serverId, volumeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) RemoveVolumeFromServerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveVolumeFromServerExecute", reflect.TypeOf((*MockDefaultApi)(nil).RemoveVolumeFromServerExecute), ctx, projectId, region, serverId, volumeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveVolumeFromServerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).RemoveVolumeFromServerExecute), r) } // RescueServer mocks base method. -func (m *MockDefaultApi) RescueServer(ctx context.Context, projectId, region, serverId string) iaas.ApiRescueServerRequest { +func (m *MockDefaultAPI) RescueServer(ctx context.Context, projectId, region, serverId string) v2api.ApiRescueServerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "RescueServer", ctx, projectId, region, serverId) - ret0, _ := ret[0].(iaas.ApiRescueServerRequest) + ret0, _ := ret[0].(v2api.ApiRescueServerRequest) return ret0 } // RescueServer indicates an expected call of RescueServer. -func (mr *MockDefaultApiMockRecorder) RescueServer(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) RescueServer(ctx, projectId, region, serverId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RescueServer", reflect.TypeOf((*MockDefaultApi)(nil).RescueServer), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RescueServer", reflect.TypeOf((*MockDefaultAPI)(nil).RescueServer), ctx, projectId, region, serverId) } // RescueServerExecute mocks base method. -func (m *MockDefaultApi) RescueServerExecute(ctx context.Context, projectId, region, serverId string) error { +func (m *MockDefaultAPI) RescueServerExecute(r v2api.ApiRescueServerRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RescueServerExecute", ctx, projectId, region, serverId) + ret := m.ctrl.Call(m, "RescueServerExecute", r) ret0, _ := ret[0].(error) return ret0 } // RescueServerExecute indicates an expected call of RescueServerExecute. -func (mr *MockDefaultApiMockRecorder) RescueServerExecute(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) RescueServerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RescueServerExecute", reflect.TypeOf((*MockDefaultApi)(nil).RescueServerExecute), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RescueServerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).RescueServerExecute), r) } // ResizeServer mocks base method. -func (m *MockDefaultApi) ResizeServer(ctx context.Context, projectId, region, serverId string) iaas.ApiResizeServerRequest { +func (m *MockDefaultAPI) ResizeServer(ctx context.Context, projectId, region, serverId string) v2api.ApiResizeServerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ResizeServer", ctx, projectId, region, serverId) - ret0, _ := ret[0].(iaas.ApiResizeServerRequest) + ret0, _ := ret[0].(v2api.ApiResizeServerRequest) return ret0 } // ResizeServer indicates an expected call of ResizeServer. -func (mr *MockDefaultApiMockRecorder) ResizeServer(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ResizeServer(ctx, projectId, region, serverId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResizeServer", reflect.TypeOf((*MockDefaultApi)(nil).ResizeServer), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResizeServer", reflect.TypeOf((*MockDefaultAPI)(nil).ResizeServer), ctx, projectId, region, serverId) } // ResizeServerExecute mocks base method. -func (m *MockDefaultApi) ResizeServerExecute(ctx context.Context, projectId, region, serverId string) error { +func (m *MockDefaultAPI) ResizeServerExecute(r v2api.ApiResizeServerRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ResizeServerExecute", ctx, projectId, region, serverId) + ret := m.ctrl.Call(m, "ResizeServerExecute", r) ret0, _ := ret[0].(error) return ret0 } // ResizeServerExecute indicates an expected call of ResizeServerExecute. -func (mr *MockDefaultApiMockRecorder) ResizeServerExecute(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ResizeServerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResizeServerExecute", reflect.TypeOf((*MockDefaultApi)(nil).ResizeServerExecute), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResizeServerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ResizeServerExecute), r) } // ResizeVolume mocks base method. -func (m *MockDefaultApi) ResizeVolume(ctx context.Context, projectId, region, volumeId string) iaas.ApiResizeVolumeRequest { +func (m *MockDefaultAPI) ResizeVolume(ctx context.Context, projectId, region, volumeId string) v2api.ApiResizeVolumeRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ResizeVolume", ctx, projectId, region, volumeId) - ret0, _ := ret[0].(iaas.ApiResizeVolumeRequest) + ret0, _ := ret[0].(v2api.ApiResizeVolumeRequest) return ret0 } // ResizeVolume indicates an expected call of ResizeVolume. -func (mr *MockDefaultApiMockRecorder) ResizeVolume(ctx, projectId, region, volumeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ResizeVolume(ctx, projectId, region, volumeId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResizeVolume", reflect.TypeOf((*MockDefaultApi)(nil).ResizeVolume), ctx, projectId, region, volumeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResizeVolume", reflect.TypeOf((*MockDefaultAPI)(nil).ResizeVolume), ctx, projectId, region, volumeId) } // ResizeVolumeExecute mocks base method. -func (m *MockDefaultApi) ResizeVolumeExecute(ctx context.Context, projectId, region, volumeId string) error { +func (m *MockDefaultAPI) ResizeVolumeExecute(r v2api.ApiResizeVolumeRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ResizeVolumeExecute", ctx, projectId, region, volumeId) + ret := m.ctrl.Call(m, "ResizeVolumeExecute", r) ret0, _ := ret[0].(error) return ret0 } // ResizeVolumeExecute indicates an expected call of ResizeVolumeExecute. -func (mr *MockDefaultApiMockRecorder) ResizeVolumeExecute(ctx, projectId, region, volumeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ResizeVolumeExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResizeVolumeExecute", reflect.TypeOf((*MockDefaultApi)(nil).ResizeVolumeExecute), ctx, projectId, region, volumeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResizeVolumeExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ResizeVolumeExecute), r) } // RestoreBackup mocks base method. -func (m *MockDefaultApi) RestoreBackup(ctx context.Context, projectId, region, backupId string) iaas.ApiRestoreBackupRequest { +func (m *MockDefaultAPI) RestoreBackup(ctx context.Context, projectId, region, backupId string) v2api.ApiRestoreBackupRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "RestoreBackup", ctx, projectId, region, backupId) - ret0, _ := ret[0].(iaas.ApiRestoreBackupRequest) + ret0, _ := ret[0].(v2api.ApiRestoreBackupRequest) return ret0 } // RestoreBackup indicates an expected call of RestoreBackup. -func (mr *MockDefaultApiMockRecorder) RestoreBackup(ctx, projectId, region, backupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) RestoreBackup(ctx, projectId, region, backupId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RestoreBackup", reflect.TypeOf((*MockDefaultApi)(nil).RestoreBackup), ctx, projectId, region, backupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RestoreBackup", reflect.TypeOf((*MockDefaultAPI)(nil).RestoreBackup), ctx, projectId, region, backupId) } // RestoreBackupExecute mocks base method. -func (m *MockDefaultApi) RestoreBackupExecute(ctx context.Context, projectId, region, backupId string) error { +func (m *MockDefaultAPI) RestoreBackupExecute(r v2api.ApiRestoreBackupRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RestoreBackupExecute", ctx, projectId, region, backupId) + ret := m.ctrl.Call(m, "RestoreBackupExecute", r) ret0, _ := ret[0].(error) return ret0 } // RestoreBackupExecute indicates an expected call of RestoreBackupExecute. -func (mr *MockDefaultApiMockRecorder) RestoreBackupExecute(ctx, projectId, region, backupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) RestoreBackupExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RestoreBackupExecute", reflect.TypeOf((*MockDefaultApi)(nil).RestoreBackupExecute), ctx, projectId, region, backupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RestoreBackupExecute", reflect.TypeOf((*MockDefaultAPI)(nil).RestoreBackupExecute), r) } // SetImageShare mocks base method. -func (m *MockDefaultApi) SetImageShare(ctx context.Context, projectId, region, imageId string) iaas.ApiSetImageShareRequest { +func (m *MockDefaultAPI) SetImageShare(ctx context.Context, projectId, region, imageId string) v2api.ApiSetImageShareRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "SetImageShare", ctx, projectId, region, imageId) - ret0, _ := ret[0].(iaas.ApiSetImageShareRequest) + ret0, _ := ret[0].(v2api.ApiSetImageShareRequest) return ret0 } // SetImageShare indicates an expected call of SetImageShare. -func (mr *MockDefaultApiMockRecorder) SetImageShare(ctx, projectId, region, imageId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) SetImageShare(ctx, projectId, region, imageId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetImageShare", reflect.TypeOf((*MockDefaultApi)(nil).SetImageShare), ctx, projectId, region, imageId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetImageShare", reflect.TypeOf((*MockDefaultAPI)(nil).SetImageShare), ctx, projectId, region, imageId) } // SetImageShareExecute mocks base method. -func (m *MockDefaultApi) SetImageShareExecute(ctx context.Context, projectId, region, imageId string) (*iaas.ImageShare, error) { +func (m *MockDefaultAPI) SetImageShareExecute(r v2api.ApiSetImageShareRequest) (*v2api.ImageShare, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "SetImageShareExecute", ctx, projectId, region, imageId) - ret0, _ := ret[0].(*iaas.ImageShare) + ret := m.ctrl.Call(m, "SetImageShareExecute", r) + ret0, _ := ret[0].(*v2api.ImageShare) ret1, _ := ret[1].(error) return ret0, ret1 } // SetImageShareExecute indicates an expected call of SetImageShareExecute. -func (mr *MockDefaultApiMockRecorder) SetImageShareExecute(ctx, projectId, region, imageId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) SetImageShareExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetImageShareExecute", reflect.TypeOf((*MockDefaultApi)(nil).SetImageShareExecute), ctx, projectId, region, imageId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetImageShareExecute", reflect.TypeOf((*MockDefaultAPI)(nil).SetImageShareExecute), r) } // StartServer mocks base method. -func (m *MockDefaultApi) StartServer(ctx context.Context, projectId, region, serverId string) iaas.ApiStartServerRequest { +func (m *MockDefaultAPI) StartServer(ctx context.Context, projectId, region, serverId string) v2api.ApiStartServerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "StartServer", ctx, projectId, region, serverId) - ret0, _ := ret[0].(iaas.ApiStartServerRequest) + ret0, _ := ret[0].(v2api.ApiStartServerRequest) return ret0 } // StartServer indicates an expected call of StartServer. -func (mr *MockDefaultApiMockRecorder) StartServer(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) StartServer(ctx, projectId, region, serverId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StartServer", reflect.TypeOf((*MockDefaultApi)(nil).StartServer), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StartServer", reflect.TypeOf((*MockDefaultAPI)(nil).StartServer), ctx, projectId, region, serverId) } // StartServerExecute mocks base method. -func (m *MockDefaultApi) StartServerExecute(ctx context.Context, projectId, region, serverId string) error { +func (m *MockDefaultAPI) StartServerExecute(r v2api.ApiStartServerRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "StartServerExecute", ctx, projectId, region, serverId) + ret := m.ctrl.Call(m, "StartServerExecute", r) ret0, _ := ret[0].(error) return ret0 } // StartServerExecute indicates an expected call of StartServerExecute. -func (mr *MockDefaultApiMockRecorder) StartServerExecute(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) StartServerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StartServerExecute", reflect.TypeOf((*MockDefaultApi)(nil).StartServerExecute), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StartServerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).StartServerExecute), r) } // StopServer mocks base method. -func (m *MockDefaultApi) StopServer(ctx context.Context, projectId, region, serverId string) iaas.ApiStopServerRequest { +func (m *MockDefaultAPI) StopServer(ctx context.Context, projectId, region, serverId string) v2api.ApiStopServerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "StopServer", ctx, projectId, region, serverId) - ret0, _ := ret[0].(iaas.ApiStopServerRequest) + ret0, _ := ret[0].(v2api.ApiStopServerRequest) return ret0 } // StopServer indicates an expected call of StopServer. -func (mr *MockDefaultApiMockRecorder) StopServer(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) StopServer(ctx, projectId, region, serverId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StopServer", reflect.TypeOf((*MockDefaultApi)(nil).StopServer), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StopServer", reflect.TypeOf((*MockDefaultAPI)(nil).StopServer), ctx, projectId, region, serverId) } // StopServerExecute mocks base method. -func (m *MockDefaultApi) StopServerExecute(ctx context.Context, projectId, region, serverId string) error { +func (m *MockDefaultAPI) StopServerExecute(r v2api.ApiStopServerRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "StopServerExecute", ctx, projectId, region, serverId) + ret := m.ctrl.Call(m, "StopServerExecute", r) ret0, _ := ret[0].(error) return ret0 } // StopServerExecute indicates an expected call of StopServerExecute. -func (mr *MockDefaultApiMockRecorder) StopServerExecute(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) StopServerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StopServerExecute", reflect.TypeOf((*MockDefaultApi)(nil).StopServerExecute), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StopServerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).StopServerExecute), r) } // UnrescueServer mocks base method. -func (m *MockDefaultApi) UnrescueServer(ctx context.Context, projectId, region, serverId string) iaas.ApiUnrescueServerRequest { +func (m *MockDefaultAPI) UnrescueServer(ctx context.Context, projectId, region, serverId string) v2api.ApiUnrescueServerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UnrescueServer", ctx, projectId, region, serverId) - ret0, _ := ret[0].(iaas.ApiUnrescueServerRequest) + ret0, _ := ret[0].(v2api.ApiUnrescueServerRequest) return ret0 } // UnrescueServer indicates an expected call of UnrescueServer. -func (mr *MockDefaultApiMockRecorder) UnrescueServer(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UnrescueServer(ctx, projectId, region, serverId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UnrescueServer", reflect.TypeOf((*MockDefaultApi)(nil).UnrescueServer), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UnrescueServer", reflect.TypeOf((*MockDefaultAPI)(nil).UnrescueServer), ctx, projectId, region, serverId) } // UnrescueServerExecute mocks base method. -func (m *MockDefaultApi) UnrescueServerExecute(ctx context.Context, projectId, region, serverId string) error { +func (m *MockDefaultAPI) UnrescueServerExecute(r v2api.ApiUnrescueServerRequest) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UnrescueServerExecute", ctx, projectId, region, serverId) + ret := m.ctrl.Call(m, "UnrescueServerExecute", r) ret0, _ := ret[0].(error) return ret0 } // UnrescueServerExecute indicates an expected call of UnrescueServerExecute. -func (mr *MockDefaultApiMockRecorder) UnrescueServerExecute(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UnrescueServerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UnrescueServerExecute", reflect.TypeOf((*MockDefaultApi)(nil).UnrescueServerExecute), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UnrescueServerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).UnrescueServerExecute), r) } // UpdateAttachedVolume mocks base method. -func (m *MockDefaultApi) UpdateAttachedVolume(ctx context.Context, projectId, region, serverId, volumeId string) iaas.ApiUpdateAttachedVolumeRequest { +func (m *MockDefaultAPI) UpdateAttachedVolume(ctx context.Context, projectId, region, serverId, volumeId string) v2api.ApiUpdateAttachedVolumeRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UpdateAttachedVolume", ctx, projectId, region, serverId, volumeId) - ret0, _ := ret[0].(iaas.ApiUpdateAttachedVolumeRequest) + ret0, _ := ret[0].(v2api.ApiUpdateAttachedVolumeRequest) return ret0 } // UpdateAttachedVolume indicates an expected call of UpdateAttachedVolume. -func (mr *MockDefaultApiMockRecorder) UpdateAttachedVolume(ctx, projectId, region, serverId, volumeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateAttachedVolume(ctx, projectId, region, serverId, volumeId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateAttachedVolume", reflect.TypeOf((*MockDefaultApi)(nil).UpdateAttachedVolume), ctx, projectId, region, serverId, volumeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateAttachedVolume", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateAttachedVolume), ctx, projectId, region, serverId, volumeId) } // UpdateAttachedVolumeExecute mocks base method. -func (m *MockDefaultApi) UpdateAttachedVolumeExecute(ctx context.Context, projectId, region, serverId, volumeId string) (*iaas.VolumeAttachment, error) { +func (m *MockDefaultAPI) UpdateAttachedVolumeExecute(r v2api.ApiUpdateAttachedVolumeRequest) (*v2api.VolumeAttachment, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateAttachedVolumeExecute", ctx, projectId, region, serverId, volumeId) - ret0, _ := ret[0].(*iaas.VolumeAttachment) + ret := m.ctrl.Call(m, "UpdateAttachedVolumeExecute", r) + ret0, _ := ret[0].(*v2api.VolumeAttachment) ret1, _ := ret[1].(error) return ret0, ret1 } // UpdateAttachedVolumeExecute indicates an expected call of UpdateAttachedVolumeExecute. -func (mr *MockDefaultApiMockRecorder) UpdateAttachedVolumeExecute(ctx, projectId, region, serverId, volumeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateAttachedVolumeExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateAttachedVolumeExecute", reflect.TypeOf((*MockDefaultApi)(nil).UpdateAttachedVolumeExecute), ctx, projectId, region, serverId, volumeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateAttachedVolumeExecute", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateAttachedVolumeExecute), r) } // UpdateBackup mocks base method. -func (m *MockDefaultApi) UpdateBackup(ctx context.Context, projectId, region, backupId string) iaas.ApiUpdateBackupRequest { +func (m *MockDefaultAPI) UpdateBackup(ctx context.Context, projectId, region, backupId string) v2api.ApiUpdateBackupRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UpdateBackup", ctx, projectId, region, backupId) - ret0, _ := ret[0].(iaas.ApiUpdateBackupRequest) + ret0, _ := ret[0].(v2api.ApiUpdateBackupRequest) return ret0 } // UpdateBackup indicates an expected call of UpdateBackup. -func (mr *MockDefaultApiMockRecorder) UpdateBackup(ctx, projectId, region, backupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateBackup(ctx, projectId, region, backupId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateBackup", reflect.TypeOf((*MockDefaultApi)(nil).UpdateBackup), ctx, projectId, region, backupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateBackup", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateBackup), ctx, projectId, region, backupId) } // UpdateBackupExecute mocks base method. -func (m *MockDefaultApi) UpdateBackupExecute(ctx context.Context, projectId, region, backupId string) (*iaas.Backup, error) { +func (m *MockDefaultAPI) UpdateBackupExecute(r v2api.ApiUpdateBackupRequest) (*v2api.Backup, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateBackupExecute", ctx, projectId, region, backupId) - ret0, _ := ret[0].(*iaas.Backup) + ret := m.ctrl.Call(m, "UpdateBackupExecute", r) + ret0, _ := ret[0].(*v2api.Backup) ret1, _ := ret[1].(error) return ret0, ret1 } // UpdateBackupExecute indicates an expected call of UpdateBackupExecute. -func (mr *MockDefaultApiMockRecorder) UpdateBackupExecute(ctx, projectId, region, backupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateBackupExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateBackupExecute", reflect.TypeOf((*MockDefaultApi)(nil).UpdateBackupExecute), ctx, projectId, region, backupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateBackupExecute", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateBackupExecute), r) } // UpdateImage mocks base method. -func (m *MockDefaultApi) UpdateImage(ctx context.Context, projectId, region, imageId string) iaas.ApiUpdateImageRequest { +func (m *MockDefaultAPI) UpdateImage(ctx context.Context, projectId, region, imageId string) v2api.ApiUpdateImageRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UpdateImage", ctx, projectId, region, imageId) - ret0, _ := ret[0].(iaas.ApiUpdateImageRequest) + ret0, _ := ret[0].(v2api.ApiUpdateImageRequest) return ret0 } // UpdateImage indicates an expected call of UpdateImage. -func (mr *MockDefaultApiMockRecorder) UpdateImage(ctx, projectId, region, imageId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateImage(ctx, projectId, region, imageId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateImage", reflect.TypeOf((*MockDefaultApi)(nil).UpdateImage), ctx, projectId, region, imageId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateImage", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateImage), ctx, projectId, region, imageId) } // UpdateImageExecute mocks base method. -func (m *MockDefaultApi) UpdateImageExecute(ctx context.Context, projectId, region, imageId string) (*iaas.Image, error) { +func (m *MockDefaultAPI) UpdateImageExecute(r v2api.ApiUpdateImageRequest) (*v2api.Image, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateImageExecute", ctx, projectId, region, imageId) - ret0, _ := ret[0].(*iaas.Image) + ret := m.ctrl.Call(m, "UpdateImageExecute", r) + ret0, _ := ret[0].(*v2api.Image) ret1, _ := ret[1].(error) return ret0, ret1 } // UpdateImageExecute indicates an expected call of UpdateImageExecute. -func (mr *MockDefaultApiMockRecorder) UpdateImageExecute(ctx, projectId, region, imageId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateImageExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateImageExecute", reflect.TypeOf((*MockDefaultApi)(nil).UpdateImageExecute), ctx, projectId, region, imageId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateImageExecute", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateImageExecute), r) } // UpdateImageShare mocks base method. -func (m *MockDefaultApi) UpdateImageShare(ctx context.Context, projectId, region, imageId string) iaas.ApiUpdateImageShareRequest { +func (m *MockDefaultAPI) UpdateImageShare(ctx context.Context, projectId, region, imageId string) v2api.ApiUpdateImageShareRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UpdateImageShare", ctx, projectId, region, imageId) - ret0, _ := ret[0].(iaas.ApiUpdateImageShareRequest) + ret0, _ := ret[0].(v2api.ApiUpdateImageShareRequest) return ret0 } // UpdateImageShare indicates an expected call of UpdateImageShare. -func (mr *MockDefaultApiMockRecorder) UpdateImageShare(ctx, projectId, region, imageId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateImageShare(ctx, projectId, region, imageId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateImageShare", reflect.TypeOf((*MockDefaultApi)(nil).UpdateImageShare), ctx, projectId, region, imageId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateImageShare", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateImageShare), ctx, projectId, region, imageId) } // UpdateImageShareExecute mocks base method. -func (m *MockDefaultApi) UpdateImageShareExecute(ctx context.Context, projectId, region, imageId string) (*iaas.ImageShare, error) { +func (m *MockDefaultAPI) UpdateImageShareExecute(r v2api.ApiUpdateImageShareRequest) (*v2api.ImageShare, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateImageShareExecute", ctx, projectId, region, imageId) - ret0, _ := ret[0].(*iaas.ImageShare) + ret := m.ctrl.Call(m, "UpdateImageShareExecute", r) + ret0, _ := ret[0].(*v2api.ImageShare) ret1, _ := ret[1].(error) return ret0, ret1 } // UpdateImageShareExecute indicates an expected call of UpdateImageShareExecute. -func (mr *MockDefaultApiMockRecorder) UpdateImageShareExecute(ctx, projectId, region, imageId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateImageShareExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateImageShareExecute", reflect.TypeOf((*MockDefaultApi)(nil).UpdateImageShareExecute), ctx, projectId, region, imageId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateImageShareExecute", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateImageShareExecute), r) } // UpdateKeyPair mocks base method. -func (m *MockDefaultApi) UpdateKeyPair(ctx context.Context, keypairName string) iaas.ApiUpdateKeyPairRequest { +func (m *MockDefaultAPI) UpdateKeyPair(ctx context.Context, keypairName string) v2api.ApiUpdateKeyPairRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UpdateKeyPair", ctx, keypairName) - ret0, _ := ret[0].(iaas.ApiUpdateKeyPairRequest) + ret0, _ := ret[0].(v2api.ApiUpdateKeyPairRequest) return ret0 } // UpdateKeyPair indicates an expected call of UpdateKeyPair. -func (mr *MockDefaultApiMockRecorder) UpdateKeyPair(ctx, keypairName any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateKeyPair(ctx, keypairName any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateKeyPair", reflect.TypeOf((*MockDefaultApi)(nil).UpdateKeyPair), ctx, keypairName) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateKeyPair", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateKeyPair), ctx, keypairName) } // UpdateKeyPairExecute mocks base method. -func (m *MockDefaultApi) UpdateKeyPairExecute(ctx context.Context, keypairName string) (*iaas.Keypair, error) { +func (m *MockDefaultAPI) UpdateKeyPairExecute(r v2api.ApiUpdateKeyPairRequest) (*v2api.Keypair, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateKeyPairExecute", ctx, keypairName) - ret0, _ := ret[0].(*iaas.Keypair) + ret := m.ctrl.Call(m, "UpdateKeyPairExecute", r) + ret0, _ := ret[0].(*v2api.Keypair) ret1, _ := ret[1].(error) return ret0, ret1 } // UpdateKeyPairExecute indicates an expected call of UpdateKeyPairExecute. -func (mr *MockDefaultApiMockRecorder) UpdateKeyPairExecute(ctx, keypairName any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateKeyPairExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateKeyPairExecute", reflect.TypeOf((*MockDefaultApi)(nil).UpdateKeyPairExecute), ctx, keypairName) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateKeyPairExecute", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateKeyPairExecute), r) } // UpdateNetworkAreaRegion mocks base method. -func (m *MockDefaultApi) UpdateNetworkAreaRegion(ctx context.Context, organizationId, areaId, region string) iaas.ApiUpdateNetworkAreaRegionRequest { +func (m *MockDefaultAPI) UpdateNetworkAreaRegion(ctx context.Context, organizationId, areaId, region string) v2api.ApiUpdateNetworkAreaRegionRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UpdateNetworkAreaRegion", ctx, organizationId, areaId, region) - ret0, _ := ret[0].(iaas.ApiUpdateNetworkAreaRegionRequest) + ret0, _ := ret[0].(v2api.ApiUpdateNetworkAreaRegionRequest) return ret0 } // UpdateNetworkAreaRegion indicates an expected call of UpdateNetworkAreaRegion. -func (mr *MockDefaultApiMockRecorder) UpdateNetworkAreaRegion(ctx, organizationId, areaId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateNetworkAreaRegion(ctx, organizationId, areaId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNetworkAreaRegion", reflect.TypeOf((*MockDefaultApi)(nil).UpdateNetworkAreaRegion), ctx, organizationId, areaId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNetworkAreaRegion", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateNetworkAreaRegion), ctx, organizationId, areaId, region) } // UpdateNetworkAreaRegionExecute mocks base method. -func (m *MockDefaultApi) UpdateNetworkAreaRegionExecute(ctx context.Context, organizationId, areaId, region string) (*iaas.RegionalArea, error) { +func (m *MockDefaultAPI) UpdateNetworkAreaRegionExecute(r v2api.ApiUpdateNetworkAreaRegionRequest) (*v2api.RegionalArea, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateNetworkAreaRegionExecute", ctx, organizationId, areaId, region) - ret0, _ := ret[0].(*iaas.RegionalArea) + ret := m.ctrl.Call(m, "UpdateNetworkAreaRegionExecute", r) + ret0, _ := ret[0].(*v2api.RegionalArea) ret1, _ := ret[1].(error) return ret0, ret1 } // UpdateNetworkAreaRegionExecute indicates an expected call of UpdateNetworkAreaRegionExecute. -func (mr *MockDefaultApiMockRecorder) UpdateNetworkAreaRegionExecute(ctx, organizationId, areaId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateNetworkAreaRegionExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNetworkAreaRegionExecute", reflect.TypeOf((*MockDefaultApi)(nil).UpdateNetworkAreaRegionExecute), ctx, organizationId, areaId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNetworkAreaRegionExecute", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateNetworkAreaRegionExecute), r) } // UpdateNetworkAreaRoute mocks base method. -func (m *MockDefaultApi) UpdateNetworkAreaRoute(ctx context.Context, organizationId, areaId, region, routeId string) iaas.ApiUpdateNetworkAreaRouteRequest { +func (m *MockDefaultAPI) UpdateNetworkAreaRoute(ctx context.Context, organizationId, areaId, region, routeId string) v2api.ApiUpdateNetworkAreaRouteRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UpdateNetworkAreaRoute", ctx, organizationId, areaId, region, routeId) - ret0, _ := ret[0].(iaas.ApiUpdateNetworkAreaRouteRequest) + ret0, _ := ret[0].(v2api.ApiUpdateNetworkAreaRouteRequest) return ret0 } // UpdateNetworkAreaRoute indicates an expected call of UpdateNetworkAreaRoute. -func (mr *MockDefaultApiMockRecorder) UpdateNetworkAreaRoute(ctx, organizationId, areaId, region, routeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateNetworkAreaRoute(ctx, organizationId, areaId, region, routeId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNetworkAreaRoute", reflect.TypeOf((*MockDefaultApi)(nil).UpdateNetworkAreaRoute), ctx, organizationId, areaId, region, routeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNetworkAreaRoute", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateNetworkAreaRoute), ctx, organizationId, areaId, region, routeId) } // UpdateNetworkAreaRouteExecute mocks base method. -func (m *MockDefaultApi) UpdateNetworkAreaRouteExecute(ctx context.Context, organizationId, areaId, region, routeId string) (*iaas.Route, error) { +func (m *MockDefaultAPI) UpdateNetworkAreaRouteExecute(r v2api.ApiUpdateNetworkAreaRouteRequest) (*v2api.Route, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateNetworkAreaRouteExecute", ctx, organizationId, areaId, region, routeId) - ret0, _ := ret[0].(*iaas.Route) + ret := m.ctrl.Call(m, "UpdateNetworkAreaRouteExecute", r) + ret0, _ := ret[0].(*v2api.Route) ret1, _ := ret[1].(error) return ret0, ret1 } // UpdateNetworkAreaRouteExecute indicates an expected call of UpdateNetworkAreaRouteExecute. -func (mr *MockDefaultApiMockRecorder) UpdateNetworkAreaRouteExecute(ctx, organizationId, areaId, region, routeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateNetworkAreaRouteExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNetworkAreaRouteExecute", reflect.TypeOf((*MockDefaultApi)(nil).UpdateNetworkAreaRouteExecute), ctx, organizationId, areaId, region, routeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNetworkAreaRouteExecute", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateNetworkAreaRouteExecute), r) } // UpdateNic mocks base method. -func (m *MockDefaultApi) UpdateNic(ctx context.Context, projectId, region, networkId, nicId string) iaas.ApiUpdateNicRequest { +func (m *MockDefaultAPI) UpdateNic(ctx context.Context, projectId, region, networkId, nicId string) v2api.ApiUpdateNicRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UpdateNic", ctx, projectId, region, networkId, nicId) - ret0, _ := ret[0].(iaas.ApiUpdateNicRequest) + ret0, _ := ret[0].(v2api.ApiUpdateNicRequest) return ret0 } // UpdateNic indicates an expected call of UpdateNic. -func (mr *MockDefaultApiMockRecorder) UpdateNic(ctx, projectId, region, networkId, nicId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateNic(ctx, projectId, region, networkId, nicId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNic", reflect.TypeOf((*MockDefaultApi)(nil).UpdateNic), ctx, projectId, region, networkId, nicId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNic", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateNic), ctx, projectId, region, networkId, nicId) } // UpdateNicExecute mocks base method. -func (m *MockDefaultApi) UpdateNicExecute(ctx context.Context, projectId, region, networkId, nicId string) (*iaas.NIC, error) { +func (m *MockDefaultAPI) UpdateNicExecute(r v2api.ApiUpdateNicRequest) (*v2api.NIC, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateNicExecute", ctx, projectId, region, networkId, nicId) - ret0, _ := ret[0].(*iaas.NIC) + ret := m.ctrl.Call(m, "UpdateNicExecute", r) + ret0, _ := ret[0].(*v2api.NIC) ret1, _ := ret[1].(error) return ret0, ret1 } // UpdateNicExecute indicates an expected call of UpdateNicExecute. -func (mr *MockDefaultApiMockRecorder) UpdateNicExecute(ctx, projectId, region, networkId, nicId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateNicExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNicExecute", reflect.TypeOf((*MockDefaultApi)(nil).UpdateNicExecute), ctx, projectId, region, networkId, nicId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNicExecute", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateNicExecute), r) } // UpdatePublicIP mocks base method. -func (m *MockDefaultApi) UpdatePublicIP(ctx context.Context, projectId, region, publicIpId string) iaas.ApiUpdatePublicIPRequest { +func (m *MockDefaultAPI) UpdatePublicIP(ctx context.Context, projectId, region, publicIpId string) v2api.ApiUpdatePublicIPRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UpdatePublicIP", ctx, projectId, region, publicIpId) - ret0, _ := ret[0].(iaas.ApiUpdatePublicIPRequest) + ret0, _ := ret[0].(v2api.ApiUpdatePublicIPRequest) return ret0 } // UpdatePublicIP indicates an expected call of UpdatePublicIP. -func (mr *MockDefaultApiMockRecorder) UpdatePublicIP(ctx, projectId, region, publicIpId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdatePublicIP(ctx, projectId, region, publicIpId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdatePublicIP", reflect.TypeOf((*MockDefaultApi)(nil).UpdatePublicIP), ctx, projectId, region, publicIpId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdatePublicIP", reflect.TypeOf((*MockDefaultAPI)(nil).UpdatePublicIP), ctx, projectId, region, publicIpId) } // UpdatePublicIPExecute mocks base method. -func (m *MockDefaultApi) UpdatePublicIPExecute(ctx context.Context, projectId, region, publicIpId string) (*iaas.PublicIp, error) { +func (m *MockDefaultAPI) UpdatePublicIPExecute(r v2api.ApiUpdatePublicIPRequest) (*v2api.PublicIp, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdatePublicIPExecute", ctx, projectId, region, publicIpId) - ret0, _ := ret[0].(*iaas.PublicIp) + ret := m.ctrl.Call(m, "UpdatePublicIPExecute", r) + ret0, _ := ret[0].(*v2api.PublicIp) ret1, _ := ret[1].(error) return ret0, ret1 } // UpdatePublicIPExecute indicates an expected call of UpdatePublicIPExecute. -func (mr *MockDefaultApiMockRecorder) UpdatePublicIPExecute(ctx, projectId, region, publicIpId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdatePublicIPExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdatePublicIPExecute", reflect.TypeOf((*MockDefaultApi)(nil).UpdatePublicIPExecute), ctx, projectId, region, publicIpId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdatePublicIPExecute", reflect.TypeOf((*MockDefaultAPI)(nil).UpdatePublicIPExecute), r) } // UpdateRouteOfRoutingTable mocks base method. -func (m *MockDefaultApi) UpdateRouteOfRoutingTable(ctx context.Context, organizationId, areaId, region, routingTableId, routeId string) iaas.ApiUpdateRouteOfRoutingTableRequest { +func (m *MockDefaultAPI) UpdateRouteOfRoutingTable(ctx context.Context, organizationId, areaId, region, routingTableId, routeId string) v2api.ApiUpdateRouteOfRoutingTableRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UpdateRouteOfRoutingTable", ctx, organizationId, areaId, region, routingTableId, routeId) - ret0, _ := ret[0].(iaas.ApiUpdateRouteOfRoutingTableRequest) + ret0, _ := ret[0].(v2api.ApiUpdateRouteOfRoutingTableRequest) return ret0 } // UpdateRouteOfRoutingTable indicates an expected call of UpdateRouteOfRoutingTable. -func (mr *MockDefaultApiMockRecorder) UpdateRouteOfRoutingTable(ctx, organizationId, areaId, region, routingTableId, routeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateRouteOfRoutingTable(ctx, organizationId, areaId, region, routingTableId, routeId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateRouteOfRoutingTable", reflect.TypeOf((*MockDefaultApi)(nil).UpdateRouteOfRoutingTable), ctx, organizationId, areaId, region, routingTableId, routeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateRouteOfRoutingTable", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateRouteOfRoutingTable), ctx, organizationId, areaId, region, routingTableId, routeId) } // UpdateRouteOfRoutingTableExecute mocks base method. -func (m *MockDefaultApi) UpdateRouteOfRoutingTableExecute(ctx context.Context, organizationId, areaId, region, routingTableId, routeId string) (*iaas.Route, error) { +func (m *MockDefaultAPI) UpdateRouteOfRoutingTableExecute(r v2api.ApiUpdateRouteOfRoutingTableRequest) (*v2api.Route, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateRouteOfRoutingTableExecute", ctx, organizationId, areaId, region, routingTableId, routeId) - ret0, _ := ret[0].(*iaas.Route) + ret := m.ctrl.Call(m, "UpdateRouteOfRoutingTableExecute", r) + ret0, _ := ret[0].(*v2api.Route) ret1, _ := ret[1].(error) return ret0, ret1 } // UpdateRouteOfRoutingTableExecute indicates an expected call of UpdateRouteOfRoutingTableExecute. -func (mr *MockDefaultApiMockRecorder) UpdateRouteOfRoutingTableExecute(ctx, organizationId, areaId, region, routingTableId, routeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateRouteOfRoutingTableExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateRouteOfRoutingTableExecute", reflect.TypeOf((*MockDefaultApi)(nil).UpdateRouteOfRoutingTableExecute), ctx, organizationId, areaId, region, routingTableId, routeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateRouteOfRoutingTableExecute", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateRouteOfRoutingTableExecute), r) } // UpdateRoutingTableOfArea mocks base method. -func (m *MockDefaultApi) UpdateRoutingTableOfArea(ctx context.Context, organizationId, areaId, region, routingTableId string) iaas.ApiUpdateRoutingTableOfAreaRequest { +func (m *MockDefaultAPI) UpdateRoutingTableOfArea(ctx context.Context, organizationId, areaId, region, routingTableId string) v2api.ApiUpdateRoutingTableOfAreaRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UpdateRoutingTableOfArea", ctx, organizationId, areaId, region, routingTableId) - ret0, _ := ret[0].(iaas.ApiUpdateRoutingTableOfAreaRequest) + ret0, _ := ret[0].(v2api.ApiUpdateRoutingTableOfAreaRequest) return ret0 } // UpdateRoutingTableOfArea indicates an expected call of UpdateRoutingTableOfArea. -func (mr *MockDefaultApiMockRecorder) UpdateRoutingTableOfArea(ctx, organizationId, areaId, region, routingTableId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateRoutingTableOfArea(ctx, organizationId, areaId, region, routingTableId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateRoutingTableOfArea", reflect.TypeOf((*MockDefaultApi)(nil).UpdateRoutingTableOfArea), ctx, organizationId, areaId, region, routingTableId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateRoutingTableOfArea", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateRoutingTableOfArea), ctx, organizationId, areaId, region, routingTableId) } // UpdateRoutingTableOfAreaExecute mocks base method. -func (m *MockDefaultApi) UpdateRoutingTableOfAreaExecute(ctx context.Context, organizationId, areaId, region, routingTableId string) (*iaas.RoutingTable, error) { +func (m *MockDefaultAPI) UpdateRoutingTableOfAreaExecute(r v2api.ApiUpdateRoutingTableOfAreaRequest) (*v2api.RoutingTable, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateRoutingTableOfAreaExecute", ctx, organizationId, areaId, region, routingTableId) - ret0, _ := ret[0].(*iaas.RoutingTable) + ret := m.ctrl.Call(m, "UpdateRoutingTableOfAreaExecute", r) + ret0, _ := ret[0].(*v2api.RoutingTable) ret1, _ := ret[1].(error) return ret0, ret1 } // UpdateRoutingTableOfAreaExecute indicates an expected call of UpdateRoutingTableOfAreaExecute. -func (mr *MockDefaultApiMockRecorder) UpdateRoutingTableOfAreaExecute(ctx, organizationId, areaId, region, routingTableId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateRoutingTableOfAreaExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateRoutingTableOfAreaExecute", reflect.TypeOf((*MockDefaultApi)(nil).UpdateRoutingTableOfAreaExecute), ctx, organizationId, areaId, region, routingTableId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateRoutingTableOfAreaExecute", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateRoutingTableOfAreaExecute), r) } // UpdateSecurityGroup mocks base method. -func (m *MockDefaultApi) UpdateSecurityGroup(ctx context.Context, projectId, region, securityGroupId string) iaas.ApiUpdateSecurityGroupRequest { +func (m *MockDefaultAPI) UpdateSecurityGroup(ctx context.Context, projectId, region, securityGroupId string) v2api.ApiUpdateSecurityGroupRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UpdateSecurityGroup", ctx, projectId, region, securityGroupId) - ret0, _ := ret[0].(iaas.ApiUpdateSecurityGroupRequest) + ret0, _ := ret[0].(v2api.ApiUpdateSecurityGroupRequest) return ret0 } // UpdateSecurityGroup indicates an expected call of UpdateSecurityGroup. -func (mr *MockDefaultApiMockRecorder) UpdateSecurityGroup(ctx, projectId, region, securityGroupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateSecurityGroup(ctx, projectId, region, securityGroupId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSecurityGroup", reflect.TypeOf((*MockDefaultApi)(nil).UpdateSecurityGroup), ctx, projectId, region, securityGroupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSecurityGroup", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateSecurityGroup), ctx, projectId, region, securityGroupId) } // UpdateSecurityGroupExecute mocks base method. -func (m *MockDefaultApi) UpdateSecurityGroupExecute(ctx context.Context, projectId, region, securityGroupId string) (*iaas.SecurityGroup, error) { +func (m *MockDefaultAPI) UpdateSecurityGroupExecute(r v2api.ApiUpdateSecurityGroupRequest) (*v2api.SecurityGroup, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateSecurityGroupExecute", ctx, projectId, region, securityGroupId) - ret0, _ := ret[0].(*iaas.SecurityGroup) + ret := m.ctrl.Call(m, "UpdateSecurityGroupExecute", r) + ret0, _ := ret[0].(*v2api.SecurityGroup) ret1, _ := ret[1].(error) return ret0, ret1 } // UpdateSecurityGroupExecute indicates an expected call of UpdateSecurityGroupExecute. -func (mr *MockDefaultApiMockRecorder) UpdateSecurityGroupExecute(ctx, projectId, region, securityGroupId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateSecurityGroupExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSecurityGroupExecute", reflect.TypeOf((*MockDefaultApi)(nil).UpdateSecurityGroupExecute), ctx, projectId, region, securityGroupId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSecurityGroupExecute", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateSecurityGroupExecute), r) } // UpdateServer mocks base method. -func (m *MockDefaultApi) UpdateServer(ctx context.Context, projectId, region, serverId string) iaas.ApiUpdateServerRequest { +func (m *MockDefaultAPI) UpdateServer(ctx context.Context, projectId, region, serverId string) v2api.ApiUpdateServerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UpdateServer", ctx, projectId, region, serverId) - ret0, _ := ret[0].(iaas.ApiUpdateServerRequest) + ret0, _ := ret[0].(v2api.ApiUpdateServerRequest) return ret0 } // UpdateServer indicates an expected call of UpdateServer. -func (mr *MockDefaultApiMockRecorder) UpdateServer(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateServer(ctx, projectId, region, serverId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateServer", reflect.TypeOf((*MockDefaultApi)(nil).UpdateServer), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateServer", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateServer), ctx, projectId, region, serverId) } // UpdateServerExecute mocks base method. -func (m *MockDefaultApi) UpdateServerExecute(ctx context.Context, projectId, region, serverId string) (*iaas.Server, error) { +func (m *MockDefaultAPI) UpdateServerExecute(r v2api.ApiUpdateServerRequest) (*v2api.Server, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateServerExecute", ctx, projectId, region, serverId) - ret0, _ := ret[0].(*iaas.Server) + ret := m.ctrl.Call(m, "UpdateServerExecute", r) + ret0, _ := ret[0].(*v2api.Server) ret1, _ := ret[1].(error) return ret0, ret1 } // UpdateServerExecute indicates an expected call of UpdateServerExecute. -func (mr *MockDefaultApiMockRecorder) UpdateServerExecute(ctx, projectId, region, serverId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateServerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateServerExecute", reflect.TypeOf((*MockDefaultApi)(nil).UpdateServerExecute), ctx, projectId, region, serverId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateServerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateServerExecute), r) } // UpdateSnapshot mocks base method. -func (m *MockDefaultApi) UpdateSnapshot(ctx context.Context, projectId, region, snapshotId string) iaas.ApiUpdateSnapshotRequest { +func (m *MockDefaultAPI) UpdateSnapshot(ctx context.Context, projectId, region, snapshotId string) v2api.ApiUpdateSnapshotRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UpdateSnapshot", ctx, projectId, region, snapshotId) - ret0, _ := ret[0].(iaas.ApiUpdateSnapshotRequest) + ret0, _ := ret[0].(v2api.ApiUpdateSnapshotRequest) return ret0 } // UpdateSnapshot indicates an expected call of UpdateSnapshot. -func (mr *MockDefaultApiMockRecorder) UpdateSnapshot(ctx, projectId, region, snapshotId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateSnapshot(ctx, projectId, region, snapshotId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSnapshot", reflect.TypeOf((*MockDefaultApi)(nil).UpdateSnapshot), ctx, projectId, region, snapshotId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSnapshot", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateSnapshot), ctx, projectId, region, snapshotId) } // UpdateSnapshotExecute mocks base method. -func (m *MockDefaultApi) UpdateSnapshotExecute(ctx context.Context, projectId, region, snapshotId string) (*iaas.Snapshot, error) { +func (m *MockDefaultAPI) UpdateSnapshotExecute(r v2api.ApiUpdateSnapshotRequest) (*v2api.Snapshot, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateSnapshotExecute", ctx, projectId, region, snapshotId) - ret0, _ := ret[0].(*iaas.Snapshot) + ret := m.ctrl.Call(m, "UpdateSnapshotExecute", r) + ret0, _ := ret[0].(*v2api.Snapshot) ret1, _ := ret[1].(error) return ret0, ret1 } // UpdateSnapshotExecute indicates an expected call of UpdateSnapshotExecute. -func (mr *MockDefaultApiMockRecorder) UpdateSnapshotExecute(ctx, projectId, region, snapshotId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateSnapshotExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSnapshotExecute", reflect.TypeOf((*MockDefaultApi)(nil).UpdateSnapshotExecute), ctx, projectId, region, snapshotId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSnapshotExecute", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateSnapshotExecute), r) } // UpdateVolume mocks base method. -func (m *MockDefaultApi) UpdateVolume(ctx context.Context, projectId, region, volumeId string) iaas.ApiUpdateVolumeRequest { +func (m *MockDefaultAPI) UpdateVolume(ctx context.Context, projectId, region, volumeId string) v2api.ApiUpdateVolumeRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UpdateVolume", ctx, projectId, region, volumeId) - ret0, _ := ret[0].(iaas.ApiUpdateVolumeRequest) + ret0, _ := ret[0].(v2api.ApiUpdateVolumeRequest) return ret0 } // UpdateVolume indicates an expected call of UpdateVolume. -func (mr *MockDefaultApiMockRecorder) UpdateVolume(ctx, projectId, region, volumeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateVolume(ctx, projectId, region, volumeId any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateVolume", reflect.TypeOf((*MockDefaultApi)(nil).UpdateVolume), ctx, projectId, region, volumeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateVolume", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateVolume), ctx, projectId, region, volumeId) } // UpdateVolumeExecute mocks base method. -func (m *MockDefaultApi) UpdateVolumeExecute(ctx context.Context, projectId, region, volumeId string) (*iaas.Volume, error) { +func (m *MockDefaultAPI) UpdateVolumeExecute(r v2api.ApiUpdateVolumeRequest) (*v2api.Volume, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateVolumeExecute", ctx, projectId, region, volumeId) - ret0, _ := ret[0].(*iaas.Volume) + ret := m.ctrl.Call(m, "UpdateVolumeExecute", r) + ret0, _ := ret[0].(*v2api.Volume) ret1, _ := ret[1].(error) return ret0, ret1 } // UpdateVolumeExecute indicates an expected call of UpdateVolumeExecute. -func (mr *MockDefaultApiMockRecorder) UpdateVolumeExecute(ctx, projectId, region, volumeId any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateVolumeExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateVolumeExecute", reflect.TypeOf((*MockDefaultApi)(nil).UpdateVolumeExecute), ctx, projectId, region, volumeId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateVolumeExecute", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateVolumeExecute), r) } diff --git a/pkg/mock/loadbalancer/loadbalancer.go b/pkg/mock/loadbalancer/loadbalancer.go index 7812a003..a54cd092 100644 --- a/pkg/mock/loadbalancer/loadbalancer.go +++ b/pkg/mock/loadbalancer/loadbalancer.go @@ -1,9 +1,9 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: github.com/stackitcloud/stackit-sdk-go/services/loadbalancer (interfaces: ApiCreateCredentialsRequest,ApiCreateLoadBalancerRequest,ApiDeleteCredentialsRequest,ApiDeleteLoadBalancerRequest,ApiGetCredentialsRequest,ApiGetLoadBalancerRequest,ApiGetQuotaRequest,ApiListCredentialsRequest,ApiListLoadBalancersRequest,ApiListPlansRequest,ApiUpdateCredentialsRequest,ApiUpdateLoadBalancerRequest,ApiUpdateTargetPoolRequest,DefaultApi) +// Source: github.com/stackitcloud/stackit-sdk-go/services/loadbalancer/v2api (interfaces: DefaultAPI) // // Generated by this command: // -// mockgen -destination ./pkg/mock/loadbalancer/loadbalancer.go -package loadbalancer github.com/stackitcloud/stackit-sdk-go/services/loadbalancer ApiCreateCredentialsRequest,ApiCreateLoadBalancerRequest,ApiDeleteCredentialsRequest,ApiDeleteLoadBalancerRequest,ApiGetCredentialsRequest,ApiGetLoadBalancerRequest,ApiGetQuotaRequest,ApiListCredentialsRequest,ApiListLoadBalancersRequest,ApiListPlansRequest,ApiUpdateCredentialsRequest,ApiUpdateLoadBalancerRequest,ApiUpdateTargetPoolRequest,DefaultApi +// mockgen -destination ./pkg/mock/loadbalancer/loadbalancer.go -package loadbalancer github.com/stackitcloud/stackit-sdk-go/services/loadbalancer/v2api DefaultAPI // // Package loadbalancer is a generated GoMock package. @@ -13,1040 +13,407 @@ import ( context "context" reflect "reflect" - loadbalancer "github.com/stackitcloud/stackit-sdk-go/services/loadbalancer" + v2api "github.com/stackitcloud/stackit-sdk-go/services/loadbalancer/v2api" gomock "go.uber.org/mock/gomock" ) -// MockApiCreateCredentialsRequest is a mock of ApiCreateCredentialsRequest interface. -type MockApiCreateCredentialsRequest struct { +// MockDefaultAPI is a mock of DefaultAPI interface. +type MockDefaultAPI struct { ctrl *gomock.Controller - recorder *MockApiCreateCredentialsRequestMockRecorder + recorder *MockDefaultAPIMockRecorder isgomock struct{} } -// MockApiCreateCredentialsRequestMockRecorder is the mock recorder for MockApiCreateCredentialsRequest. -type MockApiCreateCredentialsRequestMockRecorder struct { - mock *MockApiCreateCredentialsRequest +// MockDefaultAPIMockRecorder is the mock recorder for MockDefaultAPI. +type MockDefaultAPIMockRecorder struct { + mock *MockDefaultAPI } -// NewMockApiCreateCredentialsRequest creates a new mock instance. -func NewMockApiCreateCredentialsRequest(ctrl *gomock.Controller) *MockApiCreateCredentialsRequest { - mock := &MockApiCreateCredentialsRequest{ctrl: ctrl} - mock.recorder = &MockApiCreateCredentialsRequestMockRecorder{mock} +// NewMockDefaultAPI creates a new mock instance. +func NewMockDefaultAPI(ctrl *gomock.Controller) *MockDefaultAPI { + mock := &MockDefaultAPI{ctrl: ctrl} + mock.recorder = &MockDefaultAPIMockRecorder{mock} return mock } // EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiCreateCredentialsRequest) EXPECT() *MockApiCreateCredentialsRequestMockRecorder { - return m.recorder -} - -// CreateCredentialsPayload mocks base method. -func (m *MockApiCreateCredentialsRequest) CreateCredentialsPayload(createCredentialsPayload loadbalancer.CreateCredentialsPayload) loadbalancer.ApiCreateCredentialsRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateCredentialsPayload", createCredentialsPayload) - ret0, _ := ret[0].(loadbalancer.ApiCreateCredentialsRequest) - return ret0 -} - -// CreateCredentialsPayload indicates an expected call of CreateCredentialsPayload. -func (mr *MockApiCreateCredentialsRequestMockRecorder) CreateCredentialsPayload(createCredentialsPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateCredentialsPayload", reflect.TypeOf((*MockApiCreateCredentialsRequest)(nil).CreateCredentialsPayload), createCredentialsPayload) -} - -// Execute mocks base method. -func (m *MockApiCreateCredentialsRequest) Execute() (*loadbalancer.CreateCredentialsResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*loadbalancer.CreateCredentialsResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiCreateCredentialsRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiCreateCredentialsRequest)(nil).Execute)) -} - -// XRequestID mocks base method. -func (m *MockApiCreateCredentialsRequest) XRequestID(xRequestID string) loadbalancer.ApiCreateCredentialsRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "XRequestID", xRequestID) - ret0, _ := ret[0].(loadbalancer.ApiCreateCredentialsRequest) - return ret0 -} - -// XRequestID indicates an expected call of XRequestID. -func (mr *MockApiCreateCredentialsRequestMockRecorder) XRequestID(xRequestID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "XRequestID", reflect.TypeOf((*MockApiCreateCredentialsRequest)(nil).XRequestID), xRequestID) -} - -// MockApiCreateLoadBalancerRequest is a mock of ApiCreateLoadBalancerRequest interface. -type MockApiCreateLoadBalancerRequest struct { - ctrl *gomock.Controller - recorder *MockApiCreateLoadBalancerRequestMockRecorder - isgomock struct{} -} - -// MockApiCreateLoadBalancerRequestMockRecorder is the mock recorder for MockApiCreateLoadBalancerRequest. -type MockApiCreateLoadBalancerRequestMockRecorder struct { - mock *MockApiCreateLoadBalancerRequest -} - -// NewMockApiCreateLoadBalancerRequest creates a new mock instance. -func NewMockApiCreateLoadBalancerRequest(ctrl *gomock.Controller) *MockApiCreateLoadBalancerRequest { - mock := &MockApiCreateLoadBalancerRequest{ctrl: ctrl} - mock.recorder = &MockApiCreateLoadBalancerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiCreateLoadBalancerRequest) EXPECT() *MockApiCreateLoadBalancerRequestMockRecorder { - return m.recorder -} - -// CreateLoadBalancerPayload mocks base method. -func (m *MockApiCreateLoadBalancerRequest) CreateLoadBalancerPayload(createLoadBalancerPayload loadbalancer.CreateLoadBalancerPayload) loadbalancer.ApiCreateLoadBalancerRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateLoadBalancerPayload", createLoadBalancerPayload) - ret0, _ := ret[0].(loadbalancer.ApiCreateLoadBalancerRequest) - return ret0 -} - -// CreateLoadBalancerPayload indicates an expected call of CreateLoadBalancerPayload. -func (mr *MockApiCreateLoadBalancerRequestMockRecorder) CreateLoadBalancerPayload(createLoadBalancerPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateLoadBalancerPayload", reflect.TypeOf((*MockApiCreateLoadBalancerRequest)(nil).CreateLoadBalancerPayload), createLoadBalancerPayload) -} - -// Execute mocks base method. -func (m *MockApiCreateLoadBalancerRequest) Execute() (*loadbalancer.LoadBalancer, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*loadbalancer.LoadBalancer) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiCreateLoadBalancerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiCreateLoadBalancerRequest)(nil).Execute)) -} - -// XRequestID mocks base method. -func (m *MockApiCreateLoadBalancerRequest) XRequestID(xRequestID string) loadbalancer.ApiCreateLoadBalancerRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "XRequestID", xRequestID) - ret0, _ := ret[0].(loadbalancer.ApiCreateLoadBalancerRequest) - return ret0 -} - -// XRequestID indicates an expected call of XRequestID. -func (mr *MockApiCreateLoadBalancerRequestMockRecorder) XRequestID(xRequestID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "XRequestID", reflect.TypeOf((*MockApiCreateLoadBalancerRequest)(nil).XRequestID), xRequestID) -} - -// MockApiDeleteCredentialsRequest is a mock of ApiDeleteCredentialsRequest interface. -type MockApiDeleteCredentialsRequest struct { - ctrl *gomock.Controller - recorder *MockApiDeleteCredentialsRequestMockRecorder - isgomock struct{} -} - -// MockApiDeleteCredentialsRequestMockRecorder is the mock recorder for MockApiDeleteCredentialsRequest. -type MockApiDeleteCredentialsRequestMockRecorder struct { - mock *MockApiDeleteCredentialsRequest -} - -// NewMockApiDeleteCredentialsRequest creates a new mock instance. -func NewMockApiDeleteCredentialsRequest(ctrl *gomock.Controller) *MockApiDeleteCredentialsRequest { - mock := &MockApiDeleteCredentialsRequest{ctrl: ctrl} - mock.recorder = &MockApiDeleteCredentialsRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiDeleteCredentialsRequest) EXPECT() *MockApiDeleteCredentialsRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiDeleteCredentialsRequest) Execute() (map[string]any, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(map[string]any) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiDeleteCredentialsRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiDeleteCredentialsRequest)(nil).Execute)) -} - -// MockApiDeleteLoadBalancerRequest is a mock of ApiDeleteLoadBalancerRequest interface. -type MockApiDeleteLoadBalancerRequest struct { - ctrl *gomock.Controller - recorder *MockApiDeleteLoadBalancerRequestMockRecorder - isgomock struct{} -} - -// MockApiDeleteLoadBalancerRequestMockRecorder is the mock recorder for MockApiDeleteLoadBalancerRequest. -type MockApiDeleteLoadBalancerRequestMockRecorder struct { - mock *MockApiDeleteLoadBalancerRequest -} - -// NewMockApiDeleteLoadBalancerRequest creates a new mock instance. -func NewMockApiDeleteLoadBalancerRequest(ctrl *gomock.Controller) *MockApiDeleteLoadBalancerRequest { - mock := &MockApiDeleteLoadBalancerRequest{ctrl: ctrl} - mock.recorder = &MockApiDeleteLoadBalancerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiDeleteLoadBalancerRequest) EXPECT() *MockApiDeleteLoadBalancerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiDeleteLoadBalancerRequest) Execute() (map[string]any, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(map[string]any) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiDeleteLoadBalancerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiDeleteLoadBalancerRequest)(nil).Execute)) -} - -// MockApiGetCredentialsRequest is a mock of ApiGetCredentialsRequest interface. -type MockApiGetCredentialsRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetCredentialsRequestMockRecorder - isgomock struct{} -} - -// MockApiGetCredentialsRequestMockRecorder is the mock recorder for MockApiGetCredentialsRequest. -type MockApiGetCredentialsRequestMockRecorder struct { - mock *MockApiGetCredentialsRequest -} - -// NewMockApiGetCredentialsRequest creates a new mock instance. -func NewMockApiGetCredentialsRequest(ctrl *gomock.Controller) *MockApiGetCredentialsRequest { - mock := &MockApiGetCredentialsRequest{ctrl: ctrl} - mock.recorder = &MockApiGetCredentialsRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetCredentialsRequest) EXPECT() *MockApiGetCredentialsRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetCredentialsRequest) Execute() (*loadbalancer.GetCredentialsResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*loadbalancer.GetCredentialsResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetCredentialsRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetCredentialsRequest)(nil).Execute)) -} - -// MockApiGetLoadBalancerRequest is a mock of ApiGetLoadBalancerRequest interface. -type MockApiGetLoadBalancerRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetLoadBalancerRequestMockRecorder - isgomock struct{} -} - -// MockApiGetLoadBalancerRequestMockRecorder is the mock recorder for MockApiGetLoadBalancerRequest. -type MockApiGetLoadBalancerRequestMockRecorder struct { - mock *MockApiGetLoadBalancerRequest -} - -// NewMockApiGetLoadBalancerRequest creates a new mock instance. -func NewMockApiGetLoadBalancerRequest(ctrl *gomock.Controller) *MockApiGetLoadBalancerRequest { - mock := &MockApiGetLoadBalancerRequest{ctrl: ctrl} - mock.recorder = &MockApiGetLoadBalancerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetLoadBalancerRequest) EXPECT() *MockApiGetLoadBalancerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetLoadBalancerRequest) Execute() (*loadbalancer.LoadBalancer, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*loadbalancer.LoadBalancer) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetLoadBalancerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetLoadBalancerRequest)(nil).Execute)) -} - -// MockApiGetQuotaRequest is a mock of ApiGetQuotaRequest interface. -type MockApiGetQuotaRequest struct { - ctrl *gomock.Controller - recorder *MockApiGetQuotaRequestMockRecorder - isgomock struct{} -} - -// MockApiGetQuotaRequestMockRecorder is the mock recorder for MockApiGetQuotaRequest. -type MockApiGetQuotaRequestMockRecorder struct { - mock *MockApiGetQuotaRequest -} - -// NewMockApiGetQuotaRequest creates a new mock instance. -func NewMockApiGetQuotaRequest(ctrl *gomock.Controller) *MockApiGetQuotaRequest { - mock := &MockApiGetQuotaRequest{ctrl: ctrl} - mock.recorder = &MockApiGetQuotaRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiGetQuotaRequest) EXPECT() *MockApiGetQuotaRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiGetQuotaRequest) Execute() (*loadbalancer.GetQuotaResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*loadbalancer.GetQuotaResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiGetQuotaRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiGetQuotaRequest)(nil).Execute)) -} - -// MockApiListCredentialsRequest is a mock of ApiListCredentialsRequest interface. -type MockApiListCredentialsRequest struct { - ctrl *gomock.Controller - recorder *MockApiListCredentialsRequestMockRecorder - isgomock struct{} -} - -// MockApiListCredentialsRequestMockRecorder is the mock recorder for MockApiListCredentialsRequest. -type MockApiListCredentialsRequestMockRecorder struct { - mock *MockApiListCredentialsRequest -} - -// NewMockApiListCredentialsRequest creates a new mock instance. -func NewMockApiListCredentialsRequest(ctrl *gomock.Controller) *MockApiListCredentialsRequest { - mock := &MockApiListCredentialsRequest{ctrl: ctrl} - mock.recorder = &MockApiListCredentialsRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListCredentialsRequest) EXPECT() *MockApiListCredentialsRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListCredentialsRequest) Execute() (*loadbalancer.ListCredentialsResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*loadbalancer.ListCredentialsResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListCredentialsRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListCredentialsRequest)(nil).Execute)) -} - -// MockApiListLoadBalancersRequest is a mock of ApiListLoadBalancersRequest interface. -type MockApiListLoadBalancersRequest struct { - ctrl *gomock.Controller - recorder *MockApiListLoadBalancersRequestMockRecorder - isgomock struct{} -} - -// MockApiListLoadBalancersRequestMockRecorder is the mock recorder for MockApiListLoadBalancersRequest. -type MockApiListLoadBalancersRequestMockRecorder struct { - mock *MockApiListLoadBalancersRequest -} - -// NewMockApiListLoadBalancersRequest creates a new mock instance. -func NewMockApiListLoadBalancersRequest(ctrl *gomock.Controller) *MockApiListLoadBalancersRequest { - mock := &MockApiListLoadBalancersRequest{ctrl: ctrl} - mock.recorder = &MockApiListLoadBalancersRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListLoadBalancersRequest) EXPECT() *MockApiListLoadBalancersRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListLoadBalancersRequest) Execute() (*loadbalancer.ListLoadBalancersResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*loadbalancer.ListLoadBalancersResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListLoadBalancersRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListLoadBalancersRequest)(nil).Execute)) -} - -// PageId mocks base method. -func (m *MockApiListLoadBalancersRequest) PageId(pageId string) loadbalancer.ApiListLoadBalancersRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "PageId", pageId) - ret0, _ := ret[0].(loadbalancer.ApiListLoadBalancersRequest) - return ret0 -} - -// PageId indicates an expected call of PageId. -func (mr *MockApiListLoadBalancersRequestMockRecorder) PageId(pageId any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PageId", reflect.TypeOf((*MockApiListLoadBalancersRequest)(nil).PageId), pageId) -} - -// PageSize mocks base method. -func (m *MockApiListLoadBalancersRequest) PageSize(pageSize string) loadbalancer.ApiListLoadBalancersRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "PageSize", pageSize) - ret0, _ := ret[0].(loadbalancer.ApiListLoadBalancersRequest) - return ret0 -} - -// PageSize indicates an expected call of PageSize. -func (mr *MockApiListLoadBalancersRequestMockRecorder) PageSize(pageSize any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PageSize", reflect.TypeOf((*MockApiListLoadBalancersRequest)(nil).PageSize), pageSize) -} - -// MockApiListPlansRequest is a mock of ApiListPlansRequest interface. -type MockApiListPlansRequest struct { - ctrl *gomock.Controller - recorder *MockApiListPlansRequestMockRecorder - isgomock struct{} -} - -// MockApiListPlansRequestMockRecorder is the mock recorder for MockApiListPlansRequest. -type MockApiListPlansRequestMockRecorder struct { - mock *MockApiListPlansRequest -} - -// NewMockApiListPlansRequest creates a new mock instance. -func NewMockApiListPlansRequest(ctrl *gomock.Controller) *MockApiListPlansRequest { - mock := &MockApiListPlansRequest{ctrl: ctrl} - mock.recorder = &MockApiListPlansRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiListPlansRequest) EXPECT() *MockApiListPlansRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiListPlansRequest) Execute() (*loadbalancer.ListPlansResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*loadbalancer.ListPlansResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiListPlansRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiListPlansRequest)(nil).Execute)) -} - -// MockApiUpdateCredentialsRequest is a mock of ApiUpdateCredentialsRequest interface. -type MockApiUpdateCredentialsRequest struct { - ctrl *gomock.Controller - recorder *MockApiUpdateCredentialsRequestMockRecorder - isgomock struct{} -} - -// MockApiUpdateCredentialsRequestMockRecorder is the mock recorder for MockApiUpdateCredentialsRequest. -type MockApiUpdateCredentialsRequestMockRecorder struct { - mock *MockApiUpdateCredentialsRequest -} - -// NewMockApiUpdateCredentialsRequest creates a new mock instance. -func NewMockApiUpdateCredentialsRequest(ctrl *gomock.Controller) *MockApiUpdateCredentialsRequest { - mock := &MockApiUpdateCredentialsRequest{ctrl: ctrl} - mock.recorder = &MockApiUpdateCredentialsRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiUpdateCredentialsRequest) EXPECT() *MockApiUpdateCredentialsRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiUpdateCredentialsRequest) Execute() (*loadbalancer.UpdateCredentialsResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*loadbalancer.UpdateCredentialsResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiUpdateCredentialsRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiUpdateCredentialsRequest)(nil).Execute)) -} - -// UpdateCredentialsPayload mocks base method. -func (m *MockApiUpdateCredentialsRequest) UpdateCredentialsPayload(updateCredentialsPayload loadbalancer.UpdateCredentialsPayload) loadbalancer.ApiUpdateCredentialsRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateCredentialsPayload", updateCredentialsPayload) - ret0, _ := ret[0].(loadbalancer.ApiUpdateCredentialsRequest) - return ret0 -} - -// UpdateCredentialsPayload indicates an expected call of UpdateCredentialsPayload. -func (mr *MockApiUpdateCredentialsRequestMockRecorder) UpdateCredentialsPayload(updateCredentialsPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateCredentialsPayload", reflect.TypeOf((*MockApiUpdateCredentialsRequest)(nil).UpdateCredentialsPayload), updateCredentialsPayload) -} - -// MockApiUpdateLoadBalancerRequest is a mock of ApiUpdateLoadBalancerRequest interface. -type MockApiUpdateLoadBalancerRequest struct { - ctrl *gomock.Controller - recorder *MockApiUpdateLoadBalancerRequestMockRecorder - isgomock struct{} -} - -// MockApiUpdateLoadBalancerRequestMockRecorder is the mock recorder for MockApiUpdateLoadBalancerRequest. -type MockApiUpdateLoadBalancerRequestMockRecorder struct { - mock *MockApiUpdateLoadBalancerRequest -} - -// NewMockApiUpdateLoadBalancerRequest creates a new mock instance. -func NewMockApiUpdateLoadBalancerRequest(ctrl *gomock.Controller) *MockApiUpdateLoadBalancerRequest { - mock := &MockApiUpdateLoadBalancerRequest{ctrl: ctrl} - mock.recorder = &MockApiUpdateLoadBalancerRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiUpdateLoadBalancerRequest) EXPECT() *MockApiUpdateLoadBalancerRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiUpdateLoadBalancerRequest) Execute() (*loadbalancer.LoadBalancer, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*loadbalancer.LoadBalancer) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiUpdateLoadBalancerRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiUpdateLoadBalancerRequest)(nil).Execute)) -} - -// UpdateLoadBalancerPayload mocks base method. -func (m *MockApiUpdateLoadBalancerRequest) UpdateLoadBalancerPayload(updateLoadBalancerPayload loadbalancer.UpdateLoadBalancerPayload) loadbalancer.ApiUpdateLoadBalancerRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateLoadBalancerPayload", updateLoadBalancerPayload) - ret0, _ := ret[0].(loadbalancer.ApiUpdateLoadBalancerRequest) - return ret0 -} - -// UpdateLoadBalancerPayload indicates an expected call of UpdateLoadBalancerPayload. -func (mr *MockApiUpdateLoadBalancerRequestMockRecorder) UpdateLoadBalancerPayload(updateLoadBalancerPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateLoadBalancerPayload", reflect.TypeOf((*MockApiUpdateLoadBalancerRequest)(nil).UpdateLoadBalancerPayload), updateLoadBalancerPayload) -} - -// MockApiUpdateTargetPoolRequest is a mock of ApiUpdateTargetPoolRequest interface. -type MockApiUpdateTargetPoolRequest struct { - ctrl *gomock.Controller - recorder *MockApiUpdateTargetPoolRequestMockRecorder - isgomock struct{} -} - -// MockApiUpdateTargetPoolRequestMockRecorder is the mock recorder for MockApiUpdateTargetPoolRequest. -type MockApiUpdateTargetPoolRequestMockRecorder struct { - mock *MockApiUpdateTargetPoolRequest -} - -// NewMockApiUpdateTargetPoolRequest creates a new mock instance. -func NewMockApiUpdateTargetPoolRequest(ctrl *gomock.Controller) *MockApiUpdateTargetPoolRequest { - mock := &MockApiUpdateTargetPoolRequest{ctrl: ctrl} - mock.recorder = &MockApiUpdateTargetPoolRequestMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockApiUpdateTargetPoolRequest) EXPECT() *MockApiUpdateTargetPoolRequestMockRecorder { - return m.recorder -} - -// Execute mocks base method. -func (m *MockApiUpdateTargetPoolRequest) Execute() (*loadbalancer.TargetPool, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Execute") - ret0, _ := ret[0].(*loadbalancer.TargetPool) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Execute indicates an expected call of Execute. -func (mr *MockApiUpdateTargetPoolRequestMockRecorder) Execute() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Execute", reflect.TypeOf((*MockApiUpdateTargetPoolRequest)(nil).Execute)) -} - -// UpdateTargetPoolPayload mocks base method. -func (m *MockApiUpdateTargetPoolRequest) UpdateTargetPoolPayload(updateTargetPoolPayload loadbalancer.UpdateTargetPoolPayload) loadbalancer.ApiUpdateTargetPoolRequest { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateTargetPoolPayload", updateTargetPoolPayload) - ret0, _ := ret[0].(loadbalancer.ApiUpdateTargetPoolRequest) - return ret0 -} - -// UpdateTargetPoolPayload indicates an expected call of UpdateTargetPoolPayload. -func (mr *MockApiUpdateTargetPoolRequestMockRecorder) UpdateTargetPoolPayload(updateTargetPoolPayload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTargetPoolPayload", reflect.TypeOf((*MockApiUpdateTargetPoolRequest)(nil).UpdateTargetPoolPayload), updateTargetPoolPayload) -} - -// MockDefaultApi is a mock of DefaultApi interface. -type MockDefaultApi struct { - ctrl *gomock.Controller - recorder *MockDefaultApiMockRecorder - isgomock struct{} -} - -// MockDefaultApiMockRecorder is the mock recorder for MockDefaultApi. -type MockDefaultApiMockRecorder struct { - mock *MockDefaultApi -} - -// NewMockDefaultApi creates a new mock instance. -func NewMockDefaultApi(ctrl *gomock.Controller) *MockDefaultApi { - mock := &MockDefaultApi{ctrl: ctrl} - mock.recorder = &MockDefaultApiMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockDefaultApi) EXPECT() *MockDefaultApiMockRecorder { +func (m *MockDefaultAPI) EXPECT() *MockDefaultAPIMockRecorder { return m.recorder } // CreateCredentials mocks base method. -func (m *MockDefaultApi) CreateCredentials(ctx context.Context, projectId, region string) loadbalancer.ApiCreateCredentialsRequest { +func (m *MockDefaultAPI) CreateCredentials(ctx context.Context, projectId, region string) v2api.ApiCreateCredentialsRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateCredentials", ctx, projectId, region) - ret0, _ := ret[0].(loadbalancer.ApiCreateCredentialsRequest) + ret0, _ := ret[0].(v2api.ApiCreateCredentialsRequest) return ret0 } // CreateCredentials indicates an expected call of CreateCredentials. -func (mr *MockDefaultApiMockRecorder) CreateCredentials(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateCredentials(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateCredentials", reflect.TypeOf((*MockDefaultApi)(nil).CreateCredentials), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateCredentials", reflect.TypeOf((*MockDefaultAPI)(nil).CreateCredentials), ctx, projectId, region) } // CreateCredentialsExecute mocks base method. -func (m *MockDefaultApi) CreateCredentialsExecute(ctx context.Context, projectId, region string) (*loadbalancer.CreateCredentialsResponse, error) { +func (m *MockDefaultAPI) CreateCredentialsExecute(r v2api.ApiCreateCredentialsRequest) (*v2api.CreateCredentialsResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateCredentialsExecute", ctx, projectId, region) - ret0, _ := ret[0].(*loadbalancer.CreateCredentialsResponse) + ret := m.ctrl.Call(m, "CreateCredentialsExecute", r) + ret0, _ := ret[0].(*v2api.CreateCredentialsResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // CreateCredentialsExecute indicates an expected call of CreateCredentialsExecute. -func (mr *MockDefaultApiMockRecorder) CreateCredentialsExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateCredentialsExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateCredentialsExecute", reflect.TypeOf((*MockDefaultApi)(nil).CreateCredentialsExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateCredentialsExecute", reflect.TypeOf((*MockDefaultAPI)(nil).CreateCredentialsExecute), r) } // CreateLoadBalancer mocks base method. -func (m *MockDefaultApi) CreateLoadBalancer(ctx context.Context, projectId, region string) loadbalancer.ApiCreateLoadBalancerRequest { +func (m *MockDefaultAPI) CreateLoadBalancer(ctx context.Context, projectId, region string) v2api.ApiCreateLoadBalancerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateLoadBalancer", ctx, projectId, region) - ret0, _ := ret[0].(loadbalancer.ApiCreateLoadBalancerRequest) + ret0, _ := ret[0].(v2api.ApiCreateLoadBalancerRequest) return ret0 } // CreateLoadBalancer indicates an expected call of CreateLoadBalancer. -func (mr *MockDefaultApiMockRecorder) CreateLoadBalancer(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateLoadBalancer(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateLoadBalancer", reflect.TypeOf((*MockDefaultApi)(nil).CreateLoadBalancer), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateLoadBalancer", reflect.TypeOf((*MockDefaultAPI)(nil).CreateLoadBalancer), ctx, projectId, region) } // CreateLoadBalancerExecute mocks base method. -func (m *MockDefaultApi) CreateLoadBalancerExecute(ctx context.Context, projectId, region string) (*loadbalancer.LoadBalancer, error) { +func (m *MockDefaultAPI) CreateLoadBalancerExecute(r v2api.ApiCreateLoadBalancerRequest) (*v2api.LoadBalancer, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateLoadBalancerExecute", ctx, projectId, region) - ret0, _ := ret[0].(*loadbalancer.LoadBalancer) + ret := m.ctrl.Call(m, "CreateLoadBalancerExecute", r) + ret0, _ := ret[0].(*v2api.LoadBalancer) ret1, _ := ret[1].(error) return ret0, ret1 } // CreateLoadBalancerExecute indicates an expected call of CreateLoadBalancerExecute. -func (mr *MockDefaultApiMockRecorder) CreateLoadBalancerExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) CreateLoadBalancerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateLoadBalancerExecute", reflect.TypeOf((*MockDefaultApi)(nil).CreateLoadBalancerExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateLoadBalancerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).CreateLoadBalancerExecute), r) } // DeleteCredentials mocks base method. -func (m *MockDefaultApi) DeleteCredentials(ctx context.Context, projectId, region, credentialsRef string) loadbalancer.ApiDeleteCredentialsRequest { +func (m *MockDefaultAPI) DeleteCredentials(ctx context.Context, projectId, region, credentialsRef string) v2api.ApiDeleteCredentialsRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteCredentials", ctx, projectId, region, credentialsRef) - ret0, _ := ret[0].(loadbalancer.ApiDeleteCredentialsRequest) + ret0, _ := ret[0].(v2api.ApiDeleteCredentialsRequest) return ret0 } // DeleteCredentials indicates an expected call of DeleteCredentials. -func (mr *MockDefaultApiMockRecorder) DeleteCredentials(ctx, projectId, region, credentialsRef any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteCredentials(ctx, projectId, region, credentialsRef any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteCredentials", reflect.TypeOf((*MockDefaultApi)(nil).DeleteCredentials), ctx, projectId, region, credentialsRef) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteCredentials", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteCredentials), ctx, projectId, region, credentialsRef) } // DeleteCredentialsExecute mocks base method. -func (m *MockDefaultApi) DeleteCredentialsExecute(ctx context.Context, projectId, region, credentialsRef string) (map[string]any, error) { +func (m *MockDefaultAPI) DeleteCredentialsExecute(r v2api.ApiDeleteCredentialsRequest) (map[string]any, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteCredentialsExecute", ctx, projectId, region, credentialsRef) + ret := m.ctrl.Call(m, "DeleteCredentialsExecute", r) ret0, _ := ret[0].(map[string]any) ret1, _ := ret[1].(error) return ret0, ret1 } // DeleteCredentialsExecute indicates an expected call of DeleteCredentialsExecute. -func (mr *MockDefaultApiMockRecorder) DeleteCredentialsExecute(ctx, projectId, region, credentialsRef any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteCredentialsExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteCredentialsExecute", reflect.TypeOf((*MockDefaultApi)(nil).DeleteCredentialsExecute), ctx, projectId, region, credentialsRef) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteCredentialsExecute", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteCredentialsExecute), r) } // DeleteLoadBalancer mocks base method. -func (m *MockDefaultApi) DeleteLoadBalancer(ctx context.Context, projectId, region, name string) loadbalancer.ApiDeleteLoadBalancerRequest { +func (m *MockDefaultAPI) DeleteLoadBalancer(ctx context.Context, projectId, region, name string) v2api.ApiDeleteLoadBalancerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteLoadBalancer", ctx, projectId, region, name) - ret0, _ := ret[0].(loadbalancer.ApiDeleteLoadBalancerRequest) + ret0, _ := ret[0].(v2api.ApiDeleteLoadBalancerRequest) return ret0 } // DeleteLoadBalancer indicates an expected call of DeleteLoadBalancer. -func (mr *MockDefaultApiMockRecorder) DeleteLoadBalancer(ctx, projectId, region, name any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteLoadBalancer(ctx, projectId, region, name any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteLoadBalancer", reflect.TypeOf((*MockDefaultApi)(nil).DeleteLoadBalancer), ctx, projectId, region, name) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteLoadBalancer", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteLoadBalancer), ctx, projectId, region, name) } // DeleteLoadBalancerExecute mocks base method. -func (m *MockDefaultApi) DeleteLoadBalancerExecute(ctx context.Context, projectId, region, name string) (map[string]any, error) { +func (m *MockDefaultAPI) DeleteLoadBalancerExecute(r v2api.ApiDeleteLoadBalancerRequest) (map[string]any, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteLoadBalancerExecute", ctx, projectId, region, name) + ret := m.ctrl.Call(m, "DeleteLoadBalancerExecute", r) ret0, _ := ret[0].(map[string]any) ret1, _ := ret[1].(error) return ret0, ret1 } // DeleteLoadBalancerExecute indicates an expected call of DeleteLoadBalancerExecute. -func (mr *MockDefaultApiMockRecorder) DeleteLoadBalancerExecute(ctx, projectId, region, name any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) DeleteLoadBalancerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteLoadBalancerExecute", reflect.TypeOf((*MockDefaultApi)(nil).DeleteLoadBalancerExecute), ctx, projectId, region, name) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteLoadBalancerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).DeleteLoadBalancerExecute), r) } // GetCredentials mocks base method. -func (m *MockDefaultApi) GetCredentials(ctx context.Context, projectId, region, credentialsRef string) loadbalancer.ApiGetCredentialsRequest { +func (m *MockDefaultAPI) GetCredentials(ctx context.Context, projectId, region, credentialsRef string) v2api.ApiGetCredentialsRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetCredentials", ctx, projectId, region, credentialsRef) - ret0, _ := ret[0].(loadbalancer.ApiGetCredentialsRequest) + ret0, _ := ret[0].(v2api.ApiGetCredentialsRequest) return ret0 } // GetCredentials indicates an expected call of GetCredentials. -func (mr *MockDefaultApiMockRecorder) GetCredentials(ctx, projectId, region, credentialsRef any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetCredentials(ctx, projectId, region, credentialsRef any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCredentials", reflect.TypeOf((*MockDefaultApi)(nil).GetCredentials), ctx, projectId, region, credentialsRef) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCredentials", reflect.TypeOf((*MockDefaultAPI)(nil).GetCredentials), ctx, projectId, region, credentialsRef) } // GetCredentialsExecute mocks base method. -func (m *MockDefaultApi) GetCredentialsExecute(ctx context.Context, projectId, region, credentialsRef string) (*loadbalancer.GetCredentialsResponse, error) { +func (m *MockDefaultAPI) GetCredentialsExecute(r v2api.ApiGetCredentialsRequest) (*v2api.GetCredentialsResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetCredentialsExecute", ctx, projectId, region, credentialsRef) - ret0, _ := ret[0].(*loadbalancer.GetCredentialsResponse) + ret := m.ctrl.Call(m, "GetCredentialsExecute", r) + ret0, _ := ret[0].(*v2api.GetCredentialsResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // GetCredentialsExecute indicates an expected call of GetCredentialsExecute. -func (mr *MockDefaultApiMockRecorder) GetCredentialsExecute(ctx, projectId, region, credentialsRef any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetCredentialsExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCredentialsExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetCredentialsExecute), ctx, projectId, region, credentialsRef) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCredentialsExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetCredentialsExecute), r) } // GetLoadBalancer mocks base method. -func (m *MockDefaultApi) GetLoadBalancer(ctx context.Context, projectId, region, name string) loadbalancer.ApiGetLoadBalancerRequest { +func (m *MockDefaultAPI) GetLoadBalancer(ctx context.Context, projectId, region, name string) v2api.ApiGetLoadBalancerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetLoadBalancer", ctx, projectId, region, name) - ret0, _ := ret[0].(loadbalancer.ApiGetLoadBalancerRequest) + ret0, _ := ret[0].(v2api.ApiGetLoadBalancerRequest) return ret0 } // GetLoadBalancer indicates an expected call of GetLoadBalancer. -func (mr *MockDefaultApiMockRecorder) GetLoadBalancer(ctx, projectId, region, name any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetLoadBalancer(ctx, projectId, region, name any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLoadBalancer", reflect.TypeOf((*MockDefaultApi)(nil).GetLoadBalancer), ctx, projectId, region, name) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLoadBalancer", reflect.TypeOf((*MockDefaultAPI)(nil).GetLoadBalancer), ctx, projectId, region, name) } // GetLoadBalancerExecute mocks base method. -func (m *MockDefaultApi) GetLoadBalancerExecute(ctx context.Context, projectId, region, name string) (*loadbalancer.LoadBalancer, error) { +func (m *MockDefaultAPI) GetLoadBalancerExecute(r v2api.ApiGetLoadBalancerRequest) (*v2api.LoadBalancer, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetLoadBalancerExecute", ctx, projectId, region, name) - ret0, _ := ret[0].(*loadbalancer.LoadBalancer) + ret := m.ctrl.Call(m, "GetLoadBalancerExecute", r) + ret0, _ := ret[0].(*v2api.LoadBalancer) ret1, _ := ret[1].(error) return ret0, ret1 } // GetLoadBalancerExecute indicates an expected call of GetLoadBalancerExecute. -func (mr *MockDefaultApiMockRecorder) GetLoadBalancerExecute(ctx, projectId, region, name any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetLoadBalancerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLoadBalancerExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetLoadBalancerExecute), ctx, projectId, region, name) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLoadBalancerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetLoadBalancerExecute), r) } // GetQuota mocks base method. -func (m *MockDefaultApi) GetQuota(ctx context.Context, projectId, region string) loadbalancer.ApiGetQuotaRequest { +func (m *MockDefaultAPI) GetQuota(ctx context.Context, projectId, region string) v2api.ApiGetQuotaRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetQuota", ctx, projectId, region) - ret0, _ := ret[0].(loadbalancer.ApiGetQuotaRequest) + ret0, _ := ret[0].(v2api.ApiGetQuotaRequest) return ret0 } // GetQuota indicates an expected call of GetQuota. -func (mr *MockDefaultApiMockRecorder) GetQuota(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetQuota(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetQuota", reflect.TypeOf((*MockDefaultApi)(nil).GetQuota), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetQuota", reflect.TypeOf((*MockDefaultAPI)(nil).GetQuota), ctx, projectId, region) } // GetQuotaExecute mocks base method. -func (m *MockDefaultApi) GetQuotaExecute(ctx context.Context, projectId, region string) (*loadbalancer.GetQuotaResponse, error) { +func (m *MockDefaultAPI) GetQuotaExecute(r v2api.ApiGetQuotaRequest) (*v2api.GetQuotaResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetQuotaExecute", ctx, projectId, region) - ret0, _ := ret[0].(*loadbalancer.GetQuotaResponse) + ret := m.ctrl.Call(m, "GetQuotaExecute", r) + ret0, _ := ret[0].(*v2api.GetQuotaResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // GetQuotaExecute indicates an expected call of GetQuotaExecute. -func (mr *MockDefaultApiMockRecorder) GetQuotaExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) GetQuotaExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetQuotaExecute", reflect.TypeOf((*MockDefaultApi)(nil).GetQuotaExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetQuotaExecute", reflect.TypeOf((*MockDefaultAPI)(nil).GetQuotaExecute), r) } // ListCredentials mocks base method. -func (m *MockDefaultApi) ListCredentials(ctx context.Context, projectId, region string) loadbalancer.ApiListCredentialsRequest { +func (m *MockDefaultAPI) ListCredentials(ctx context.Context, projectId, region string) v2api.ApiListCredentialsRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListCredentials", ctx, projectId, region) - ret0, _ := ret[0].(loadbalancer.ApiListCredentialsRequest) + ret0, _ := ret[0].(v2api.ApiListCredentialsRequest) return ret0 } // ListCredentials indicates an expected call of ListCredentials. -func (mr *MockDefaultApiMockRecorder) ListCredentials(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListCredentials(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListCredentials", reflect.TypeOf((*MockDefaultApi)(nil).ListCredentials), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListCredentials", reflect.TypeOf((*MockDefaultAPI)(nil).ListCredentials), ctx, projectId, region) } // ListCredentialsExecute mocks base method. -func (m *MockDefaultApi) ListCredentialsExecute(ctx context.Context, projectId, region string) (*loadbalancer.ListCredentialsResponse, error) { +func (m *MockDefaultAPI) ListCredentialsExecute(r v2api.ApiListCredentialsRequest) (*v2api.ListCredentialsResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListCredentialsExecute", ctx, projectId, region) - ret0, _ := ret[0].(*loadbalancer.ListCredentialsResponse) + ret := m.ctrl.Call(m, "ListCredentialsExecute", r) + ret0, _ := ret[0].(*v2api.ListCredentialsResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListCredentialsExecute indicates an expected call of ListCredentialsExecute. -func (mr *MockDefaultApiMockRecorder) ListCredentialsExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListCredentialsExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListCredentialsExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListCredentialsExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListCredentialsExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListCredentialsExecute), r) } // ListLoadBalancers mocks base method. -func (m *MockDefaultApi) ListLoadBalancers(ctx context.Context, projectId, region string) loadbalancer.ApiListLoadBalancersRequest { +func (m *MockDefaultAPI) ListLoadBalancers(ctx context.Context, projectId, region string) v2api.ApiListLoadBalancersRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListLoadBalancers", ctx, projectId, region) - ret0, _ := ret[0].(loadbalancer.ApiListLoadBalancersRequest) + ret0, _ := ret[0].(v2api.ApiListLoadBalancersRequest) return ret0 } // ListLoadBalancers indicates an expected call of ListLoadBalancers. -func (mr *MockDefaultApiMockRecorder) ListLoadBalancers(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListLoadBalancers(ctx, projectId, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListLoadBalancers", reflect.TypeOf((*MockDefaultApi)(nil).ListLoadBalancers), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListLoadBalancers", reflect.TypeOf((*MockDefaultAPI)(nil).ListLoadBalancers), ctx, projectId, region) } // ListLoadBalancersExecute mocks base method. -func (m *MockDefaultApi) ListLoadBalancersExecute(ctx context.Context, projectId, region string) (*loadbalancer.ListLoadBalancersResponse, error) { +func (m *MockDefaultAPI) ListLoadBalancersExecute(r v2api.ApiListLoadBalancersRequest) (*v2api.ListLoadBalancersResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListLoadBalancersExecute", ctx, projectId, region) - ret0, _ := ret[0].(*loadbalancer.ListLoadBalancersResponse) + ret := m.ctrl.Call(m, "ListLoadBalancersExecute", r) + ret0, _ := ret[0].(*v2api.ListLoadBalancersResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListLoadBalancersExecute indicates an expected call of ListLoadBalancersExecute. -func (mr *MockDefaultApiMockRecorder) ListLoadBalancersExecute(ctx, projectId, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListLoadBalancersExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListLoadBalancersExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListLoadBalancersExecute), ctx, projectId, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListLoadBalancersExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListLoadBalancersExecute), r) } // ListPlans mocks base method. -func (m *MockDefaultApi) ListPlans(ctx context.Context, region string) loadbalancer.ApiListPlansRequest { +func (m *MockDefaultAPI) ListPlans(ctx context.Context, region string) v2api.ApiListPlansRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListPlans", ctx, region) - ret0, _ := ret[0].(loadbalancer.ApiListPlansRequest) + ret0, _ := ret[0].(v2api.ApiListPlansRequest) return ret0 } // ListPlans indicates an expected call of ListPlans. -func (mr *MockDefaultApiMockRecorder) ListPlans(ctx, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListPlans(ctx, region any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPlans", reflect.TypeOf((*MockDefaultApi)(nil).ListPlans), ctx, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPlans", reflect.TypeOf((*MockDefaultAPI)(nil).ListPlans), ctx, region) } // ListPlansExecute mocks base method. -func (m *MockDefaultApi) ListPlansExecute(ctx context.Context, region string) (*loadbalancer.ListPlansResponse, error) { +func (m *MockDefaultAPI) ListPlansExecute(r v2api.ApiListPlansRequest) (*v2api.ListPlansResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListPlansExecute", ctx, region) - ret0, _ := ret[0].(*loadbalancer.ListPlansResponse) + ret := m.ctrl.Call(m, "ListPlansExecute", r) + ret0, _ := ret[0].(*v2api.ListPlansResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListPlansExecute indicates an expected call of ListPlansExecute. -func (mr *MockDefaultApiMockRecorder) ListPlansExecute(ctx, region any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) ListPlansExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPlansExecute", reflect.TypeOf((*MockDefaultApi)(nil).ListPlansExecute), ctx, region) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPlansExecute", reflect.TypeOf((*MockDefaultAPI)(nil).ListPlansExecute), r) } // UpdateCredentials mocks base method. -func (m *MockDefaultApi) UpdateCredentials(ctx context.Context, projectId, region, credentialsRef string) loadbalancer.ApiUpdateCredentialsRequest { +func (m *MockDefaultAPI) UpdateCredentials(ctx context.Context, projectId, region, credentialsRef string) v2api.ApiUpdateCredentialsRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UpdateCredentials", ctx, projectId, region, credentialsRef) - ret0, _ := ret[0].(loadbalancer.ApiUpdateCredentialsRequest) + ret0, _ := ret[0].(v2api.ApiUpdateCredentialsRequest) return ret0 } // UpdateCredentials indicates an expected call of UpdateCredentials. -func (mr *MockDefaultApiMockRecorder) UpdateCredentials(ctx, projectId, region, credentialsRef any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateCredentials(ctx, projectId, region, credentialsRef any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateCredentials", reflect.TypeOf((*MockDefaultApi)(nil).UpdateCredentials), ctx, projectId, region, credentialsRef) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateCredentials", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateCredentials), ctx, projectId, region, credentialsRef) } // UpdateCredentialsExecute mocks base method. -func (m *MockDefaultApi) UpdateCredentialsExecute(ctx context.Context, projectId, region, credentialsRef string) (*loadbalancer.UpdateCredentialsResponse, error) { +func (m *MockDefaultAPI) UpdateCredentialsExecute(r v2api.ApiUpdateCredentialsRequest) (*v2api.UpdateCredentialsResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateCredentialsExecute", ctx, projectId, region, credentialsRef) - ret0, _ := ret[0].(*loadbalancer.UpdateCredentialsResponse) + ret := m.ctrl.Call(m, "UpdateCredentialsExecute", r) + ret0, _ := ret[0].(*v2api.UpdateCredentialsResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // UpdateCredentialsExecute indicates an expected call of UpdateCredentialsExecute. -func (mr *MockDefaultApiMockRecorder) UpdateCredentialsExecute(ctx, projectId, region, credentialsRef any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateCredentialsExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateCredentialsExecute", reflect.TypeOf((*MockDefaultApi)(nil).UpdateCredentialsExecute), ctx, projectId, region, credentialsRef) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateCredentialsExecute", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateCredentialsExecute), r) } // UpdateLoadBalancer mocks base method. -func (m *MockDefaultApi) UpdateLoadBalancer(ctx context.Context, projectId, region, name string) loadbalancer.ApiUpdateLoadBalancerRequest { +func (m *MockDefaultAPI) UpdateLoadBalancer(ctx context.Context, projectId, region, name string) v2api.ApiUpdateLoadBalancerRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UpdateLoadBalancer", ctx, projectId, region, name) - ret0, _ := ret[0].(loadbalancer.ApiUpdateLoadBalancerRequest) + ret0, _ := ret[0].(v2api.ApiUpdateLoadBalancerRequest) return ret0 } // UpdateLoadBalancer indicates an expected call of UpdateLoadBalancer. -func (mr *MockDefaultApiMockRecorder) UpdateLoadBalancer(ctx, projectId, region, name any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateLoadBalancer(ctx, projectId, region, name any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateLoadBalancer", reflect.TypeOf((*MockDefaultApi)(nil).UpdateLoadBalancer), ctx, projectId, region, name) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateLoadBalancer", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateLoadBalancer), ctx, projectId, region, name) } // UpdateLoadBalancerExecute mocks base method. -func (m *MockDefaultApi) UpdateLoadBalancerExecute(ctx context.Context, projectId, region, name string) (*loadbalancer.LoadBalancer, error) { +func (m *MockDefaultAPI) UpdateLoadBalancerExecute(r v2api.ApiUpdateLoadBalancerRequest) (*v2api.LoadBalancer, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateLoadBalancerExecute", ctx, projectId, region, name) - ret0, _ := ret[0].(*loadbalancer.LoadBalancer) + ret := m.ctrl.Call(m, "UpdateLoadBalancerExecute", r) + ret0, _ := ret[0].(*v2api.LoadBalancer) ret1, _ := ret[1].(error) return ret0, ret1 } // UpdateLoadBalancerExecute indicates an expected call of UpdateLoadBalancerExecute. -func (mr *MockDefaultApiMockRecorder) UpdateLoadBalancerExecute(ctx, projectId, region, name any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateLoadBalancerExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateLoadBalancerExecute", reflect.TypeOf((*MockDefaultApi)(nil).UpdateLoadBalancerExecute), ctx, projectId, region, name) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateLoadBalancerExecute", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateLoadBalancerExecute), r) } // UpdateTargetPool mocks base method. -func (m *MockDefaultApi) UpdateTargetPool(ctx context.Context, projectId, region, name, targetPoolName string) loadbalancer.ApiUpdateTargetPoolRequest { +func (m *MockDefaultAPI) UpdateTargetPool(ctx context.Context, projectId, region, name, targetPoolName string) v2api.ApiUpdateTargetPoolRequest { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UpdateTargetPool", ctx, projectId, region, name, targetPoolName) - ret0, _ := ret[0].(loadbalancer.ApiUpdateTargetPoolRequest) + ret0, _ := ret[0].(v2api.ApiUpdateTargetPoolRequest) return ret0 } // UpdateTargetPool indicates an expected call of UpdateTargetPool. -func (mr *MockDefaultApiMockRecorder) UpdateTargetPool(ctx, projectId, region, name, targetPoolName any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateTargetPool(ctx, projectId, region, name, targetPoolName any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTargetPool", reflect.TypeOf((*MockDefaultApi)(nil).UpdateTargetPool), ctx, projectId, region, name, targetPoolName) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTargetPool", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateTargetPool), ctx, projectId, region, name, targetPoolName) } // UpdateTargetPoolExecute mocks base method. -func (m *MockDefaultApi) UpdateTargetPoolExecute(ctx context.Context, projectId, region, name, targetPoolName string) (*loadbalancer.TargetPool, error) { +func (m *MockDefaultAPI) UpdateTargetPoolExecute(r v2api.ApiUpdateTargetPoolRequest) (*v2api.TargetPool, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateTargetPoolExecute", ctx, projectId, region, name, targetPoolName) - ret0, _ := ret[0].(*loadbalancer.TargetPool) + ret := m.ctrl.Call(m, "UpdateTargetPoolExecute", r) + ret0, _ := ret[0].(*v2api.TargetPool) ret1, _ := ret[1].(error) return ret0, ret1 } // UpdateTargetPoolExecute indicates an expected call of UpdateTargetPoolExecute. -func (mr *MockDefaultApiMockRecorder) UpdateTargetPoolExecute(ctx, projectId, region, name, targetPoolName any) *gomock.Call { +func (mr *MockDefaultAPIMockRecorder) UpdateTargetPoolExecute(r any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTargetPoolExecute", reflect.TypeOf((*MockDefaultApi)(nil).UpdateTargetPoolExecute), ctx, projectId, region, name, targetPoolName) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTargetPoolExecute", reflect.TypeOf((*MockDefaultAPI)(nil).UpdateTargetPoolExecute), r) } diff --git a/pkg/stackit/backups.go b/pkg/stackit/backups.go deleted file mode 100644 index 7f6f1786..00000000 --- a/pkg/stackit/backups.go +++ /dev/null @@ -1,177 +0,0 @@ -package stackit - -import ( - "context" - "errors" - "fmt" - "net/http" - "time" - - "github.com/stackitcloud/stackit-sdk-go/core/runtime" - "github.com/stackitcloud/stackit-sdk-go/services/iaas" - "github.com/stackitcloud/stackit-sdk-go/services/iaas/wait" - "k8s.io/utils/ptr" - - stackiterrors "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/errors" -) - -const ( - backupReadyStatus = "AVAILABLE" - backupErrorStatus = "error" - backupDescription = "Created by STACKIT CSI driver" - BackupMaxDurationSecondsPerGBDefault = 20 - BackupMaxDurationPerGB = "backup-max-duration-seconds-per-gb" - backupBaseDurationSeconds = 30 - backupReadyCheckIntervalSeconds = 7 -) - -func (os *iaasClient) CreateBackup(ctx context.Context, name, volID, snapshotID string, tags map[string]string) (*iaas.Backup, error) { - if name == "" { - return nil, errors.New("backup name cannot be empty") - } - - if volID == "" && snapshotID == "" { - return nil, errors.New("either volID or snapshotID must be provided") - } - - var backupSource VolumeSourceTypes - var backupSourceID string - if volID != "" { - backupSource = VolumeSource - backupSourceID = volID - } - if snapshotID != "" { - backupSource = SnapshotSource - backupSourceID = snapshotID - } - - opts := iaas.CreateBackupPayload{ - Name: ptr.To(name), - Source: &iaas.BackupSource{ - Type: ptr.To(string(backupSource)), - Id: ptr.To(backupSourceID), - }, - } - if tags != nil { - opts.Labels = ptr.To(map[string]interface{}(labelsFromTags(tags))) - } - var httpResp *http.Response - ctxWithHTTPResp := runtime.WithCaptureHTTPResponse(ctx, &httpResp) - createBackupRequest := os.iaas.CreateBackup(ctxWithHTTPResp, os.projectID, os.region) - if createBackupRequest == nil { - return nil, errors.New("failed to create backup request") - } - - backup, err := createBackupRequest.CreateBackupPayload(opts).Execute() - if err != nil { - if httpResp != nil { - reqID := httpResp.Header.Get(wait.XRequestIDHeader) - return nil, stackiterrors.WrapErrorWithResponseID(err, reqID) - } - return nil, err - } - - return backup, nil -} - -func (os *iaasClient) ListBackups(ctx context.Context, filters map[string]string) ([]iaas.Backup, error) { - var httpResp *http.Response - ctxWithHTTPResp := runtime.WithCaptureHTTPResponse(ctx, &httpResp) - // TODO: Add API filter once available. - backups, err := os.iaas.ListBackups(ctxWithHTTPResp, os.projectID, os.region).Execute() - if err != nil { - if httpResp != nil { - reqID := httpResp.Header.Get(wait.XRequestIDHeader) - return nil, stackiterrors.WrapErrorWithResponseID(err, reqID) - } - return nil, err - } - - filteredBackups := filterBackups(*backups.Items, filters) - return filteredBackups, nil -} - -func (os *iaasClient) DeleteBackup(ctx context.Context, backupID string) error { - var httpResp *http.Response - ctxWithHTTPResp := runtime.WithCaptureHTTPResponse(ctx, &httpResp) - err := os.iaas.DeleteBackup(ctxWithHTTPResp, os.projectID, backupID, os.region).Execute() - if err != nil { - if httpResp != nil { - reqID := httpResp.Header.Get(wait.XRequestIDHeader) - return stackiterrors.WrapErrorWithResponseID(err, reqID) - } - return err - } - return nil -} - -func (os *iaasClient) GetBackupByID(ctx context.Context, backupID string) (*iaas.Backup, error) { - var httpResp *http.Response - ctxWithHTTPResp := runtime.WithCaptureHTTPResponse(ctx, &httpResp) - backup, err := os.iaas.GetBackupExecute(ctxWithHTTPResp, os.projectID, os.region, backupID) - if err != nil { - if httpResp != nil { - reqID := httpResp.Header.Get(wait.XRequestIDHeader) - return nil, stackiterrors.WrapErrorWithResponseID(err, reqID) - } - return nil, err - } - return backup, nil -} - -func (os *iaasClient) WaitBackupReady(ctx context.Context, backupID string, snapshotSize int64, backupMaxDurationSecondsPerGB int) (*string, error) { - var err error - - duration := time.Duration(int64(backupMaxDurationSecondsPerGB)*snapshotSize + backupBaseDurationSeconds) - err = os.waitBackupReadyWithContext(backupID, duration) - if errors.Is(err, context.DeadlineExceeded) { - err = fmt.Errorf("timeout, Backup %s is still not Ready: %v", backupID, err) - } - - back, _ := os.GetBackupByID(ctx, backupID) - - if back != nil { - return back.Status, err - } - return ptr.To("Failed to get backup status"), err -} - -func (os *iaasClient) waitBackupReadyWithContext(backupID string, duration time.Duration) error { - ctx, cancel := context.WithTimeout(context.Background(), duration*time.Second) - defer cancel() - var done bool - var err error - ticker := time.NewTicker(backupReadyCheckIntervalSeconds * time.Second) - defer ticker.Stop() - - for { - select { - case <-ticker.C: - done, err = os.backupIsReady(ctx, backupID) - if err != nil { - return err - } - - if done { - return nil - } - case <-ctx.Done(): - return ctx.Err() - } - } -} - -// Supporting function for waitBackupReadyWithContext(). -// Returns true when the backup is ready. -func (os *iaasClient) backupIsReady(ctx context.Context, backupID string) (bool, error) { - backup, err := os.GetBackupByID(ctx, backupID) - if err != nil { - return false, err - } - - if *backup.Status == backupErrorStatus { - return false, errors.New("backup is in error state") - } - - return *backup.Status == backupReadyStatus, nil -} diff --git a/pkg/stackit/backups_test.go b/pkg/stackit/backups_test.go deleted file mode 100644 index 8bf0d9ab..00000000 --- a/pkg/stackit/backups_test.go +++ /dev/null @@ -1,266 +0,0 @@ -package stackit - -import ( - "context" - "os" - - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" - "github.com/stackitcloud/stackit-sdk-go/services/iaas" - "go.uber.org/mock/gomock" - "k8s.io/utils/ptr" - - mock "github.com/stackitcloud/cloud-provider-stackit/pkg/mock/iaas" -) - -var _ = Describe("Backup", func() { - var ( - err error - mockCtrl *gomock.Controller - mockAPI *mock.MockDefaultApi - openStack IaasClient - config *Config - ) - - const projectID = "project-id" - const region = "eu01" - - BeforeEach(func() { - t := GinkgoT() - mockCtrl = gomock.NewController(t) - mockAPI = mock.NewMockDefaultApi(mockCtrl) - t.Setenv("STACKIT_REGION", region) - Expect(os.Getenv("STACKIT_REGION")).To(Equal(region)) - }) - - Context("CreateBackup", func() { - BeforeEach(func() { - config = &Config{ - Global: GlobalOpts{ - ProjectID: projectID, - }, - } - openStack, err = CreateSTACKITProvider(mockAPI, config) - Expect(err).ToNot(HaveOccurred()) - }) - - DescribeTable("successful call variant", - func( - volId, snapshotId string, - tags map[string]string, - expectedPayload iaas.CreateBackupPayload) { - - mockCreateBackup( - mockCtrl, - mockAPI, - expectedPayload, - ) - - actualBackup, err := openStack.CreateBackup(context.Background(), "expected-name", volId, snapshotId, tags) - Expect(err).ToNot(HaveOccurred()) - - Expect(actualBackup).ToNot(BeNil()) - Expect(actualBackup.Id).ToNot(BeNil()) - Expect(*actualBackup.Id).To(Equal("expected backup")) - }, - Entry( - "with volume source", - "volume-id", "", - nil, - iaas.CreateBackupPayload{ - Name: ptr.To("expected-name"), - Source: &iaas.BackupSource{ - Type: ptr.To("volume"), - Id: ptr.To("volume-id"), - }, - Labels: nil, - }, - ), - Entry( - "with snapshot source", - "", "snapshot-id", - map[string]string{"tag1": "value1"}, - iaas.CreateBackupPayload{ - Name: ptr.To("expected-name"), - Source: &iaas.BackupSource{ - Type: ptr.To("snapshot"), - Id: ptr.To("snapshot-id"), - }, - Labels: ptr.To(map[string]any{ - "tag1": "value1", - }), - }, - ), - ) - }) - - Context("CreateBackup error cases", func() { - const projectID = "project-id" - - BeforeEach(func() { - config = &Config{ - Global: GlobalOpts{ - ProjectID: projectID, - }, - } - openStack, err = CreateSTACKITProvider(mockAPI, config) - Expect(err).ToNot(HaveOccurred()) - }) - - It("should return error when API fails", func() { - mockAPI.EXPECT().CreateBackup(gomock.Any(), projectID, region).Return(nil).Times(1) - - backup, err := openStack.CreateBackup(context.Background(), "expected-name", "volume-id", "", nil) - Expect(err).To(HaveOccurred()) - Expect(backup).To(BeNil()) - }) - - It("should return error when both volID and snapshotID are empty", func() { - backup, err := openStack.CreateBackup(context.Background(), "expected-name", "", "", nil) - Expect(err).To(HaveOccurred()) - Expect(backup).To(BeNil()) - }) - - It("should return error when name is empty", func() { - backup, err := openStack.CreateBackup(context.Background(), "", "volume-id", "", nil) - Expect(err).To(HaveOccurred()) - Expect(backup).To(BeNil()) - }) - }) - - Context("CreateBackup validation cases", func() { - const projectID = "project-id" - - BeforeEach(func() { - config = &Config{ - Global: GlobalOpts{ - ProjectID: projectID, - }, - } - openStack, err = CreateSTACKITProvider(mockAPI, config) - Expect(err).ToNot(HaveOccurred()) - }) - - It("should return error when source type is invalid", func() { - // Test with an invalid source type - // Mock the API call to return nil, which will trigger our validation - mockAPI.EXPECT().CreateBackup(gomock.Any(), projectID, region).Return(nil).Times(1) - - backup, err := openStack.CreateBackup(context.Background(), "expected-name", "volume-id", "", nil) - Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(ContainSubstring("failed to create backup request")) - Expect(backup).To(BeNil()) - }) - - It("should handle special characters in tags", func() { - tags := map[string]string{ - "special": "tag with spaces and !@#$%^&*()", - "normal": "value", - } - - expectedPayload := iaas.CreateBackupPayload{ - Name: ptr.To("expected-name"), - Source: &iaas.BackupSource{ - Type: ptr.To("volume"), - Id: ptr.To("volume-id"), - }, - Labels: ptr.To(map[string]any{ - "special": "tag with spaces and !@#$%^&*()", - "normal": "value", - }), - } - - mockCreateBackup(mockCtrl, mockAPI, expectedPayload) - - backup, err := openStack.CreateBackup(context.Background(), "expected-name", "volume-id", "", tags) - Expect(err).ToNot(HaveOccurred()) - Expect(backup).ToNot(BeNil()) - Expect(backup.Id).ToNot(BeNil()) - Expect(*backup.Id).To(Equal("expected backup")) - }) - }) - - Context("CreateBackup edge cases", func() { - const projectID = "project-id" - - BeforeEach(func() { - config = &Config{ - Global: GlobalOpts{ - ProjectID: projectID, - }, - } - openStack, err = CreateSTACKITProvider(mockAPI, config) - Expect(err).ToNot(HaveOccurred()) - }) - - It("should handle nil tags", func() { - expectedPayload := iaas.CreateBackupPayload{ - Name: ptr.To("expected-name"), - Source: &iaas.BackupSource{ - Type: ptr.To("volume"), - Id: ptr.To("volume-id"), - }, - Labels: nil, - } - - mockCreateBackup(mockCtrl, mockAPI, expectedPayload) - - backup, err := openStack.CreateBackup(context.Background(), "expected-name", "volume-id", "", nil) - Expect(err).ToNot(HaveOccurred()) - Expect(backup).ToNot(BeNil()) - Expect(backup.Id).ToNot(BeNil()) - Expect(*backup.Id).To(Equal("expected backup")) - }) - - It("should handle empty tags map", func() { - expectedPayload := iaas.CreateBackupPayload{ - Name: ptr.To("expected-name"), - Source: &iaas.BackupSource{ - Type: ptr.To("volume"), - Id: ptr.To("volume-id"), - }, - Labels: ptr.To(map[string]any{}), - } - - mockCreateBackup(mockCtrl, mockAPI, expectedPayload) - - backup, err := openStack.CreateBackup(context.Background(), "expected-name", "volume-id", "", map[string]string{}) - Expect(err).ToNot(HaveOccurred()) - Expect(backup).ToNot(BeNil()) - Expect(backup.Id).ToNot(BeNil()) - Expect(*backup.Id).To(Equal("expected backup")) - }) - - It("should handle long backup name", func() { - longName := "very-long-backup-name-" + string(make([]byte, 200)) - - expectedPayload := iaas.CreateBackupPayload{ - Name: ptr.To(longName), - Source: &iaas.BackupSource{ - Type: ptr.To("volume"), - Id: ptr.To("volume-id"), - }, - } - - mockCreateBackup(mockCtrl, mockAPI, expectedPayload) - - backup, err := openStack.CreateBackup(context.Background(), longName, "volume-id", "", nil) - Expect(err).ToNot(HaveOccurred()) - Expect(backup).ToNot(BeNil()) - Expect(backup.Id).ToNot(BeNil()) - Expect(*backup.Id).To(Equal("expected backup")) - }) - }) -}) - -func mockCreateBackup(mockCtrl *gomock.Controller, mockAPI *mock.MockDefaultApi, expectedPayload iaas.CreateBackupPayload) { - const ( - projectID = "project-id" - region = "eu01" - ) - createRequest := mock.NewMockApiCreateBackupRequest(mockCtrl) - createRequest.EXPECT().CreateBackupPayload(expectedPayload).Return(createRequest) - createRequest.EXPECT().Execute().Return(&iaas.Backup{Id: ptr.To("expected backup")}, nil) - - mockAPI.EXPECT().CreateBackup(gomock.Any(), projectID, region).Return(createRequest) -} diff --git a/pkg/stackit/client.go b/pkg/stackit/client.go deleted file mode 100644 index b08a942e..00000000 --- a/pkg/stackit/client.go +++ /dev/null @@ -1,216 +0,0 @@ -/* -Copyright 2017 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package stackit - -import ( - "context" - "errors" - "fmt" - "net/http" - "os" - "strings" - - sdkconfig "github.com/stackitcloud/stackit-sdk-go/core/config" - oapiError "github.com/stackitcloud/stackit-sdk-go/core/oapierror" - "github.com/stackitcloud/stackit-sdk-go/services/iaas" - "github.com/stackitcloud/stackit-sdk-go/services/loadbalancer" - "gopkg.in/gcfg.v1" - "k8s.io/apimachinery/pkg/util/wait" - - "github.com/stackitcloud/cloud-provider-stackit/pkg/version" - - "github.com/spf13/pflag" - "k8s.io/klog/v2" - - "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/metadata" -) - -// userAgentData is used to add extra information to the STACKIT SDK user-agent -var ( - userAgentData []string - ErrorNotFound = errors.New("not found") -) - -// AddExtraFlags is called by the main package to add component specific command line flags -func AddExtraFlags(fs *pflag.FlagSet) { - fs.StringArrayVar(&userAgentData, "user-agent", nil, "Extra data to add to STACKIT SDK user-agent. Use multiple times to add more than one component.") -} - -type IaasClient interface { - CreateVolume(context.Context, *iaas.CreateVolumePayload) (*iaas.Volume, error) - DeleteVolume(ctx context.Context, volumeID string) error - AttachVolume(ctx context.Context, instanceID, volumeID string) (string, error) - ListVolumes(ctx context.Context, limit int, startingToken string) ([]iaas.Volume, string, error) - WaitDiskAttached(ctx context.Context, instanceID string, volumeID string) error - DetachVolume(ctx context.Context, instanceID, volumeID string) error - WaitDiskDetached(ctx context.Context, instanceID string, volumeID string) error - WaitVolumeTargetStatus(ctx context.Context, volumeID string, tStatus []string) error - GetVolume(ctx context.Context, volumeID string) (*iaas.Volume, error) - GetVolumesByName(ctx context.Context, name string) ([]iaas.Volume, error) - GetVolumeByName(ctx context.Context, name string) (*iaas.Volume, error) - CreateSnapshot(ctx context.Context, name, volID string, tags map[string]string) (*iaas.Snapshot, error) - ListSnapshots(ctx context.Context, filters map[string]string) ([]iaas.Snapshot, string, error) - DeleteSnapshot(ctx context.Context, snapID string) error - GetSnapshotByID(ctx context.Context, snapshotID string) (*iaas.Snapshot, error) - WaitSnapshotReady(ctx context.Context, snapshotID string) (*string, error) - CreateBackup(ctx context.Context, name, volID, snapshotID string, tags map[string]string) (*iaas.Backup, error) - ListBackups(ctx context.Context, filters map[string]string) ([]iaas.Backup, error) - DeleteBackup(ctx context.Context, backupID string) error - GetBackupByID(ctx context.Context, backupID string) (*iaas.Backup, error) - WaitBackupReady(ctx context.Context, backupID string, snapshotSize int64, backupMaxDurationSecondsPerGB int) (*string, error) - GetInstanceByID(ctx context.Context, instanceID string) (*iaas.Server, error) - ExpandVolume(ctx context.Context, volumeID string, status string, size int64) error - GetBlockStorageOpts() BlockStorageOpts - WaitVolumeTargetStatusWithCustomBackoff(ctx context.Context, volumeID string, targetStatus []string, backoff *wait.Backoff) error -} - -type LoadbalancerClient interface { - GetLoadBalancer(ctx context.Context, projectID string, name string) (*loadbalancer.LoadBalancer, error) - // DeleteLoadBalancer returns no error if the load balancer doesn't exist. - DeleteLoadBalancer(ctx context.Context, projectID string, name string) error - // CreateLoadBalancer returns ErrorNotFound if the project is not enabled. - CreateLoadBalancer(ctx context.Context, projectID string, loadbalancer *loadbalancer.CreateLoadBalancerPayload) (*loadbalancer.LoadBalancer, error) - UpdateLoadBalancer(ctx context.Context, projectID, name string, update *loadbalancer.UpdateLoadBalancerPayload) (*loadbalancer.LoadBalancer, error) - UpdateTargetPool(ctx context.Context, projectID string, name string, targetPoolName string, payload loadbalancer.UpdateTargetPoolPayload) error - CreateCredentials(ctx context.Context, projectID string, payload loadbalancer.CreateCredentialsPayload) (*loadbalancer.CreateCredentialsResponse, error) - ListCredentials(ctx context.Context, projectID string) (*loadbalancer.ListCredentialsResponse, error) - GetCredentials(ctx context.Context, projectID string, credentialRef string) (*loadbalancer.GetCredentialsResponse, error) - UpdateCredentials(ctx context.Context, projectID, credentialRef string, payload loadbalancer.UpdateCredentialsPayload) error - DeleteCredentials(ctx context.Context, projectID string, credentialRef string) error -} - -// NodeClient is the API client wrapper for the cloud-controller-manager's node-controller -type NodeClient interface { - GetServer(ctx context.Context, projectID, region, serverID string) (*iaas.Server, error) - DeleteServer(ctx context.Context, projectID, region, serverID string) error - CreateServer(ctx context.Context, projectID string, region string, create *iaas.CreateServerPayload) (*iaas.Server, error) - UpdateServer(ctx context.Context, projectID, region, serverID string, update *iaas.UpdateServerPayload) (*iaas.Server, error) - ListServers(ctx context.Context, projectID, region string) (*[]iaas.Server, error) -} - -type iaasClient struct { - iaas iaas.DefaultApi - projectID string - region string - bsOpts BlockStorageOpts -} - -type lbClient struct { - client loadbalancer.DefaultApi - region string -} - -type nodeClient struct { - client *iaas.APIClient -} - -//nolint:gocritic // The openstack package currently shadows but will be renamed anyway. -func (os *iaasClient) GetBlockStorageOpts() BlockStorageOpts { - return os.bsOpts -} - -type BlockStorageOpts struct { - RescanOnResize bool `gcfg:"rescan-on-resize"` -} - -type GlobalOpts struct { - ProjectID string `gcfg:"project-id"` - IaasAPIURL string `gcfg:"iaas-api-url"` -} - -type Config struct { - Global GlobalOpts - Metadata metadata.Opts - BlockStorage BlockStorageOpts -} - -func GetConfigFromFile(path string) (Config, error) { - var cfg Config - - config, err := os.Open(path) - if err != nil { - klog.ErrorS(err, "Failed to open config file", "path", path) - return cfg, err - } - defer config.Close() - - err = gcfg.FatalOnly(gcfg.ReadInto(&cfg, config)) - if err != nil { - klog.ErrorS(err, "Failed to parse config file", "path", path) - return cfg, err - } - return cfg, nil -} - -// CreateSTACKITProvider creates STACKIT Instance -func CreateSTACKITProvider(client iaas.DefaultApi, cfg *Config) (IaasClient, error) { - region := os.Getenv("STACKIT_REGION") - if region == "" { - panic("STACKIT_REGION environment variable not set") - } - // Init iaasClient - instance := &iaasClient{ - iaas: client, - bsOpts: cfg.BlockStorage, - projectID: cfg.Global.ProjectID, - region: region, - } - - return instance, nil -} - -func CreateIaaSClient(cfg *Config) (iaas.DefaultApi, error) { - var userAgent []string - var opts []sdkconfig.ConfigurationOption - userAgent = append(userAgent, fmt.Sprintf("%s/%s", "block-storage-csi-driver", version.Version)) - for _, data := range userAgentData { - // Prepend userAgents - userAgent = append([]string{data}, userAgent...) - } - klog.V(4).Infof("Using user-agent: %s", userAgent) - - if cfg.Global.IaasAPIURL != "" { - opts = append(opts, sdkconfig.WithEndpoint(cfg.Global.IaasAPIURL)) - } - - opts = append(opts, sdkconfig.WithUserAgent(strings.Join(userAgent, " "))) - - return iaas.NewAPIClient(opts...) -} - -func NewLoadbalancerClient(cl loadbalancer.DefaultApi, region string) (LoadbalancerClient, error) { - return &lbClient{ - client: cl, - region: region, - }, nil -} - -func NewNodeClient(cl *iaas.APIClient) (NodeClient, error) { - return &nodeClient{client: cl}, nil -} - -func isOpenAPINotFound(err error) bool { - apiErr := &oapiError.GenericOpenAPIError{} - if !errors.As(err, &apiErr) { - return false - } - return apiErr.StatusCode == http.StatusNotFound -} - -func IsNotFound(err error) bool { - return errors.Is(err, ErrorNotFound) -} diff --git a/pkg/stackit/client/factory.go b/pkg/stackit/client/factory.go new file mode 100644 index 00000000..66b089b1 --- /dev/null +++ b/pkg/stackit/client/factory.go @@ -0,0 +1,99 @@ +package client + +import ( + "fmt" + "io" + "os" + "strings" + + "github.com/spf13/pflag" + stackitconfig "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/config" + "github.com/stackitcloud/cloud-provider-stackit/pkg/version" + sdkconfig "github.com/stackitcloud/stackit-sdk-go/core/config" + "gopkg.in/yaml.v3" + "k8s.io/klog/v2" +) + +func AddExtraFlags(fs *pflag.FlagSet) { + fs.StringArrayVar(&userAgentData, "user-agent", nil, "Extra data to add to STACKIT SDK user-agent. Use multiple times to add more than one component.") +} + +func BuildUserAgent(component, componentVersion string) string { + userAgent := []string{fmt.Sprintf("%s/%s", component, componentVersion)} + for _, data := range userAgentData { + userAgent = append([]string{data}, userAgent...) + } + return strings.Join(userAgent, " ") +} + +const defaultUserAgentComponent = "cloud-provider-stackit" + +// userAgentData is used to add extra information to the STACKIT SDK user-agent +var ( + userAgentData []string +) + +// Factory produces clients for various STACKIT services. +type Factory interface { + // LoadBalancing returns a STACKIT load balancing service client. + LoadBalancing(options []sdkconfig.ConfigurationOption) (LoadBalancingClient, error) + + // IaaS returns a STACKIT IaaS service client. + IaaS(options []sdkconfig.ConfigurationOption) (IaaSClient, error) +} + +type factory struct { + StackitRegion string + StackitProjectID string +} + +func New(region, projectID string) Factory { + return &factory{ + StackitRegion: region, + StackitProjectID: projectID, + } +} + +func (f factory) LoadBalancing(options []sdkconfig.ConfigurationOption) (LoadBalancingClient, error) { + return NewLoadBalancingClient(f.StackitRegion, f.StackitProjectID, withDefaultOptions(options)) +} + +func (f factory) IaaS(options []sdkconfig.ConfigurationOption) (IaaSClient, error) { + return NewIaaSClient(f.StackitRegion, f.StackitProjectID, withDefaultOptions(options)) +} + +func withDefaultOptions(options []sdkconfig.ConfigurationOption) []sdkconfig.ConfigurationOption { + return append(options, + sdkconfig.WithUserAgent(BuildUserAgent(defaultUserAgentComponent, version.Version))) +} + +func GetConfigFromFile(path string) (stackitconfig.CSIConfig, error) { + var cfg stackitconfig.CSIConfig + + config, err := os.Open(path) + if err != nil { + klog.ErrorS(err, "Failed to open stackitconfig file", "path", path) + return cfg, err + } + defer config.Close() + + return GetConfig(config) +} + +func GetConfig(reader io.Reader) (stackitconfig.CSIConfig, error) { + var cfg stackitconfig.CSIConfig + + content, err := io.ReadAll(reader) + if err != nil { + klog.ErrorS(err, "Failed to read config content") + return cfg, err + } + + err = yaml.Unmarshal(content, &cfg) + if err != nil { + klog.ErrorS(err, "Failed to parse config as YAML") + return cfg, err + } + + return cfg, nil +} diff --git a/pkg/stackit/client/factory_test.go b/pkg/stackit/client/factory_test.go new file mode 100644 index 00000000..5b095c70 --- /dev/null +++ b/pkg/stackit/client/factory_test.go @@ -0,0 +1,170 @@ +package client + +import ( + "fmt" + "os" + "strings" + "time" + + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" + stackitconfig "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/config" + "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/metadata" +) + +var _ = Describe("Client", func() { + Describe("GetConfig", func() { + It("should parse valid yaml configuration", func() { + cfg, err := GetConfig(strings.NewReader(` +global: + projectId: "test-project" + iaasApi: "https://api.example.com" + region: "eu01" + apiEndpoints: + iaasApi: "https://api.example.com" +metadata: + searchOrder: "configDrive,metadataService" + requestTimeout: "5s" +blockStorage: + rescanOnResize: true`)) + Expect(err).NotTo(HaveOccurred()) + Expect(cfg.Metadata).To(Equal(metadata.Opts{ + SearchOrder: "configDrive,metadataService", + RequestTimeout: metadata.Duration{Duration: 5 * time.Second}, + })) + Expect(cfg.BlockStorage).To(Equal(stackitconfig.BlockStorageOpts{ + RescanOnResize: true, + })) + Expect(cfg.Global.ProjectID).To(Equal("test-project")) + Expect(cfg.Global.Region).To(Equal("eu01")) + Expect(cfg.Global.APIEndpoints.IaasAPI).To(Equal("https://api.example.com")) + }) + + It("should handle missing optional fields", func() { + cfg, err := GetConfig(strings.NewReader(` +global: + projectId: "test-project" + region: "eu01"`)) + Expect(err).NotTo(HaveOccurred()) + Expect(cfg.Global.ProjectID).To(Equal("test-project")) + Expect(cfg.Global.Region).To(Equal("eu01")) + // Optional fields should be empty/zero values + Expect(cfg.Global.APIEndpoints.IaasAPI).To(BeEmpty()) + }) + + It("should return error for invalid yaml", func() { + _, err := GetConfig(strings.NewReader(` +global: + projectId: "test-project" + region: "eu01" + invalid yaml syntax here [[[`)) + Expect(err).To(HaveOccurred()) + }) + + It("should handle empty yaml gracefully", func() { + cfg, err := GetConfig(strings.NewReader(``)) + Expect(err).NotTo(HaveOccurred()) + // Empty YAML should result in zero values + Expect(cfg).To(Equal(stackitconfig.CSIConfig{})) + }) + }) + + Describe("GetConfigFromFile", func() { + var tempFile *os.File + var tempFilePath string + + BeforeEach(func() { + var err error + tempFile, err = os.CreateTemp("", "test-stackitconfig-*.yaml") + Expect(err).NotTo(HaveOccurred()) + tempFilePath = tempFile.Name() + }) + + AfterEach(func() { + if tempFile != nil { + tempFile.Close() + os.Remove(tempFilePath) + } + }) + + It("should read configuration from file", func() { + _, err := tempFile.WriteString(` +global: + projectId: "test-project" + iaasApi: "https://api.example.com" + region: "eu01" +metadata: + searchOrder: "configDrive,metadataService" + requestTimeout: "5s" +blockStorage: + rescanOnResize: true`) + Expect(err).NotTo(HaveOccurred()) + tempFile.Close() + + cfg, err := GetConfigFromFile(tempFilePath) + Expect(err).NotTo(HaveOccurred()) + Expect(cfg.Global.ProjectID).To(Equal("test-project")) + }) + + It("should return error for non-existent file", func() { + _, err := GetConfigFromFile("non-existent-file.yaml") + Expect(err).To(HaveOccurred()) + }) + }) + + Describe("Metadata Duration Parsing", func() { + DescribeTable("should parse various duration formats", + func(durationStr string, expected time.Duration) { + yaml := fmt.Sprintf(` +global: + projectId: "test-project" + region: "eu01" +metadata: + requestTimeout: "%s"`, durationStr) + + cfg, err := GetConfig(strings.NewReader(yaml)) + Expect(err).NotTo(HaveOccurred()) + Expect(cfg.Metadata.RequestTimeout.Duration).To(Equal(expected)) + }, + Entry("seconds", "5s", 5*time.Second), + Entry("minutes", "1m", 1*time.Minute), + Entry("hours", "2h", 2*time.Hour), + Entry("milliseconds", "300ms", 300*time.Millisecond), + Entry("complex duration", "1h30m15s", 1*time.Hour+30*time.Minute+15*time.Second), + ) + + It("should return error for invalid duration format", func() { + yaml := ` +global: + projectId: "test-project" + region: "eu01" +metadata: + requestTimeout: "invalid-duration"` + + _, err := GetConfig(strings.NewReader(yaml)) + Expect(err).To(HaveOccurred()) + }) + }) + + Describe("Metadata Search Order Validation", func() { + DescribeTable("should validate search order format", + func(searchOrder string, shouldError bool, errorMsg string) { + err := metadata.CheckMetadataSearchOrder(searchOrder) + if shouldError { + Expect(err).To(HaveOccurred()) + Expect(err.Error()).To(ContainSubstring(errorMsg)) + } else { + Expect(err).NotTo(HaveOccurred()) + } + }, + Entry("valid configDrive,metadataService", "configDrive,metadataService", false, ""), + Entry("valid metadataService,configDrive", "metadataService,configDrive", false, ""), + Entry("valid single configDrive", "configDrive", false, ""), + Entry("valid single metadataService", "metadataService", false, ""), + Entry("empty search order", "", true, "metadata.searchOrder"), + Entry("too many elements", "configDrive,metadataService,extra", true, "metadata.searchOrder"), + Entry("invalid element", "invalid", true, "metadata.searchOrder"), + Entry("mixed valid and invalid", "configDrive,invalid", true, "metadata.searchOrder"), + ) + }) +}) diff --git a/pkg/stackit/client/helper.go b/pkg/stackit/client/helper.go new file mode 100644 index 00000000..981b553d --- /dev/null +++ b/pkg/stackit/client/helper.go @@ -0,0 +1,28 @@ +package client + +import ( + "context" + "net/http" + + "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/stackiterrors" + "github.com/stackitcloud/stackit-sdk-go/core/runtime" + sdkWait "github.com/stackitcloud/stackit-sdk-go/services/iaas/v2api/wait" +) + +func execute[T any](ctx context.Context, call func(context.Context) (T, error)) (T, error) { + var httpResp *http.Response + ctx = runtime.WithCaptureHTTPResponse(ctx, &httpResp) + + resp, err := call(ctx) + if err != nil { + var zero T + err = stackiterrors.WrapError(err, "X-Trace-Id", runtime.GetTraceId(ctx)) + if httpResp != nil { + reqID := httpResp.Header.Get(sdkWait.XRequestIDHeader) + err = stackiterrors.WrapErrorWithResponseID(err, reqID) + } + return zero, err + } + + return resp, nil +} diff --git a/pkg/stackit/client/helper_test.go b/pkg/stackit/client/helper_test.go new file mode 100644 index 00000000..5b2ff4cf --- /dev/null +++ b/pkg/stackit/client/helper_test.go @@ -0,0 +1,27 @@ +package client + +import ( + "context" + "errors" + "net/http" + + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" + sdkconfig "github.com/stackitcloud/stackit-sdk-go/core/config" +) + +var _ = Describe("execute", func() { + It("wraps API errors with trace and request IDs", func() { + _, err := execute(context.Background(), func(ctx context.Context) (int, error) { + response, ok := ctx.Value(sdkconfig.ContextHTTPResponse).(**http.Response) + Expect(ok).To(BeTrue()) + *response = &http.Response{Header: http.Header{ + "X-Trace-Id": {"trace-123"}, + "X-Request-Id": {"request-456"}, + }} + return 0, errors.New("api error") + }) + + Expect(err).To(MatchError("[X-Request-Id:request-456]: [X-Trace-Id:trace-123]: api error")) + }) +}) diff --git a/pkg/stackit/client/iaas.go b/pkg/stackit/client/iaas.go new file mode 100644 index 00000000..aeffe58b --- /dev/null +++ b/pkg/stackit/client/iaas.go @@ -0,0 +1,578 @@ +package client + +import ( + "context" + "errors" + "fmt" + "slices" + "time" + + "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/stackiterrors" + sdkconfig "github.com/stackitcloud/stackit-sdk-go/core/config" + iaas "github.com/stackitcloud/stackit-sdk-go/services/iaas/v2api" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/klog/v2" +) + +type iaasClient struct { + Client iaas.DefaultAPI + projectID string + region string +} + +type IaaSClient interface { + GetServer(ctx context.Context, serverID string) (*iaas.Server, error) + GetServerWithDetails(ctx context.Context, serverID string) (*iaas.Server, error) + ListServers(ctx context.Context) (*[]iaas.Server, error) + + CreateSnapshot(ctx context.Context, payload iaas.CreateSnapshotPayload) (*iaas.Snapshot, error) + ListSnapshots(ctx context.Context, filters map[string]string) ([]iaas.Snapshot, string, error) + DeleteSnapshot(ctx context.Context, snapshotID string) error + GetSnapshot(ctx context.Context, snapshotID string) (*iaas.Snapshot, error) + WaitSnapshotReady(ctx context.Context, snapshotID string) (*string, error) + + CreateBackup(ctx context.Context, name, volID, snapshotID string, tags map[string]string) (*iaas.Backup, error) + ListBackups(ctx context.Context, filters map[string]string) ([]iaas.Backup, error) + DeleteBackup(ctx context.Context, backupID string) error + GetBackup(ctx context.Context, backupID string) (*iaas.Backup, error) + WaitBackupReady(ctx context.Context, backupID string, snapshotSize int64, backupMaxDurationSecondsPerGB int) (*string, error) + + CreateVolume(ctx context.Context, payload iaas.CreateVolumePayload) (*iaas.Volume, error) + DeleteVolume(ctx context.Context, volumeID string) error + AttachVolume(ctx context.Context, serverID, volumeID string, payload iaas.AddVolumeToServerPayload) (string, error) + DetachVolume(ctx context.Context, serverID, volumeID string) error + GetVolume(ctx context.Context, volumeID string) (*iaas.Volume, error) + GetVolumesByName(ctx context.Context, volName string) ([]iaas.Volume, error) + ListVolumes(ctx context.Context, _ int, _ string) ([]iaas.Volume, string, error) + ExpandVolume(ctx context.Context, volumeID, volumeStatus string, payload iaas.ResizeVolumePayload) error + WaitVolumeTargetStatus(ctx context.Context, volumeID string, tStatus []string) error + WaitDiskAttached(ctx context.Context, instanceID, volumeID string) error + WaitDiskDetached(ctx context.Context, instanceID, volumeID string) error + WaitVolumeTargetStatusWithCustomBackoff(ctx context.Context, volumeID string, tStatus []string, backoff wait.Backoff) (*iaas.Volume, error) +} + +const ( + VolumeAvailableStatus = "AVAILABLE" + VolumeAttachedStatus = "ATTACHED" + VolumeErrorStatus = "ERROR" + operationFinishInitDelay = 1 * time.Second + operationFinishFactor = 1.1 + operationFinishSteps = 10 + diskAttachInitDelay = 1 * time.Second + diskAttachFactor = 1.2 + diskAttachSteps = 15 + diskDetachInitDelay = 1 * time.Second + diskDetachFactor = 1.2 + diskDetachSteps = 13 + VolumeDescription = "Created by STACKIT CSI driver" +) + +const ( + BackupDescription = "Created by STACKIT CSI driver" + backupReadyStatus = "AVAILABLE" + backupErrorStatus = "error" + BackupMaxDurationSecondsPerGBDefault = 20 + BackupMaxDurationPerGB = "backup-max-duration-seconds-per-gb" + backupBaseDurationSeconds = 30 + backupReadyCheckIntervalSeconds = 7 +) + +const ( + SnapshotReadyStatus = "AVAILABLE" + snapReadyDuration = 1 * time.Second + snapReadyFactor = 1.2 + snapReadySteps = 10 + + SnapshotType = "type" +) + +type VolumeSourceTypes string + +const ( + VolumeSource VolumeSourceTypes = "volume" + SnapshotSource VolumeSourceTypes = "snapshot" + BackupSource VolumeSourceTypes = "backup" +) + +var volumeErrorStates = [...]string{"ERROR", "ERROR_BACKING-UP", "ERROR_DELETING", "ERROR_RESIZING", "ERROR_RESTORING-BACKUP", "ERROR_KMS-ENCRYPTION-PARAMS"} + +func NewIaaSClient(region, projectID string, options []sdkconfig.ConfigurationOption) (IaaSClient, error) { + apiClient, err := iaas.NewAPIClient(options...) + if err != nil { + return nil, err + } + return &iaasClient{ + Client: apiClient.DefaultAPI, + projectID: projectID, + region: region, + }, nil +} + +func (i *iaasClient) GetServer(ctx context.Context, serverID string) (*iaas.Server, error) { + return execute(ctx, func(ctx context.Context) (*iaas.Server, error) { + return i.Client.GetServer(ctx, i.projectID, i.region, serverID).Execute() + }) +} + +func (i *iaasClient) GetServerWithDetails(ctx context.Context, serverID string) (*iaas.Server, error) { + return execute(ctx, func(ctx context.Context) (*iaas.Server, error) { + return i.Client.GetServer(ctx, i.projectID, i.region, serverID).Details(true).Execute() + }) +} + +func (i *iaasClient) ListServers(ctx context.Context) (*[]iaas.Server, error) { + return execute(ctx, func(ctx context.Context) (*[]iaas.Server, error) { + resp, err := i.Client.ListServers(ctx, i.projectID, i.region).Details(true).Execute() + if err != nil { + return nil, err + } + + return &resp.Items, nil + }) +} + +//nolint:gocritic // Payload is passed by value to match the shared IaaSClient interface. +func (i *iaasClient) CreateSnapshot(ctx context.Context, payload iaas.CreateSnapshotPayload) (*iaas.Snapshot, error) { + return execute(ctx, func(ctx context.Context) (*iaas.Snapshot, error) { + return i.Client. + CreateSnapshot(ctx, i.projectID, i.region). + CreateSnapshotPayload(payload). + Execute() + }) +} + +func (i *iaasClient) ListSnapshots(ctx context.Context, filters map[string]string) ([]iaas.Snapshot, string, error) { + resp, err := execute(ctx, func(ctx context.Context) (*iaas.SnapshotListResponse, error) { + return i.Client.ListSnapshotsInProject(ctx, i.projectID, i.region).Execute() + }) + if err != nil { + return nil, "", err + } + + filteredSnapshots := FilterSnapshots(resp.Items, filters) + + return filteredSnapshots, "", nil +} + +func (i *iaasClient) DeleteSnapshot(ctx context.Context, snapshotID string) error { + _, err := execute(ctx, func(ctx context.Context) (any, error) { + return nil, i.Client.DeleteSnapshot(ctx, i.projectID, i.region, snapshotID).Execute() + }) + return err +} + +func (i *iaasClient) GetSnapshot(ctx context.Context, snapshotID string) (*iaas.Snapshot, error) { + return execute(ctx, func(ctx context.Context) (*iaas.Snapshot, error) { + return i.Client.GetSnapshot(ctx, i.projectID, i.region, snapshotID).Execute() + }) +} + +func (i *iaasClient) WaitSnapshotReady(ctx context.Context, snapshotID string) (*string, error) { + backoff := wait.Backoff{ + Duration: snapReadyDuration, + Factor: snapReadyFactor, + Steps: snapReadySteps, + } + + err := wait.ExponentialBackoff(backoff, func() (bool, error) { + ready, err := i.snapshotIsReady(ctx, snapshotID) + if err != nil { + return false, err + } + + return ready, nil + }) + + if wait.Interrupted(err) { + err = fmt.Errorf("timeout, Snapshot %s is still not Ready %v", snapshotID, err) + } + + snap, _ := i.GetSnapshot(ctx, snapshotID) + + if snap != nil { + return snap.Status, err + } + + return new("Failed to get Snapshot status"), err +} + +func (i *iaasClient) snapshotIsReady(ctx context.Context, snapshotID string) (bool, error) { + snapshot, err := execute(ctx, func(ctx context.Context) (*iaas.Snapshot, error) { + return i.Client.GetSnapshot(ctx, i.projectID, i.region, snapshotID).Execute() + }) + if err != nil { + return false, err + } + + return *snapshot.Status == SnapshotReadyStatus, nil +} + +func (i *iaasClient) CreateBackup(ctx context.Context, name, volID, snapshotID string, tags map[string]string) (*iaas.Backup, error) { + payload, err := BuildCreateBackupPayload(name, volID, snapshotID, tags) + if err != nil { + return nil, err + } + + return execute(ctx, func(ctx context.Context) (*iaas.Backup, error) { + return i.Client. + CreateBackup(ctx, i.projectID, i.region). + CreateBackupPayload(payload). + Execute() + }) +} + +func BuildCreateBackupPayload(name, volID, snapshotID string, tags map[string]string) (iaas.CreateBackupPayload, error) { + if name == "" { + return iaas.CreateBackupPayload{}, errors.New("backup name cannot be empty") + } + + if volID == "" && snapshotID == "" { + return iaas.CreateBackupPayload{}, errors.New("either volID or snapshotID must be provided") + } + + var backupSource VolumeSourceTypes + var backupSourceID string + if volID != "" { + backupSource = VolumeSource + backupSourceID = volID + } + if snapshotID != "" { + backupSource = SnapshotSource + backupSourceID = snapshotID + } + + opts := iaas.CreateBackupPayload{ + Name: new(name), + Description: new(BackupDescription), + Source: iaas.BackupSource{ + Type: string(backupSource), + Id: backupSourceID, + }, + } + if tags != nil { + opts.Labels = LabelsFromTags(tags) + } + + return opts, nil +} + +func (i *iaasClient) ListBackups(ctx context.Context, filters map[string]string) ([]iaas.Backup, error) { + resp, err := execute(ctx, func(ctx context.Context) (*iaas.BackupListResponse, error) { + return i.Client.ListBackups(ctx, i.projectID, i.region).Execute() + }) + if err != nil { + return nil, err + } + + filteredBackups := FilterBackups(resp.Items, filters) + + return filteredBackups, nil +} + +func (i *iaasClient) DeleteBackup(ctx context.Context, backupID string) error { + _, err := execute(ctx, func(ctx context.Context) (any, error) { + return nil, i.Client.DeleteBackup(ctx, i.projectID, i.region, backupID).Execute() + }) + return err +} + +func (i *iaasClient) GetBackup(ctx context.Context, backupID string) (*iaas.Backup, error) { + return execute(ctx, func(ctx context.Context) (*iaas.Backup, error) { + return i.Client.GetBackup(ctx, i.projectID, i.region, backupID).Execute() + }) +} + +func (i *iaasClient) WaitBackupReady(ctx context.Context, backupID string, snapshotSize int64, backupMaxDurationSecondsPerGB int) (*string, error) { + duration := time.Duration(int64(backupMaxDurationSecondsPerGB)*snapshotSize + backupBaseDurationSeconds) + err := i.waitBackupReadyWithContext(backupID, duration) + if errors.Is(err, context.DeadlineExceeded) { + err = fmt.Errorf("timeout, Backup %s is still not Ready: %w", backupID, err) + } + + backup, _ := i.GetBackup(ctx, backupID) + if backup != nil { + return backup.Status, err + } + + return new("Failed to get backup status"), err +} + +func (i *iaasClient) waitBackupReadyWithContext(backupID string, duration time.Duration) error { + ctx, cancel := context.WithTimeout(context.Background(), duration*time.Second) + defer cancel() + var done bool + var err error + ticker := time.NewTicker(backupReadyCheckIntervalSeconds * time.Second) + defer ticker.Stop() + + for { + select { + case <-ticker.C: + done, err = i.backupIsReady(ctx, backupID) + if err != nil { + return err + } + + if done { + return nil + } + case <-ctx.Done(): + return ctx.Err() + } + } +} + +// Supporting function for waitBackupReadyWithContext(). +// Returns true when the backup is ready. +func (i *iaasClient) backupIsReady(ctx context.Context, backupID string) (bool, error) { + backup, err := i.GetBackup(ctx, backupID) + if err != nil { + return false, err + } + + if *backup.Status == backupErrorStatus { + return false, errors.New("backup is in error state") + } + + return *backup.Status == backupReadyStatus, nil +} + +//nolint:gocritic // Payload is passed by value to match the shared IaaSClient interface. +func (i *iaasClient) CreateVolume(ctx context.Context, payload iaas.CreateVolumePayload) (*iaas.Volume, error) { + payload.Description = new(VolumeDescription) + + return execute(ctx, func(ctx context.Context) (*iaas.Volume, error) { + return i.Client.CreateVolume(ctx, i.projectID, i.region).CreateVolumePayload(payload).Execute() + }) +} + +func (i *iaasClient) DeleteVolume(ctx context.Context, volumeID string) error { + used, err := i.diskIsUsed(ctx, volumeID) + if err != nil { + return err + } + if used { + return fmt.Errorf("cannot delete the volume %q, it's still attached to a node", volumeID) + } + + _, err = execute(ctx, func(ctx context.Context) (any, error) { + return nil, i.Client.DeleteVolume(ctx, i.projectID, i.region, volumeID).Execute() + }) + return err +} + +func (i *iaasClient) AttachVolume(ctx context.Context, serverID, volumeID string, payload iaas.AddVolumeToServerPayload) (string, error) { + volume, err := i.GetVolume(ctx, volumeID) + if err != nil { + return "", err + } + + if volume.ServerId != nil && serverID == *volume.ServerId { + klog.V(4).Infof("Disk %s is already attached to instance %s", volumeID, serverID) + return *volume.Id, nil + } + + _, err = execute(ctx, func(ctx context.Context) (any, error) { + return i.Client. + AddVolumeToServer(ctx, i.projectID, i.region, serverID, volumeID). + AddVolumeToServerPayload(payload). + Execute() + }) + if err != nil { + return "", err + } + + return volume.GetId(), nil +} + +func (i *iaasClient) GetVolume(ctx context.Context, volumeID string) (*iaas.Volume, error) { + return execute(ctx, func(ctx context.Context) (*iaas.Volume, error) { + return i.Client.GetVolume(ctx, i.projectID, i.region, volumeID).Execute() + }) +} + +func (i *iaasClient) GetVolumesByName(ctx context.Context, volName string) ([]iaas.Volume, error) { + resp, err := execute(ctx, func(ctx context.Context) (*iaas.VolumeListResponse, error) { + return i.Client.ListVolumes(ctx, i.projectID, i.region).Execute() + }) + if err != nil { + return nil, err + } + + filterMap := map[string]string{"Name": volName} + filteredVolumes := FilterVolumes(resp.Items, filterMap) + + return filteredVolumes, nil +} + +func (i *iaasClient) ListVolumes(ctx context.Context, _ int, _ string) ([]iaas.Volume, string, error) { + // TODO: Add support for pagination when IaaS adds it + resp, err := execute(ctx, func(ctx context.Context) (*iaas.VolumeListResponse, error) { + return i.Client.ListVolumes(ctx, i.projectID, i.region).Execute() + }) + if err != nil { + return nil, "", err + } + + return resp.Items, "", nil +} + +func (i *iaasClient) ExpandVolume(ctx context.Context, volumeID, volumeStatus string, payload iaas.ResizeVolumePayload) error { + switch volumeStatus { + case VolumeAttachedStatus, VolumeAvailableStatus: + _, err := execute(ctx, func(ctx context.Context) (any, error) { + return nil, i.Client. + ResizeVolume(ctx, i.projectID, i.region, volumeID). + ResizeVolumePayload(payload). + Execute() + }) + return err + + default: + return fmt.Errorf("volume cannot be resized, when status is %s", volumeStatus) + } +} + +func (i *iaasClient) WaitVolumeTargetStatus(ctx context.Context, volumeID string, tStatus []string) error { + backoff := wait.Backoff{ + Duration: operationFinishInitDelay, + Factor: operationFinishFactor, + Steps: operationFinishSteps, + } + + _, err := i.WaitVolumeTargetStatusWithCustomBackoff(ctx, volumeID, tStatus, backoff) + return err +} + +func (i *iaasClient) WaitVolumeTargetStatusWithCustomBackoff(ctx context.Context, volumeID string, tStatus []string, backoff wait.Backoff) (*iaas.Volume, error) { + var lastVolume *iaas.Volume + + waitErr := wait.ExponentialBackoff(backoff, func() (bool, error) { + volume, err := i.GetVolume(ctx, volumeID) + if err != nil { + return false, err + } + + lastVolume = volume + + if slices.Contains(tStatus, volume.GetStatus()) { + return true, nil + } + for _, eState := range volumeErrorStates { + if volume.GetStatus() == eState { + return false, fmt.Errorf("volume is in Error State : %s", volume.GetStatus()) + } + } + return false, nil + }) + + if wait.Interrupted(waitErr) { + waitErr = fmt.Errorf("timeout on waiting for volume %s status to be in %v", volumeID, tStatus) + } + + return lastVolume, waitErr +} + +func (i *iaasClient) WaitDiskAttached(ctx context.Context, instanceID, volumeID string) error { + backoff := wait.Backoff{ + Duration: diskAttachInitDelay, + Factor: diskAttachFactor, + Steps: diskAttachSteps, + } + + err := wait.ExponentialBackoff(backoff, func() (bool, error) { + attached, err := i.diskIsAttached(ctx, instanceID, volumeID) + if err != nil && !stackiterrors.IsNotFound(err) { + // if this is a race condition indicate the volume is deleted + // during sleep phase, ignore the error and return attach=false + return false, err + } + return attached, nil + }) + + if wait.Interrupted(err) { + err = fmt.Errorf("volume %q failed to be attached within the allowed time", volumeID) + } + + return err +} + +func (i *iaasClient) WaitDiskDetached(ctx context.Context, instanceID, volumeID string) error { + backoff := wait.Backoff{ + Duration: diskDetachInitDelay, + Factor: diskDetachFactor, + Steps: diskDetachSteps, + } + + err := wait.ExponentialBackoff(backoff, func() (bool, error) { + attached, err := i.diskIsAttached(ctx, instanceID, volumeID) + if err != nil { + return false, err + } + return !attached, nil + }) + + if wait.Interrupted(err) { + err = fmt.Errorf("volume %q failed to detach within the allowed time", volumeID) + } + + return err +} + +func (i *iaasClient) DetachVolume(ctx context.Context, serverID, volumeID string) error { + volume, err := i.GetVolume(ctx, volumeID) + if err != nil { + return err + } + + if *volume.Status == VolumeAvailableStatus { + klog.V(2).Infof("Volume: %s has been detached from compute: %s ", *volume.Id, serverID) + return nil + } + + if *volume.Status != VolumeAttachedStatus { + return fmt.Errorf("can not detach volume %s, its status is %s", *volume.Name, *volume.Status) + } + + if volume.ServerId != nil && *volume.ServerId == serverID { + _, err := execute(ctx, func(ctx context.Context) (any, error) { + err := i.Client.RemoveVolumeFromServer(ctx, i.projectID, i.region, serverID, volumeID).Execute() + if err != nil { + return nil, fmt.Errorf("failed to detach volume %s from compute %s : %w", *volume.Name, serverID, err) + } + return nil, nil + }) + if err != nil { + return err + } + + klog.V(2).Infof("Successfully detached volume: %s from compute: %s", *volume.Id, serverID) + } + + return nil +} + +// diskIsAttached queries if a volume is attached to a compute instance +func (i *iaasClient) diskIsAttached(ctx context.Context, instanceID, volumeID string) (bool, error) { + volume, err := i.GetVolume(ctx, volumeID) + if err != nil { + return false, err + } + + if volume.ServerId != nil && *volume.ServerId == instanceID { + return true, nil + } + return false, nil +} + +// diskIsUsed returns true whether a disk is attached to any node +func (i *iaasClient) diskIsUsed(ctx context.Context, volumeID string) (bool, error) { + volume, err := i.GetVolume(ctx, volumeID) + if err != nil { + return false, err + } + + diskUsed := volume.ServerId != nil && *volume.ServerId != "" + + return diskUsed, nil +} diff --git a/pkg/stackit/client/iaas_test.go b/pkg/stackit/client/iaas_test.go new file mode 100644 index 00000000..ceca1794 --- /dev/null +++ b/pkg/stackit/client/iaas_test.go @@ -0,0 +1,623 @@ +package client + +import ( + "context" + "fmt" + "net/http" + + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" + oapiError "github.com/stackitcloud/stackit-sdk-go/core/oapierror" + iaas "github.com/stackitcloud/stackit-sdk-go/services/iaas/v2api" + "go.uber.org/mock/gomock" + "k8s.io/apimachinery/pkg/util/wait" + + mock "github.com/stackitcloud/cloud-provider-stackit/pkg/mock/iaas" +) + +var _ = Describe("Server", func() { + var ( + mockCtrl *gomock.Controller + mockIaaSClient *mock.MockDefaultAPI + client *iaasClient + ) + + const ( + serverID = "server-uuid-123" + ) + + BeforeEach(func() { + mockCtrl = gomock.NewController(GinkgoT()) + mockIaaSClient = mock.NewMockDefaultAPI(mockCtrl) + + client = &iaasClient{ + Client: mockIaaSClient, + } + }) + + AfterEach(func() { + mockCtrl.Finish() + }) + + Context("GetServer", func() { + It("returns a server on success", func() { + mockIaaSClient.EXPECT(). + GetServer(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Return(iaas.ApiGetServerRequest{ApiService: mockIaaSClient}) + mockIaaSClient.EXPECT().GetServerExecute(gomock.Any()).Return(&iaas.Server{Id: new(serverID), Name: "my-server"}, nil) + + server, err := client.GetServer(context.Background(), "my-server") + Expect(err).ToNot(HaveOccurred()) + Expect(*server.Id).To(Equal(serverID)) + }) + + It("returns ErrorNotFound when API returns 404", func() { + mockIaaSClient.EXPECT(). + GetServer(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Return(iaas.ApiGetServerRequest{ApiService: mockIaaSClient}) + mockIaaSClient.EXPECT().GetServerExecute(gomock.Any()).Return(nil, &oapiError.GenericOpenAPIError{ + StatusCode: http.StatusNotFound, + }) + + _, err := client.GetServer(context.Background(), "my-server") + Expect(err).To(HaveOccurred()) + }) + }) + + Context("ListServers", func() { + It("returns a list of servers with details", func() { + mockItems := []iaas.Server{ + {Id: new("id-1"), Name: "server-1"}, + } + + mockIaaSClient.EXPECT(). + ListServers(gomock.Any(), gomock.Any(), gomock.Any()). + Return(iaas.ApiListServersRequest{ApiService: mockIaaSClient}) + mockIaaSClient.EXPECT().ListServersExecute(gomock.Any()).Return(&iaas.ServerListResponse{Items: mockItems}, nil) + + resp, err := client.ListServers(context.Background()) + Expect(err).ToNot(HaveOccurred()) + items := *resp + Expect(items).To(HaveLen(1)) + Expect(*items[0].Id).To(Equal("id-1")) + }) + }) +}) + +var _ = Describe("Snapshot", func() { + var ( + mockCtrl *gomock.Controller + mockIaaSClient *mock.MockDefaultAPI + client *iaasClient + ) + + const ( + snapshotID = "snapshot-uuid-123" + ) + + BeforeEach(func() { + mockCtrl = gomock.NewController(GinkgoT()) + mockIaaSClient = mock.NewMockDefaultAPI(mockCtrl) + + client = &iaasClient{ + Client: mockIaaSClient, + } + }) + + AfterEach(func() { + mockCtrl.Finish() + }) + + Context("CreateSnapshot", func() { + It("successfully creates a snapshot", func() { + mockIaaSClient.EXPECT(). + CreateSnapshot(gomock.Any(), gomock.Any(), gomock.Any()). + Return(iaas.ApiCreateSnapshotRequest{ApiService: mockIaaSClient}) + mockIaaSClient.EXPECT().CreateSnapshotExecute(gomock.Any()).Return(&iaas.Snapshot{Id: new(snapshotID)}, nil) + + payload := iaas.CreateSnapshotPayload{Name: new("new-snapshot")} + snapshot, err := client.CreateSnapshot(context.Background(), payload) + Expect(err).ToNot(HaveOccurred()) + Expect(*snapshot.Id).To(Equal(snapshotID)) + }) + }) + + Context("ListSnapshots", func() { + It("returns a filtered list of snapshots", func() { + mockItems := &iaas.SnapshotListResponse{ + Items: []iaas.Snapshot{ + {Id: new("id-1"), Name: new("snap-1")}, + {Id: new("id-2"), Name: new("snap-2")}, + }, + } + + mockIaaSClient.EXPECT(). + ListSnapshotsInProject(gomock.Any(), gomock.Any(), gomock.Any()). + Return(iaas.ApiListSnapshotsInProjectRequest{ApiService: mockIaaSClient}) + mockIaaSClient.EXPECT().ListSnapshotsInProjectExecute(gomock.Any()).Return(mockItems, nil) + + resp, _, err := client.ListSnapshots(context.Background(), nil) + Expect(err).ToNot(HaveOccurred()) + Expect(resp).To(HaveLen(2)) + }) + + snapShotListResponse := iaas.SnapshotListResponse{ + Items: []iaas.Snapshot{ + { + Id: new("fake-snapshot"), + Name: new("fake-snapshot"), + VolumeId: "some-special-volume", + Status: new("ERROR"), + }, + { + Id: new("fake-snapshot2"), + Name: new("fake-snapshot2"), + VolumeId: "some-special-volume", + Status: new("AVAILABLE"), + }, + { + Id: new("wrong snapshot"), + Name: new("wrong snapshot"), + VolumeId: "another-special-volume", + Status: new("AVAILABLE"), + }, + }, + } + + DescribeTable("should return a filtered list of snapshots", + func(filters map[string]string, expectedSnaps []iaas.Snapshot) { + mockIaaSClient.EXPECT().ListSnapshotsInProject(gomock.Any(), gomock.Any(), gomock.Any()).Return(iaas.ApiListSnapshotsInProjectRequest{ApiService: mockIaaSClient}) + mockIaaSClient.EXPECT().ListSnapshotsInProjectExecute(gomock.Any()).Return(&snapShotListResponse, nil) + + snaps, _, err := client.ListSnapshots(context.Background(), filters) + Expect(err).ToNot(HaveOccurred()) + Expect(snaps).To(Equal(expectedSnaps)) + }, + Entry("filter by VolumeID", + map[string]string{"VolumeID": "some-special-volume"}, + []iaas.Snapshot{ + { + Id: new("fake-snapshot"), + Name: new("fake-snapshot"), + VolumeId: "some-special-volume", + Status: new("ERROR"), + }, + { + Id: new("fake-snapshot2"), + Name: new("fake-snapshot2"), + VolumeId: "some-special-volume", + Status: new("AVAILABLE"), + }, + }, + ), + Entry("filter by name", + map[string]string{"Name": "fake-snapshot"}, + []iaas.Snapshot{ + { + Id: new("fake-snapshot"), + Name: new("fake-snapshot"), + VolumeId: "some-special-volume", + Status: new("ERROR"), + }, + }, + ), + Entry("filter by status and name", + map[string]string{"Name": "fake-snapshot2", "Status": "AVAILABLE"}, + []iaas.Snapshot{ + { + Id: new("fake-snapshot2"), + Name: new("fake-snapshot2"), + VolumeId: "some-special-volume", + Status: new("AVAILABLE"), + }, + }, + ), + Entry("no filters", + map[string]string{}, + snapShotListResponse.Items, + ), + ) + }) + + Context("GetSnapshot", func() { + It("returns a specific snapshot on success", func() { + mockIaaSClient.EXPECT(). + GetSnapshot(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Return(iaas.ApiGetSnapshotRequest{ApiService: mockIaaSClient}) + mockIaaSClient.EXPECT().GetSnapshotExecute(gomock.Any()).Return(&iaas.Snapshot{Id: new(snapshotID), Status: new("AVAILABLE")}, nil) + + snapshot, err := client.GetSnapshot(context.Background(), snapshotID) + Expect(err).ToNot(HaveOccurred()) + Expect(*snapshot.Id).To(Equal(snapshotID)) + }) + }) + + Context("DeleteSnapshot", func() { + It("deletes the snapshot successfully", func() { + mockIaaSClient.EXPECT(). + DeleteSnapshot(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Return(iaas.ApiDeleteSnapshotRequest{ApiService: mockIaaSClient}) + mockIaaSClient.EXPECT().DeleteSnapshotExecute(gomock.Any()).Return(nil) + + err := client.DeleteSnapshot(context.Background(), snapshotID) + Expect(err).ToNot(HaveOccurred()) + }) + }) + + Context("WaitSnapshotReady", func() { + It("returns the current status of the snapshot", func() { + mockIaaSClient.EXPECT(). + GetSnapshot(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Return(iaas.ApiGetSnapshotRequest{ApiService: mockIaaSClient}).AnyTimes() + mockIaaSClient.EXPECT().GetSnapshotExecute(gomock.Any()).Return(&iaas.Snapshot{Id: new(snapshotID), Status: new("AVAILABLE")}, nil).AnyTimes() + + status, err := client.WaitSnapshotReady(context.Background(), snapshotID) + Expect(err).ToNot(HaveOccurred()) + Expect(*status).To(Equal("AVAILABLE")) + }) + + It("returns an error if the snapshot retrieval fails", func() { + mockIaaSClient.EXPECT(). + GetSnapshot(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Return(iaas.ApiGetSnapshotRequest{ApiService: mockIaaSClient}).AnyTimes() + mockIaaSClient.EXPECT().GetSnapshotExecute(gomock.Any()).Return(nil, fmt.Errorf("api error")).AnyTimes() + + status, err := client.WaitSnapshotReady(context.Background(), snapshotID) + Expect(err).To(HaveOccurred()) + Expect(status).ToNot(BeNil()) + Expect(*status).To(Equal("Failed to get Snapshot status")) + }) + }) +}) + +var _ = Describe("Backup", func() { + var ( + mockCtrl *gomock.Controller + mockIaaSClient *mock.MockDefaultAPI + client *iaasClient + ) + + BeforeEach(func() { + mockCtrl = gomock.NewController(GinkgoT()) + mockIaaSClient = mock.NewMockDefaultAPI(mockCtrl) + + client = &iaasClient{ + Client: mockIaaSClient, + } + }) + + AfterEach(func() { + mockCtrl.Finish() + }) + + Context("buildCreateBackupPayload", func() { + DescribeTable("successful payload variants", + func(name, volID, snapshotID string, tags map[string]string, expectedPayload iaas.CreateBackupPayload) { + actualPayload, err := BuildCreateBackupPayload(name, volID, snapshotID, tags) + Expect(err).ToNot(HaveOccurred()) + Expect(actualPayload).To(Equal(expectedPayload)) + }, + Entry("with volume source and nil tags", "expected-name", "volume-id", "", nil, iaas.CreateBackupPayload{ + Name: new("expected-name"), + Description: new(BackupDescription), + Source: iaas.BackupSource{Type: "volume", Id: "volume-id"}, + Labels: nil, + }), + Entry("with snapshot source and special characters in tags", "expected-name", "", "snapshot-id", + map[string]string{ + "special": "tag with spaces and !@#$%^&*()", + "normal": "value", + }, + iaas.CreateBackupPayload{ + Name: new("expected-name"), + Description: new(BackupDescription), + Source: iaas.BackupSource{Type: "snapshot", Id: "snapshot-id"}, + Labels: map[string]any{ + "special": "tag with spaces and !@#$%^&*()", + "normal": "value", + }, + }, + ), + Entry("with empty tags map", "expected-name", "volume-id", "", map[string]string{}, iaas.CreateBackupPayload{ + Name: new("expected-name"), + Description: new(BackupDescription), + Source: iaas.BackupSource{Type: "volume", Id: "volume-id"}, + Labels: map[string]any{}, + }), + Entry("with long backup name", "very-long-backup-name-"+string(make([]byte, 200)), "volume-id", "", nil, iaas.CreateBackupPayload{ + Name: new("very-long-backup-name-" + string(make([]byte, 200))), + Description: new(BackupDescription), + Source: iaas.BackupSource{Type: "volume", Id: "volume-id"}, + }), + Entry("when both volume and snapshot are provided snapshot wins", "expected-name", "volume-id", "snapshot-id", nil, iaas.CreateBackupPayload{ + Name: new("expected-name"), + Description: new(BackupDescription), + Source: iaas.BackupSource{Type: "snapshot", Id: "snapshot-id"}, + }), + ) + + DescribeTable("validation error variants", + func(name, volID, snapshotID, expectedError string) { + actualPayload, err := BuildCreateBackupPayload(name, volID, snapshotID, nil) + Expect(err).To(HaveOccurred()) + Expect(err.Error()).To(Equal(expectedError)) + Expect(actualPayload).To(Equal(iaas.CreateBackupPayload{})) + }, + Entry("empty name", "", "volume-id", "", "backup name cannot be empty"), + Entry("missing volume and snapshot IDs", "expected-name", "", "", "either volID or snapshotID must be provided"), + ) + }) + + Context("CreateBackup API Calls", func() { + It("returns backup on successful API call", func() { + mockIaaSClient.EXPECT(). + CreateBackup(gomock.Any(), gomock.Any(), gomock.Any()). + Return(iaas.ApiCreateBackupRequest{ApiService: mockIaaSClient}) + mockIaaSClient.EXPECT().CreateBackupExecute(gomock.Any()).Return(&iaas.Backup{Id: new("expected-backup-id")}, nil) + + backup, err := client.CreateBackup(context.Background(), "expected-name", "volume-id", "", nil) + + Expect(err).ToNot(HaveOccurred()) + Expect(*backup.Id).To(Equal("expected-backup-id")) + }) + + It("returns error when API fails", func() { + mockIaaSClient.EXPECT(). + CreateBackup(gomock.Any(), gomock.Any(), gomock.Any()). + Return(iaas.ApiCreateBackupRequest{ApiService: mockIaaSClient}) + mockIaaSClient.EXPECT().CreateBackupExecute(gomock.Any()).Return(nil, fmt.Errorf("API error")) + + _, err := client.CreateBackup(context.Background(), "expected-name", "volume-id", "", nil) + Expect(err).To(HaveOccurred()) + Expect(err.Error()).To(ContainSubstring("API error")) + }) + + DescribeTable("returns error when payload is invalid", + func(name, volID, snapshotID, expectedError string) { + mockIaaSClient.EXPECT().CreateBackup(gomock.Any(), gomock.Any(), gomock.Any()).Times(0) + mockIaaSClient.EXPECT().CreateBackupExecute(gomock.Any()).Times(0) + + backup, err := client.CreateBackup(context.Background(), name, volID, snapshotID, nil) + Expect(err).To(HaveOccurred()) + Expect(err.Error()).To(Equal(expectedError)) + Expect(backup).To(BeNil()) + }, + Entry("empty name", "", "volume-id", "", "backup name cannot be empty"), + Entry("missing volume and snapshot IDs", "expected-name", "", "", "either volID or snapshotID must be provided"), + ) + }) + + Context("ListBackups", func() { + It("returns a filtered list of backups on success", func() { + mockBackups := &iaas.BackupListResponse{ + Items: []iaas.Backup{ + {Id: new("id-1"), Name: new("backup-1")}, + {Id: new("id-2"), Name: new("backup-2")}, + }, + } + + mockIaaSClient.EXPECT(). + ListBackups(gomock.Any(), gomock.Any(), gomock.Any()). + Return(iaas.ApiListBackupsRequest{ApiService: mockIaaSClient}) + mockIaaSClient.EXPECT().ListBackupsExecute(gomock.Any()).Return(mockBackups, nil) + + backups, err := client.ListBackups(context.Background(), nil) + + Expect(err).ToNot(HaveOccurred()) + Expect(backups).To(HaveLen(2)) + Expect(*backups[0].Id).To(Equal("id-1")) + }) + + It("returns error when list API fails", func() { + mockIaaSClient.EXPECT(). + ListBackups(gomock.Any(), gomock.Any(), gomock.Any()). + Return(iaas.ApiListBackupsRequest{ApiService: mockIaaSClient}) + mockIaaSClient.EXPECT().ListBackupsExecute(gomock.Any()).Return(nil, fmt.Errorf("execute error")) + + _, err := client.ListBackups(context.Background(), nil) + Expect(err).To(HaveOccurred()) + }) + }) + + Context("GetBackup", func() { + It("returns a specific backup", func() { + mockIaaSClient.EXPECT(). + GetBackup(gomock.Any(), gomock.Any(), gomock.Any(), "backup-id"). + Return(iaas.ApiGetBackupRequest{ApiService: mockIaaSClient}) + mockIaaSClient.EXPECT().GetBackupExecute(gomock.Any()).Return(&iaas.Backup{Id: new("backup-id")}, nil) + + backup, err := client.GetBackup(context.Background(), "backup-id") + Expect(err).ToNot(HaveOccurred()) + Expect(*backup.Id).To(Equal("backup-id")) + }) + }) + + Context("DeleteBackup", func() { + It("calls delete successfully", func() { + mockIaaSClient.EXPECT(). + DeleteBackup(gomock.Any(), gomock.Any(), gomock.Any(), "backup-id"). + Return(iaas.ApiDeleteBackupRequest{ApiService: mockIaaSClient}) + mockIaaSClient.EXPECT().DeleteBackupExecute(gomock.Any()).Return(nil) + + err := client.DeleteBackup(context.Background(), "backup-id") + Expect(err).ToNot(HaveOccurred()) + }) + + It("returns error if delete fails", func() { + mockIaaSClient.EXPECT(). + DeleteBackup(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Return(iaas.ApiDeleteBackupRequest{ApiService: mockIaaSClient}) + mockIaaSClient.EXPECT().DeleteBackupExecute(gomock.Any()).Return(fmt.Errorf("delete failed")) + + err := client.DeleteBackup(context.Background(), "any-id") + Expect(err).To(HaveOccurred()) + }) + }) + + Context("WaitBackupReady", func() { + It("returns the backup status when it becomes ready", func() { + mockIaaSClient.EXPECT(). + GetBackup(gomock.Any(), gomock.Any(), gomock.Any(), "backup-id"). + Return(iaas.ApiGetBackupRequest{ApiService: mockIaaSClient}).AnyTimes() + mockIaaSClient.EXPECT().GetBackupExecute(gomock.Any()).Return(&iaas.Backup{Id: new("backup-id"), Status: new(backupReadyStatus)}, nil).AnyTimes() + + status, err := client.WaitBackupReady(context.Background(), "backup-id", 1, 1) + Expect(err).ToNot(HaveOccurred()) + Expect(*status).To(Equal(backupReadyStatus)) + }) + + It("returns error on timeout or wait failure", func() { + mockIaaSClient.EXPECT(). + GetBackup(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Return(iaas.ApiGetBackupRequest{ApiService: mockIaaSClient}).AnyTimes() + mockIaaSClient.EXPECT().GetBackupExecute(gomock.Any()).Return(nil, fmt.Errorf("timeout waiting for backup")).AnyTimes() + + status, err := client.WaitBackupReady(context.Background(), "id", 1, 1) + Expect(err).To(HaveOccurred()) + Expect(status).NotTo(BeNil()) + }) + }) +}) + +var _ = Describe("Volume", func() { + var ( + mockCtrl *gomock.Controller + mockIaaSClient *mock.MockDefaultAPI + client *iaasClient + ) + + const ( + projectID = "project-id" + region = "eu01" + volumeID = "vol-123" + serverID = "server-123" + ) + + BeforeEach(func() { + mockCtrl = gomock.NewController(GinkgoT()) + mockIaaSClient = mock.NewMockDefaultAPI(mockCtrl) + + client = &iaasClient{ + Client: mockIaaSClient, + } + }) + + AfterEach(func() { + mockCtrl.Finish() + }) + + Context("Volume Lifecycle", func() { + It("CreateVolume successfully calls the API", func() { + mockIaaSClient.EXPECT().CreateVolume(gomock.Any(), gomock.Any(), gomock.Any()). + Return(iaas.ApiCreateVolumeRequest{ApiService: mockIaaSClient}) + mockIaaSClient.EXPECT().CreateVolumeExecute(gomock.Any()).Return(&iaas.Volume{Id: new(volumeID)}, nil) + + vol, err := client.CreateVolume(context.Background(), iaas.CreateVolumePayload{}) + Expect(err).ToNot(HaveOccurred()) + Expect(*vol.Id).To(Equal(volumeID)) + }) + + It("GetVolume returns a specific volume", func() { + mockIaaSClient.EXPECT().GetVolume(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Return(iaas.ApiGetVolumeRequest{ApiService: mockIaaSClient}) + mockIaaSClient.EXPECT().GetVolumeExecute(gomock.Any()).Return(&iaas.Volume{Id: new(volumeID), Name: new("test-vol")}, nil) + + vol, err := client.GetVolume(context.Background(), volumeID) + Expect(err).ToNot(HaveOccurred()) + Expect(*vol.Name).To(Equal("test-vol")) + }) + + It("DeleteVolume fails if volume is still attached (diskIsUsed logic)", func() { + mockIaaSClient.EXPECT().GetVolume(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Return(iaas.ApiGetVolumeRequest{ApiService: mockIaaSClient}) + mockIaaSClient.EXPECT().GetVolumeExecute(gomock.Any()).Return(&iaas.Volume{Id: new(volumeID), ServerId: new(serverID)}, nil) + + err := client.DeleteVolume(context.Background(), volumeID) + Expect(err).To(HaveOccurred()) + Expect(err.Error()).To(ContainSubstring("still attached")) + }) + }) + + Context("Attach/Detach Volume", func() { + It("AttachVolume calls API when not already attached", func() { + mockIaaSClient.EXPECT().GetVolume(gomock.Any(), gomock.Any(), gomock.Any(), volumeID). + Return(iaas.ApiGetVolumeRequest{ApiService: mockIaaSClient}) + mockIaaSClient.EXPECT().GetVolumeExecute(gomock.Any()).Return(&iaas.Volume{Id: new(volumeID), ServerId: nil}, nil) + + mockIaaSClient.EXPECT().AddVolumeToServer(gomock.Any(), gomock.Any(), gomock.Any(), serverID, volumeID). + Return(iaas.ApiAddVolumeToServerRequest{ApiService: mockIaaSClient}) + mockIaaSClient.EXPECT().AddVolumeToServerExecute(gomock.Any()).Return( + &iaas.VolumeAttachment{VolumeId: new(volumeID), ServerId: new(serverID)}, nil) + + id, err := client.AttachVolume(context.Background(), serverID, volumeID, iaas.AddVolumeToServerPayload{}) + Expect(err).ToNot(HaveOccurred()) + Expect(id).To(Equal(volumeID)) + }) + + It("DetachVolume fails if status is not Available", func() { + mockIaaSClient.EXPECT().GetVolume(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Return(iaas.ApiGetVolumeRequest{ApiService: mockIaaSClient}) + mockIaaSClient.EXPECT().GetVolumeExecute(gomock.Any()).Return(&iaas.Volume{Name: new("volume-1"), Id: new(volumeID), Status: new("CREATING")}, nil) + + err := client.DetachVolume(context.Background(), serverID, volumeID) + Expect(err).To(HaveOccurred()) + Expect(err.Error()).To(ContainSubstring("its status is CREATING")) + }) + }) + + Context("ExpandVolume", func() { + It("successfully resizes an Available volume", func() { + mockIaaSClient.EXPECT(). + ResizeVolume(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Return(iaas.ApiResizeVolumeRequest{ApiService: mockIaaSClient}) + mockIaaSClient.EXPECT().ResizeVolumeExecute(gomock.Any()).Return(nil) + + err := client.ExpandVolume(context.Background(), volumeID, VolumeAvailableStatus, iaas.ResizeVolumePayload{}) + Expect(err).ToNot(HaveOccurred()) + }) + + It("errors when volume is in a bad state for resize", func() { + err := client.ExpandVolume(context.Background(), volumeID, "ERROR", iaas.ResizeVolumePayload{}) + Expect(err).To(HaveOccurred()) + Expect(err.Error()).To(ContainSubstring("cannot be resized")) + }) + }) + + Context("Waiting Logic", func() { + It("WaitVolumeTargetStatus returns nil when target status is reached", func() { + mockIaaSClient.EXPECT(). + GetVolume(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Return(iaas.ApiGetVolumeRequest{ApiService: mockIaaSClient}) + mockIaaSClient.EXPECT().GetVolumeExecute(gomock.Any()).Return(&iaas.Volume{Id: new(volumeID), Status: new("available")}, nil) + + err := client.WaitVolumeTargetStatus(context.Background(), volumeID, []string{"available"}) + Expect(err).ToNot(HaveOccurred()) + }) + + It("WaitVolumeTargetStatusWithCustomBackoff returns the refreshed volume", func() { + mockIaaSClient.EXPECT(). + GetVolume(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Return(iaas.ApiGetVolumeRequest{ApiService: mockIaaSClient}) + updatedVolume := &iaas.Volume{Id: new(volumeID), Status: new("available")} + mockIaaSClient.EXPECT().GetVolumeExecute(gomock.Any()).Return(updatedVolume, nil) + + volume, err := client.WaitVolumeTargetStatusWithCustomBackoff( + context.Background(), volumeID, []string{"available"}, wait.Backoff{Steps: 1}, + ) + Expect(err).ToNot(HaveOccurred()) + Expect(volume).To(BeIdenticalTo(updatedVolume)) + }) + + It("WaitDiskAttached returns error on timeout", func() { + mockIaaSClient.EXPECT(). + GetVolume(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Return(iaas.ApiGetVolumeRequest{ + ApiService: mockIaaSClient, + }) + mockIaaSClient.EXPECT().GetVolumeExecute(gomock.Any()).Return(nil, fmt.Errorf("timeout")) + + err := client.WaitDiskAttached(context.Background(), serverID, volumeID) + Expect(err).To(HaveOccurred()) + }) + }) +}) diff --git a/pkg/stackit/client/loadbalancer.go b/pkg/stackit/client/loadbalancer.go new file mode 100644 index 00000000..8b2b8bd2 --- /dev/null +++ b/pkg/stackit/client/loadbalancer.go @@ -0,0 +1,123 @@ +package client + +import ( + "context" + + "github.com/google/uuid" + sdkconfig "github.com/stackitcloud/stackit-sdk-go/core/config" + loadbalancer "github.com/stackitcloud/stackit-sdk-go/services/loadbalancer/v2api" +) + +type LoadBalancingClient interface { + CreateLoadBalancer(ctx context.Context, payload *loadbalancer.CreateLoadBalancerPayload) (*loadbalancer.LoadBalancer, error) + GetLoadBalancer(ctx context.Context, id string) (*loadbalancer.LoadBalancer, error) + UpdateLoadBalancer(ctx context.Context, lbName string, updates *loadbalancer.UpdateLoadBalancerPayload) (*loadbalancer.LoadBalancer, error) + DeleteLoadBalancer(ctx context.Context, lbName string) error + UpdateTargetPool(ctx context.Context, name, targetPoolName string, payload loadbalancer.UpdateTargetPoolPayload) error + + CreateCredentials(ctx context.Context, payload loadbalancer.CreateCredentialsPayload) (*loadbalancer.CreateCredentialsResponse, error) + ListCredentials(ctx context.Context) (*loadbalancer.ListCredentialsResponse, error) + UpdateCredentials(ctx context.Context, credentialsRef string, payload loadbalancer.UpdateCredentialsPayload) error + DeleteCredentials(ctx context.Context, credentialsRef string) error +} + +type loadBalancingClient struct { + Client loadbalancer.DefaultAPI + projectID string + region string +} + +func NewLoadBalancingClient(region, projectID string, options []sdkconfig.ConfigurationOption) (LoadBalancingClient, error) { + apiClient, err := loadbalancer.NewAPIClient(options...) + if err != nil { + return nil, err + } + return &loadBalancingClient{ + Client: apiClient.DefaultAPI, + projectID: projectID, + region: region, + }, nil +} + +func (l *loadBalancingClient) CreateLoadBalancer(ctx context.Context, payload *loadbalancer.CreateLoadBalancerPayload) (*loadbalancer.LoadBalancer, error) { + return execute(ctx, func(ctx context.Context) (*loadbalancer.LoadBalancer, error) { + return l.Client. + CreateLoadBalancer(ctx, l.projectID, l.region). + CreateLoadBalancerPayload(*payload). + XRequestID(uuid.NewString()). + Execute() + }) +} + +func (l *loadBalancingClient) DeleteLoadBalancer(ctx context.Context, lbName string) error { + _, err := execute(ctx, func(ctx context.Context) (map[string]any, error) { + return l.Client. + DeleteLoadBalancer(ctx, l.projectID, l.region, lbName). + Execute() + }) + return err +} + +func (l *loadBalancingClient) GetLoadBalancer(ctx context.Context, lbName string) (*loadbalancer.LoadBalancer, error) { + return execute(ctx, func(ctx context.Context) (*loadbalancer.LoadBalancer, error) { + return l.Client. + GetLoadBalancer(ctx, l.projectID, l.region, lbName). + Execute() + }) +} + +func (l *loadBalancingClient) UpdateLoadBalancer(ctx context.Context, lbName string, updates *loadbalancer.UpdateLoadBalancerPayload) (*loadbalancer.LoadBalancer, error) { + return execute(ctx, func(ctx context.Context) (*loadbalancer.LoadBalancer, error) { + return l.Client. + UpdateLoadBalancer(ctx, l.projectID, l.region, lbName). + UpdateLoadBalancerPayload(*updates). + Execute() + }) +} + +func (l *loadBalancingClient) UpdateTargetPool(ctx context.Context, name, targetPoolName string, payload loadbalancer.UpdateTargetPoolPayload) error { + _, err := execute(ctx, func(ctx context.Context) (*loadbalancer.TargetPool, error) { + return l.Client. + UpdateTargetPool(ctx, l.projectID, l.region, name, targetPoolName). + UpdateTargetPoolPayload(payload). + Execute() + }) + return err +} + +func (l *loadBalancingClient) CreateCredentials(ctx context.Context, payload loadbalancer.CreateCredentialsPayload) (*loadbalancer.CreateCredentialsResponse, error) { + return execute(ctx, func(ctx context.Context) (*loadbalancer.CreateCredentialsResponse, error) { + return l.Client. + CreateCredentials(ctx, l.projectID, l.region). + CreateCredentialsPayload(payload). + XRequestID(uuid.NewString()). + Execute() + }) +} + +func (l *loadBalancingClient) ListCredentials(ctx context.Context) (*loadbalancer.ListCredentialsResponse, error) { + return execute(ctx, func(ctx context.Context) (*loadbalancer.ListCredentialsResponse, error) { + return l.Client. + ListCredentials(ctx, l.projectID, l.region). + Execute() + }) +} + +func (l *loadBalancingClient) UpdateCredentials(ctx context.Context, credentialsRef string, payload loadbalancer.UpdateCredentialsPayload) error { + _, err := execute(ctx, func(ctx context.Context) (*loadbalancer.UpdateCredentialsResponse, error) { + return l.Client. + UpdateCredentials(ctx, l.projectID, l.region, credentialsRef). + UpdateCredentialsPayload(payload). + Execute() + }) + return err +} + +func (l *loadBalancingClient) DeleteCredentials(ctx context.Context, credentialsRef string) error { + _, err := execute(ctx, func(ctx context.Context) (map[string]any, error) { + return l.Client. + DeleteCredentials(ctx, l.projectID, l.region, credentialsRef). + Execute() + }) + return err +} diff --git a/pkg/stackit/client/loadbalancer_test.go b/pkg/stackit/client/loadbalancer_test.go new file mode 100644 index 00000000..15aca888 --- /dev/null +++ b/pkg/stackit/client/loadbalancer_test.go @@ -0,0 +1,131 @@ +package client + +import ( + "context" + + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" + loadbalancer "github.com/stackitcloud/stackit-sdk-go/services/loadbalancer/v2api" + "go.uber.org/mock/gomock" + + mock "github.com/stackitcloud/cloud-provider-stackit/pkg/mock/loadbalancer" +) + +var _ = Describe("LoadBalancer", func() { + var ( + mockCtrl *gomock.Controller + mockLBClient *mock.MockDefaultAPI + client *loadBalancingClient + ) + + const ( + lbName = "my-lb" + ) + + BeforeEach(func() { + mockCtrl = gomock.NewController(GinkgoT()) + mockLBClient = mock.NewMockDefaultAPI(mockCtrl) + + client = &loadBalancingClient{ + Client: mockLBClient, + } + }) + + AfterEach(func() { + mockCtrl.Finish() + }) + + Context("LoadBalancer Management", func() { + It("CreateLoadBalancer successfully calls the API", func() { + payload := &loadbalancer.CreateLoadBalancerPayload{Name: new(lbName)} + mockLBClient.EXPECT(). + CreateLoadBalancer(gomock.Any(), gomock.Any(), gomock.Any()). + Return(loadbalancer.ApiCreateLoadBalancerRequest{ApiService: mockLBClient}) + mockLBClient.EXPECT().CreateLoadBalancerExecute(gomock.Any()).Return(&loadbalancer.LoadBalancer{Name: new(lbName)}, nil) + + lb, err := client.CreateLoadBalancer(context.Background(), payload) + Expect(err).ToNot(HaveOccurred()) + Expect(*lb.Name).To(Equal(lbName)) + }) + + It("GetLoadBalancer returns a specific LB", func() { + mockLBClient.EXPECT(). + GetLoadBalancer(gomock.Any(), gomock.Any(), gomock.Any(), lbName). + Return(loadbalancer.ApiGetLoadBalancerRequest{ApiService: mockLBClient}) + mockLBClient.EXPECT().GetLoadBalancerExecute(gomock.Any()).Return(&loadbalancer.LoadBalancer{Name: new(lbName)}, nil) + + lb, err := client.GetLoadBalancer(context.Background(), lbName) + Expect(err).ToNot(HaveOccurred()) + Expect(*lb.Name).To(Equal(lbName)) + }) + + It("UpdateLoadBalancer calls API successfully", func() { + mockLBClient.EXPECT(). + UpdateLoadBalancer(gomock.Any(), gomock.Any(), gomock.Any(), lbName). + Return(loadbalancer.ApiUpdateLoadBalancerRequest{ApiService: mockLBClient}) + mockLBClient.EXPECT().UpdateLoadBalancerExecute(gomock.Any()).Return(nil, nil) + + _, err := client.UpdateLoadBalancer(context.Background(), lbName, &loadbalancer.UpdateLoadBalancerPayload{}) + Expect(err).ToNot(HaveOccurred()) + }) + + It("DeleteLoadBalancer calls API successfully", func() { + mockLBClient.EXPECT(). + DeleteLoadBalancer(gomock.Any(), gomock.Any(), gomock.Any(), lbName). + Return(loadbalancer.ApiDeleteLoadBalancerRequest{ApiService: mockLBClient}) + mockLBClient.EXPECT().DeleteLoadBalancerExecute(gomock.Any()).Return(nil, nil) + + err := client.DeleteLoadBalancer(context.Background(), lbName) + Expect(err).ToNot(HaveOccurred()) + }) + }) + + Context("Target Pools", func() { + It("UpdateTargetPool calls API successfully", func() { + payload := loadbalancer.UpdateTargetPoolPayload{} + mockLBClient.EXPECT(). + UpdateTargetPool(gomock.Any(), gomock.Any(), gomock.Any(), lbName, "pool-1"). + Return(loadbalancer.ApiUpdateTargetPoolRequest{ApiService: mockLBClient}) + mockLBClient.EXPECT().UpdateTargetPoolExecute(gomock.Any()).Return(nil, nil) + + err := client.UpdateTargetPool(context.Background(), lbName, "pool-1", payload) + Expect(err).ToNot(HaveOccurred()) + }) + }) + + Context("Credentials", func() { + It("CreateCredentials returns response on success", func() { + mockLBClient.EXPECT(). + CreateCredentials(gomock.Any(), gomock.Any(), gomock.Any()). + Return(loadbalancer.ApiCreateCredentialsRequest{ApiService: mockLBClient}) + mockLBClient.EXPECT().CreateCredentialsExecute(gomock.Any()).Return(&loadbalancer.CreateCredentialsResponse{Credential: &loadbalancer.CredentialsResponse{ + DisplayName: new("cred-1"), + }}, nil) + + resp, err := client.CreateCredentials(context.Background(), loadbalancer.CreateCredentialsPayload{}) + Expect(err).ToNot(HaveOccurred()) + Expect(*resp.Credential.DisplayName).To(Equal("cred-1")) + }) + + It("ListCredentials returns all credentials", func() { + mockLBClient.EXPECT(). + ListCredentials(gomock.Any(), gomock.Any(), gomock.Any()). + Return(loadbalancer.ApiListCredentialsRequest{ApiService: mockLBClient}) + mockLBClient.EXPECT().ListCredentialsExecute(gomock.Any()).Return(&loadbalancer.ListCredentialsResponse{Credentials: []loadbalancer.CredentialsResponse{{DisplayName: new("cred-1")}}}, nil) + + resp, err := client.ListCredentials(context.Background()) + Expect(err).ToNot(HaveOccurred()) + Expect(resp.Credentials).To(HaveLen(1)) + }) + + It("DeleteCredentials calls API successfully", func() { + mockLBClient.EXPECT(). + DeleteCredentials(gomock.Any(), gomock.Any(), gomock.Any(), "cred-ref"). + Return(loadbalancer.ApiDeleteCredentialsRequest{ApiService: mockLBClient}) + mockLBClient.EXPECT().DeleteCredentialsExecute(gomock.Any()).Return(nil, nil) + + err := client.DeleteCredentials(context.Background(), "cred-ref") + Expect(err).ToNot(HaveOccurred()) + }) + }) +}) diff --git a/pkg/stackit/client/mock/iaas_mock.go b/pkg/stackit/client/mock/iaas_mock.go new file mode 100644 index 00000000..db849244 --- /dev/null +++ b/pkg/stackit/client/mock/iaas_mock.go @@ -0,0 +1,1012 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: ./pkg/stackit/client (interfaces: IaaSClient) +// +// Generated by this command: +// +// mockgen -destination ./pkg/stackit/client/mock/iaas_mock.go -typed -package client ./pkg/stackit/client IaaSClient +// + +// Package client is a generated GoMock package. +package client + +import ( + context "context" + reflect "reflect" + + v2api "github.com/stackitcloud/stackit-sdk-go/services/iaas/v2api" + gomock "go.uber.org/mock/gomock" + wait "k8s.io/apimachinery/pkg/util/wait" +) + +// MockIaaSClient is a mock of IaaSClient interface. +type MockIaaSClient struct { + ctrl *gomock.Controller + recorder *MockIaaSClientMockRecorder + isgomock struct{} +} + +// MockIaaSClientMockRecorder is the mock recorder for MockIaaSClient. +type MockIaaSClientMockRecorder struct { + mock *MockIaaSClient +} + +// NewMockIaaSClient creates a new mock instance. +func NewMockIaaSClient(ctrl *gomock.Controller) *MockIaaSClient { + mock := &MockIaaSClient{ctrl: ctrl} + mock.recorder = &MockIaaSClientMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockIaaSClient) EXPECT() *MockIaaSClientMockRecorder { + return m.recorder +} + +// AttachVolume mocks base method. +func (m *MockIaaSClient) AttachVolume(ctx context.Context, serverID, volumeID string, payload v2api.AddVolumeToServerPayload) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "AttachVolume", ctx, serverID, volumeID, payload) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// AttachVolume indicates an expected call of AttachVolume. +func (mr *MockIaaSClientMockRecorder) AttachVolume(ctx, serverID, volumeID, payload any) *MockIaaSClientAttachVolumeCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AttachVolume", reflect.TypeOf((*MockIaaSClient)(nil).AttachVolume), ctx, serverID, volumeID, payload) + return &MockIaaSClientAttachVolumeCall{Call: call} +} + +// MockIaaSClientAttachVolumeCall wrap *gomock.Call +type MockIaaSClientAttachVolumeCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientAttachVolumeCall) Return(arg0 string, arg1 error) *MockIaaSClientAttachVolumeCall { + c.Call = c.Call.Return(arg0, arg1) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientAttachVolumeCall) Do(f func(context.Context, string, string, v2api.AddVolumeToServerPayload) (string, error)) *MockIaaSClientAttachVolumeCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientAttachVolumeCall) DoAndReturn(f func(context.Context, string, string, v2api.AddVolumeToServerPayload) (string, error)) *MockIaaSClientAttachVolumeCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// CreateBackup mocks base method. +func (m *MockIaaSClient) CreateBackup(ctx context.Context, name, volID, snapshotID string, tags map[string]string) (*v2api.Backup, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateBackup", ctx, name, volID, snapshotID, tags) + ret0, _ := ret[0].(*v2api.Backup) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateBackup indicates an expected call of CreateBackup. +func (mr *MockIaaSClientMockRecorder) CreateBackup(ctx, name, volID, snapshotID, tags any) *MockIaaSClientCreateBackupCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateBackup", reflect.TypeOf((*MockIaaSClient)(nil).CreateBackup), ctx, name, volID, snapshotID, tags) + return &MockIaaSClientCreateBackupCall{Call: call} +} + +// MockIaaSClientCreateBackupCall wrap *gomock.Call +type MockIaaSClientCreateBackupCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientCreateBackupCall) Return(arg0 *v2api.Backup, arg1 error) *MockIaaSClientCreateBackupCall { + c.Call = c.Call.Return(arg0, arg1) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientCreateBackupCall) Do(f func(context.Context, string, string, string, map[string]string) (*v2api.Backup, error)) *MockIaaSClientCreateBackupCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientCreateBackupCall) DoAndReturn(f func(context.Context, string, string, string, map[string]string) (*v2api.Backup, error)) *MockIaaSClientCreateBackupCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// CreateSnapshot mocks base method. +func (m *MockIaaSClient) CreateSnapshot(ctx context.Context, payload v2api.CreateSnapshotPayload) (*v2api.Snapshot, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateSnapshot", ctx, payload) + ret0, _ := ret[0].(*v2api.Snapshot) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateSnapshot indicates an expected call of CreateSnapshot. +func (mr *MockIaaSClientMockRecorder) CreateSnapshot(ctx, payload any) *MockIaaSClientCreateSnapshotCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSnapshot", reflect.TypeOf((*MockIaaSClient)(nil).CreateSnapshot), ctx, payload) + return &MockIaaSClientCreateSnapshotCall{Call: call} +} + +// MockIaaSClientCreateSnapshotCall wrap *gomock.Call +type MockIaaSClientCreateSnapshotCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientCreateSnapshotCall) Return(arg0 *v2api.Snapshot, arg1 error) *MockIaaSClientCreateSnapshotCall { + c.Call = c.Call.Return(arg0, arg1) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientCreateSnapshotCall) Do(f func(context.Context, v2api.CreateSnapshotPayload) (*v2api.Snapshot, error)) *MockIaaSClientCreateSnapshotCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientCreateSnapshotCall) DoAndReturn(f func(context.Context, v2api.CreateSnapshotPayload) (*v2api.Snapshot, error)) *MockIaaSClientCreateSnapshotCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// CreateVolume mocks base method. +func (m *MockIaaSClient) CreateVolume(ctx context.Context, payload v2api.CreateVolumePayload) (*v2api.Volume, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateVolume", ctx, payload) + ret0, _ := ret[0].(*v2api.Volume) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateVolume indicates an expected call of CreateVolume. +func (mr *MockIaaSClientMockRecorder) CreateVolume(ctx, payload any) *MockIaaSClientCreateVolumeCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateVolume", reflect.TypeOf((*MockIaaSClient)(nil).CreateVolume), ctx, payload) + return &MockIaaSClientCreateVolumeCall{Call: call} +} + +// MockIaaSClientCreateVolumeCall wrap *gomock.Call +type MockIaaSClientCreateVolumeCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientCreateVolumeCall) Return(arg0 *v2api.Volume, arg1 error) *MockIaaSClientCreateVolumeCall { + c.Call = c.Call.Return(arg0, arg1) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientCreateVolumeCall) Do(f func(context.Context, v2api.CreateVolumePayload) (*v2api.Volume, error)) *MockIaaSClientCreateVolumeCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientCreateVolumeCall) DoAndReturn(f func(context.Context, v2api.CreateVolumePayload) (*v2api.Volume, error)) *MockIaaSClientCreateVolumeCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// DeleteBackup mocks base method. +func (m *MockIaaSClient) DeleteBackup(ctx context.Context, backupID string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteBackup", ctx, backupID) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteBackup indicates an expected call of DeleteBackup. +func (mr *MockIaaSClientMockRecorder) DeleteBackup(ctx, backupID any) *MockIaaSClientDeleteBackupCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBackup", reflect.TypeOf((*MockIaaSClient)(nil).DeleteBackup), ctx, backupID) + return &MockIaaSClientDeleteBackupCall{Call: call} +} + +// MockIaaSClientDeleteBackupCall wrap *gomock.Call +type MockIaaSClientDeleteBackupCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientDeleteBackupCall) Return(arg0 error) *MockIaaSClientDeleteBackupCall { + c.Call = c.Call.Return(arg0) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientDeleteBackupCall) Do(f func(context.Context, string) error) *MockIaaSClientDeleteBackupCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientDeleteBackupCall) DoAndReturn(f func(context.Context, string) error) *MockIaaSClientDeleteBackupCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// DeleteSnapshot mocks base method. +func (m *MockIaaSClient) DeleteSnapshot(ctx context.Context, snapshotID string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteSnapshot", ctx, snapshotID) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteSnapshot indicates an expected call of DeleteSnapshot. +func (mr *MockIaaSClientMockRecorder) DeleteSnapshot(ctx, snapshotID any) *MockIaaSClientDeleteSnapshotCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSnapshot", reflect.TypeOf((*MockIaaSClient)(nil).DeleteSnapshot), ctx, snapshotID) + return &MockIaaSClientDeleteSnapshotCall{Call: call} +} + +// MockIaaSClientDeleteSnapshotCall wrap *gomock.Call +type MockIaaSClientDeleteSnapshotCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientDeleteSnapshotCall) Return(arg0 error) *MockIaaSClientDeleteSnapshotCall { + c.Call = c.Call.Return(arg0) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientDeleteSnapshotCall) Do(f func(context.Context, string) error) *MockIaaSClientDeleteSnapshotCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientDeleteSnapshotCall) DoAndReturn(f func(context.Context, string) error) *MockIaaSClientDeleteSnapshotCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// DeleteVolume mocks base method. +func (m *MockIaaSClient) DeleteVolume(ctx context.Context, volumeID string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteVolume", ctx, volumeID) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteVolume indicates an expected call of DeleteVolume. +func (mr *MockIaaSClientMockRecorder) DeleteVolume(ctx, volumeID any) *MockIaaSClientDeleteVolumeCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteVolume", reflect.TypeOf((*MockIaaSClient)(nil).DeleteVolume), ctx, volumeID) + return &MockIaaSClientDeleteVolumeCall{Call: call} +} + +// MockIaaSClientDeleteVolumeCall wrap *gomock.Call +type MockIaaSClientDeleteVolumeCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientDeleteVolumeCall) Return(arg0 error) *MockIaaSClientDeleteVolumeCall { + c.Call = c.Call.Return(arg0) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientDeleteVolumeCall) Do(f func(context.Context, string) error) *MockIaaSClientDeleteVolumeCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientDeleteVolumeCall) DoAndReturn(f func(context.Context, string) error) *MockIaaSClientDeleteVolumeCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// DetachVolume mocks base method. +func (m *MockIaaSClient) DetachVolume(ctx context.Context, serverID, volumeID string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DetachVolume", ctx, serverID, volumeID) + ret0, _ := ret[0].(error) + return ret0 +} + +// DetachVolume indicates an expected call of DetachVolume. +func (mr *MockIaaSClientMockRecorder) DetachVolume(ctx, serverID, volumeID any) *MockIaaSClientDetachVolumeCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DetachVolume", reflect.TypeOf((*MockIaaSClient)(nil).DetachVolume), ctx, serverID, volumeID) + return &MockIaaSClientDetachVolumeCall{Call: call} +} + +// MockIaaSClientDetachVolumeCall wrap *gomock.Call +type MockIaaSClientDetachVolumeCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientDetachVolumeCall) Return(arg0 error) *MockIaaSClientDetachVolumeCall { + c.Call = c.Call.Return(arg0) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientDetachVolumeCall) Do(f func(context.Context, string, string) error) *MockIaaSClientDetachVolumeCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientDetachVolumeCall) DoAndReturn(f func(context.Context, string, string) error) *MockIaaSClientDetachVolumeCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// ExpandVolume mocks base method. +func (m *MockIaaSClient) ExpandVolume(ctx context.Context, volumeID, volumeStatus string, payload v2api.ResizeVolumePayload) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ExpandVolume", ctx, volumeID, volumeStatus, payload) + ret0, _ := ret[0].(error) + return ret0 +} + +// ExpandVolume indicates an expected call of ExpandVolume. +func (mr *MockIaaSClientMockRecorder) ExpandVolume(ctx, volumeID, volumeStatus, payload any) *MockIaaSClientExpandVolumeCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExpandVolume", reflect.TypeOf((*MockIaaSClient)(nil).ExpandVolume), ctx, volumeID, volumeStatus, payload) + return &MockIaaSClientExpandVolumeCall{Call: call} +} + +// MockIaaSClientExpandVolumeCall wrap *gomock.Call +type MockIaaSClientExpandVolumeCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientExpandVolumeCall) Return(arg0 error) *MockIaaSClientExpandVolumeCall { + c.Call = c.Call.Return(arg0) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientExpandVolumeCall) Do(f func(context.Context, string, string, v2api.ResizeVolumePayload) error) *MockIaaSClientExpandVolumeCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientExpandVolumeCall) DoAndReturn(f func(context.Context, string, string, v2api.ResizeVolumePayload) error) *MockIaaSClientExpandVolumeCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// GetBackup mocks base method. +func (m *MockIaaSClient) GetBackup(ctx context.Context, backupID string) (*v2api.Backup, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetBackup", ctx, backupID) + ret0, _ := ret[0].(*v2api.Backup) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetBackup indicates an expected call of GetBackup. +func (mr *MockIaaSClientMockRecorder) GetBackup(ctx, backupID any) *MockIaaSClientGetBackupCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBackup", reflect.TypeOf((*MockIaaSClient)(nil).GetBackup), ctx, backupID) + return &MockIaaSClientGetBackupCall{Call: call} +} + +// MockIaaSClientGetBackupCall wrap *gomock.Call +type MockIaaSClientGetBackupCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientGetBackupCall) Return(arg0 *v2api.Backup, arg1 error) *MockIaaSClientGetBackupCall { + c.Call = c.Call.Return(arg0, arg1) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientGetBackupCall) Do(f func(context.Context, string) (*v2api.Backup, error)) *MockIaaSClientGetBackupCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientGetBackupCall) DoAndReturn(f func(context.Context, string) (*v2api.Backup, error)) *MockIaaSClientGetBackupCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// GetServer mocks base method. +func (m *MockIaaSClient) GetServer(ctx context.Context, serverID string) (*v2api.Server, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetServer", ctx, serverID) + ret0, _ := ret[0].(*v2api.Server) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetServer indicates an expected call of GetServer. +func (mr *MockIaaSClientMockRecorder) GetServer(ctx, serverID any) *MockIaaSClientGetServerCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetServer", reflect.TypeOf((*MockIaaSClient)(nil).GetServer), ctx, serverID) + return &MockIaaSClientGetServerCall{Call: call} +} + +// MockIaaSClientGetServerCall wrap *gomock.Call +type MockIaaSClientGetServerCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientGetServerCall) Return(arg0 *v2api.Server, arg1 error) *MockIaaSClientGetServerCall { + c.Call = c.Call.Return(arg0, arg1) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientGetServerCall) Do(f func(context.Context, string) (*v2api.Server, error)) *MockIaaSClientGetServerCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientGetServerCall) DoAndReturn(f func(context.Context, string) (*v2api.Server, error)) *MockIaaSClientGetServerCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// GetServerWithDetails mocks base method. +func (m *MockIaaSClient) GetServerWithDetails(ctx context.Context, serverID string) (*v2api.Server, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetServerWithDetails", ctx, serverID) + ret0, _ := ret[0].(*v2api.Server) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetServerWithDetails indicates an expected call of GetServerWithDetails. +func (mr *MockIaaSClientMockRecorder) GetServerWithDetails(ctx, serverID any) *MockIaaSClientGetServerWithDetailsCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetServerWithDetails", reflect.TypeOf((*MockIaaSClient)(nil).GetServerWithDetails), ctx, serverID) + return &MockIaaSClientGetServerWithDetailsCall{Call: call} +} + +// MockIaaSClientGetServerWithDetailsCall wrap *gomock.Call +type MockIaaSClientGetServerWithDetailsCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientGetServerWithDetailsCall) Return(arg0 *v2api.Server, arg1 error) *MockIaaSClientGetServerWithDetailsCall { + c.Call = c.Call.Return(arg0, arg1) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientGetServerWithDetailsCall) Do(f func(context.Context, string) (*v2api.Server, error)) *MockIaaSClientGetServerWithDetailsCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientGetServerWithDetailsCall) DoAndReturn(f func(context.Context, string) (*v2api.Server, error)) *MockIaaSClientGetServerWithDetailsCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// GetSnapshot mocks base method. +func (m *MockIaaSClient) GetSnapshot(ctx context.Context, snapshotID string) (*v2api.Snapshot, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetSnapshot", ctx, snapshotID) + ret0, _ := ret[0].(*v2api.Snapshot) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetSnapshot indicates an expected call of GetSnapshot. +func (mr *MockIaaSClientMockRecorder) GetSnapshot(ctx, snapshotID any) *MockIaaSClientGetSnapshotCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSnapshot", reflect.TypeOf((*MockIaaSClient)(nil).GetSnapshot), ctx, snapshotID) + return &MockIaaSClientGetSnapshotCall{Call: call} +} + +// MockIaaSClientGetSnapshotCall wrap *gomock.Call +type MockIaaSClientGetSnapshotCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientGetSnapshotCall) Return(arg0 *v2api.Snapshot, arg1 error) *MockIaaSClientGetSnapshotCall { + c.Call = c.Call.Return(arg0, arg1) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientGetSnapshotCall) Do(f func(context.Context, string) (*v2api.Snapshot, error)) *MockIaaSClientGetSnapshotCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientGetSnapshotCall) DoAndReturn(f func(context.Context, string) (*v2api.Snapshot, error)) *MockIaaSClientGetSnapshotCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// GetVolume mocks base method. +func (m *MockIaaSClient) GetVolume(ctx context.Context, volumeID string) (*v2api.Volume, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetVolume", ctx, volumeID) + ret0, _ := ret[0].(*v2api.Volume) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetVolume indicates an expected call of GetVolume. +func (mr *MockIaaSClientMockRecorder) GetVolume(ctx, volumeID any) *MockIaaSClientGetVolumeCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolume", reflect.TypeOf((*MockIaaSClient)(nil).GetVolume), ctx, volumeID) + return &MockIaaSClientGetVolumeCall{Call: call} +} + +// MockIaaSClientGetVolumeCall wrap *gomock.Call +type MockIaaSClientGetVolumeCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientGetVolumeCall) Return(arg0 *v2api.Volume, arg1 error) *MockIaaSClientGetVolumeCall { + c.Call = c.Call.Return(arg0, arg1) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientGetVolumeCall) Do(f func(context.Context, string) (*v2api.Volume, error)) *MockIaaSClientGetVolumeCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientGetVolumeCall) DoAndReturn(f func(context.Context, string) (*v2api.Volume, error)) *MockIaaSClientGetVolumeCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// GetVolumesByName mocks base method. +func (m *MockIaaSClient) GetVolumesByName(ctx context.Context, volName string) ([]v2api.Volume, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetVolumesByName", ctx, volName) + ret0, _ := ret[0].([]v2api.Volume) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetVolumesByName indicates an expected call of GetVolumesByName. +func (mr *MockIaaSClientMockRecorder) GetVolumesByName(ctx, volName any) *MockIaaSClientGetVolumesByNameCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolumesByName", reflect.TypeOf((*MockIaaSClient)(nil).GetVolumesByName), ctx, volName) + return &MockIaaSClientGetVolumesByNameCall{Call: call} +} + +// MockIaaSClientGetVolumesByNameCall wrap *gomock.Call +type MockIaaSClientGetVolumesByNameCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientGetVolumesByNameCall) Return(arg0 []v2api.Volume, arg1 error) *MockIaaSClientGetVolumesByNameCall { + c.Call = c.Call.Return(arg0, arg1) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientGetVolumesByNameCall) Do(f func(context.Context, string) ([]v2api.Volume, error)) *MockIaaSClientGetVolumesByNameCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientGetVolumesByNameCall) DoAndReturn(f func(context.Context, string) ([]v2api.Volume, error)) *MockIaaSClientGetVolumesByNameCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// ListBackups mocks base method. +func (m *MockIaaSClient) ListBackups(ctx context.Context, filters map[string]string) ([]v2api.Backup, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListBackups", ctx, filters) + ret0, _ := ret[0].([]v2api.Backup) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListBackups indicates an expected call of ListBackups. +func (mr *MockIaaSClientMockRecorder) ListBackups(ctx, filters any) *MockIaaSClientListBackupsCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBackups", reflect.TypeOf((*MockIaaSClient)(nil).ListBackups), ctx, filters) + return &MockIaaSClientListBackupsCall{Call: call} +} + +// MockIaaSClientListBackupsCall wrap *gomock.Call +type MockIaaSClientListBackupsCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientListBackupsCall) Return(arg0 []v2api.Backup, arg1 error) *MockIaaSClientListBackupsCall { + c.Call = c.Call.Return(arg0, arg1) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientListBackupsCall) Do(f func(context.Context, map[string]string) ([]v2api.Backup, error)) *MockIaaSClientListBackupsCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientListBackupsCall) DoAndReturn(f func(context.Context, map[string]string) ([]v2api.Backup, error)) *MockIaaSClientListBackupsCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// ListServers mocks base method. +func (m *MockIaaSClient) ListServers(ctx context.Context) (*[]v2api.Server, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListServers", ctx) + ret0, _ := ret[0].(*[]v2api.Server) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListServers indicates an expected call of ListServers. +func (mr *MockIaaSClientMockRecorder) ListServers(ctx any) *MockIaaSClientListServersCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListServers", reflect.TypeOf((*MockIaaSClient)(nil).ListServers), ctx) + return &MockIaaSClientListServersCall{Call: call} +} + +// MockIaaSClientListServersCall wrap *gomock.Call +type MockIaaSClientListServersCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientListServersCall) Return(arg0 *[]v2api.Server, arg1 error) *MockIaaSClientListServersCall { + c.Call = c.Call.Return(arg0, arg1) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientListServersCall) Do(f func(context.Context) (*[]v2api.Server, error)) *MockIaaSClientListServersCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientListServersCall) DoAndReturn(f func(context.Context) (*[]v2api.Server, error)) *MockIaaSClientListServersCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// ListSnapshots mocks base method. +func (m *MockIaaSClient) ListSnapshots(ctx context.Context, filters map[string]string) ([]v2api.Snapshot, string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListSnapshots", ctx, filters) + ret0, _ := ret[0].([]v2api.Snapshot) + ret1, _ := ret[1].(string) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// ListSnapshots indicates an expected call of ListSnapshots. +func (mr *MockIaaSClientMockRecorder) ListSnapshots(ctx, filters any) *MockIaaSClientListSnapshotsCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSnapshots", reflect.TypeOf((*MockIaaSClient)(nil).ListSnapshots), ctx, filters) + return &MockIaaSClientListSnapshotsCall{Call: call} +} + +// MockIaaSClientListSnapshotsCall wrap *gomock.Call +type MockIaaSClientListSnapshotsCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientListSnapshotsCall) Return(arg0 []v2api.Snapshot, arg1 string, arg2 error) *MockIaaSClientListSnapshotsCall { + c.Call = c.Call.Return(arg0, arg1, arg2) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientListSnapshotsCall) Do(f func(context.Context, map[string]string) ([]v2api.Snapshot, string, error)) *MockIaaSClientListSnapshotsCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientListSnapshotsCall) DoAndReturn(f func(context.Context, map[string]string) ([]v2api.Snapshot, string, error)) *MockIaaSClientListSnapshotsCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// ListVolumes mocks base method. +func (m *MockIaaSClient) ListVolumes(ctx context.Context, arg1 int, arg2 string) ([]v2api.Volume, string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListVolumes", ctx, arg1, arg2) + ret0, _ := ret[0].([]v2api.Volume) + ret1, _ := ret[1].(string) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// ListVolumes indicates an expected call of ListVolumes. +func (mr *MockIaaSClientMockRecorder) ListVolumes(ctx, arg1, arg2 any) *MockIaaSClientListVolumesCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVolumes", reflect.TypeOf((*MockIaaSClient)(nil).ListVolumes), ctx, arg1, arg2) + return &MockIaaSClientListVolumesCall{Call: call} +} + +// MockIaaSClientListVolumesCall wrap *gomock.Call +type MockIaaSClientListVolumesCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientListVolumesCall) Return(arg0 []v2api.Volume, arg1 string, arg2 error) *MockIaaSClientListVolumesCall { + c.Call = c.Call.Return(arg0, arg1, arg2) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientListVolumesCall) Do(f func(context.Context, int, string) ([]v2api.Volume, string, error)) *MockIaaSClientListVolumesCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientListVolumesCall) DoAndReturn(f func(context.Context, int, string) ([]v2api.Volume, string, error)) *MockIaaSClientListVolumesCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// WaitBackupReady mocks base method. +func (m *MockIaaSClient) WaitBackupReady(ctx context.Context, backupID string, snapshotSize int64, backupMaxDurationSecondsPerGB int) (*string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "WaitBackupReady", ctx, backupID, snapshotSize, backupMaxDurationSecondsPerGB) + ret0, _ := ret[0].(*string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// WaitBackupReady indicates an expected call of WaitBackupReady. +func (mr *MockIaaSClientMockRecorder) WaitBackupReady(ctx, backupID, snapshotSize, backupMaxDurationSecondsPerGB any) *MockIaaSClientWaitBackupReadyCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitBackupReady", reflect.TypeOf((*MockIaaSClient)(nil).WaitBackupReady), ctx, backupID, snapshotSize, backupMaxDurationSecondsPerGB) + return &MockIaaSClientWaitBackupReadyCall{Call: call} +} + +// MockIaaSClientWaitBackupReadyCall wrap *gomock.Call +type MockIaaSClientWaitBackupReadyCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientWaitBackupReadyCall) Return(arg0 *string, arg1 error) *MockIaaSClientWaitBackupReadyCall { + c.Call = c.Call.Return(arg0, arg1) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientWaitBackupReadyCall) Do(f func(context.Context, string, int64, int) (*string, error)) *MockIaaSClientWaitBackupReadyCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientWaitBackupReadyCall) DoAndReturn(f func(context.Context, string, int64, int) (*string, error)) *MockIaaSClientWaitBackupReadyCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// WaitDiskAttached mocks base method. +func (m *MockIaaSClient) WaitDiskAttached(ctx context.Context, instanceID, volumeID string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "WaitDiskAttached", ctx, instanceID, volumeID) + ret0, _ := ret[0].(error) + return ret0 +} + +// WaitDiskAttached indicates an expected call of WaitDiskAttached. +func (mr *MockIaaSClientMockRecorder) WaitDiskAttached(ctx, instanceID, volumeID any) *MockIaaSClientWaitDiskAttachedCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitDiskAttached", reflect.TypeOf((*MockIaaSClient)(nil).WaitDiskAttached), ctx, instanceID, volumeID) + return &MockIaaSClientWaitDiskAttachedCall{Call: call} +} + +// MockIaaSClientWaitDiskAttachedCall wrap *gomock.Call +type MockIaaSClientWaitDiskAttachedCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientWaitDiskAttachedCall) Return(arg0 error) *MockIaaSClientWaitDiskAttachedCall { + c.Call = c.Call.Return(arg0) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientWaitDiskAttachedCall) Do(f func(context.Context, string, string) error) *MockIaaSClientWaitDiskAttachedCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientWaitDiskAttachedCall) DoAndReturn(f func(context.Context, string, string) error) *MockIaaSClientWaitDiskAttachedCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// WaitDiskDetached mocks base method. +func (m *MockIaaSClient) WaitDiskDetached(ctx context.Context, instanceID, volumeID string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "WaitDiskDetached", ctx, instanceID, volumeID) + ret0, _ := ret[0].(error) + return ret0 +} + +// WaitDiskDetached indicates an expected call of WaitDiskDetached. +func (mr *MockIaaSClientMockRecorder) WaitDiskDetached(ctx, instanceID, volumeID any) *MockIaaSClientWaitDiskDetachedCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitDiskDetached", reflect.TypeOf((*MockIaaSClient)(nil).WaitDiskDetached), ctx, instanceID, volumeID) + return &MockIaaSClientWaitDiskDetachedCall{Call: call} +} + +// MockIaaSClientWaitDiskDetachedCall wrap *gomock.Call +type MockIaaSClientWaitDiskDetachedCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientWaitDiskDetachedCall) Return(arg0 error) *MockIaaSClientWaitDiskDetachedCall { + c.Call = c.Call.Return(arg0) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientWaitDiskDetachedCall) Do(f func(context.Context, string, string) error) *MockIaaSClientWaitDiskDetachedCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientWaitDiskDetachedCall) DoAndReturn(f func(context.Context, string, string) error) *MockIaaSClientWaitDiskDetachedCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// WaitSnapshotReady mocks base method. +func (m *MockIaaSClient) WaitSnapshotReady(ctx context.Context, snapshotID string) (*string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "WaitSnapshotReady", ctx, snapshotID) + ret0, _ := ret[0].(*string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// WaitSnapshotReady indicates an expected call of WaitSnapshotReady. +func (mr *MockIaaSClientMockRecorder) WaitSnapshotReady(ctx, snapshotID any) *MockIaaSClientWaitSnapshotReadyCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitSnapshotReady", reflect.TypeOf((*MockIaaSClient)(nil).WaitSnapshotReady), ctx, snapshotID) + return &MockIaaSClientWaitSnapshotReadyCall{Call: call} +} + +// MockIaaSClientWaitSnapshotReadyCall wrap *gomock.Call +type MockIaaSClientWaitSnapshotReadyCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientWaitSnapshotReadyCall) Return(arg0 *string, arg1 error) *MockIaaSClientWaitSnapshotReadyCall { + c.Call = c.Call.Return(arg0, arg1) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientWaitSnapshotReadyCall) Do(f func(context.Context, string) (*string, error)) *MockIaaSClientWaitSnapshotReadyCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientWaitSnapshotReadyCall) DoAndReturn(f func(context.Context, string) (*string, error)) *MockIaaSClientWaitSnapshotReadyCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// WaitVolumeTargetStatus mocks base method. +func (m *MockIaaSClient) WaitVolumeTargetStatus(ctx context.Context, volumeID string, tStatus []string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "WaitVolumeTargetStatus", ctx, volumeID, tStatus) + ret0, _ := ret[0].(error) + return ret0 +} + +// WaitVolumeTargetStatus indicates an expected call of WaitVolumeTargetStatus. +func (mr *MockIaaSClientMockRecorder) WaitVolumeTargetStatus(ctx, volumeID, tStatus any) *MockIaaSClientWaitVolumeTargetStatusCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitVolumeTargetStatus", reflect.TypeOf((*MockIaaSClient)(nil).WaitVolumeTargetStatus), ctx, volumeID, tStatus) + return &MockIaaSClientWaitVolumeTargetStatusCall{Call: call} +} + +// MockIaaSClientWaitVolumeTargetStatusCall wrap *gomock.Call +type MockIaaSClientWaitVolumeTargetStatusCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientWaitVolumeTargetStatusCall) Return(arg0 error) *MockIaaSClientWaitVolumeTargetStatusCall { + c.Call = c.Call.Return(arg0) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientWaitVolumeTargetStatusCall) Do(f func(context.Context, string, []string) error) *MockIaaSClientWaitVolumeTargetStatusCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientWaitVolumeTargetStatusCall) DoAndReturn(f func(context.Context, string, []string) error) *MockIaaSClientWaitVolumeTargetStatusCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// WaitVolumeTargetStatusWithCustomBackoff mocks base method. +func (m *MockIaaSClient) WaitVolumeTargetStatusWithCustomBackoff(ctx context.Context, volumeID string, tStatus []string, backoff wait.Backoff) (*v2api.Volume, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "WaitVolumeTargetStatusWithCustomBackoff", ctx, volumeID, tStatus, backoff) + ret0, _ := ret[0].(*v2api.Volume) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// WaitVolumeTargetStatusWithCustomBackoff indicates an expected call of WaitVolumeTargetStatusWithCustomBackoff. +func (mr *MockIaaSClientMockRecorder) WaitVolumeTargetStatusWithCustomBackoff(ctx, volumeID, tStatus, backoff any) *MockIaaSClientWaitVolumeTargetStatusWithCustomBackoffCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitVolumeTargetStatusWithCustomBackoff", reflect.TypeOf((*MockIaaSClient)(nil).WaitVolumeTargetStatusWithCustomBackoff), ctx, volumeID, tStatus, backoff) + return &MockIaaSClientWaitVolumeTargetStatusWithCustomBackoffCall{Call: call} +} + +// MockIaaSClientWaitVolumeTargetStatusWithCustomBackoffCall wrap *gomock.Call +type MockIaaSClientWaitVolumeTargetStatusWithCustomBackoffCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockIaaSClientWaitVolumeTargetStatusWithCustomBackoffCall) Return(arg0 *v2api.Volume, arg1 error) *MockIaaSClientWaitVolumeTargetStatusWithCustomBackoffCall { + c.Call = c.Call.Return(arg0, arg1) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockIaaSClientWaitVolumeTargetStatusWithCustomBackoffCall) Do(f func(context.Context, string, []string, wait.Backoff) (*v2api.Volume, error)) *MockIaaSClientWaitVolumeTargetStatusWithCustomBackoffCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockIaaSClientWaitVolumeTargetStatusWithCustomBackoffCall) DoAndReturn(f func(context.Context, string, []string, wait.Backoff) (*v2api.Volume, error)) *MockIaaSClientWaitVolumeTargetStatusWithCustomBackoffCall { + c.Call = c.Call.DoAndReturn(f) + return c +} diff --git a/pkg/stackit/client/mock/loadbalancer_mock.go b/pkg/stackit/client/mock/loadbalancer_mock.go new file mode 100644 index 00000000..f190e06e --- /dev/null +++ b/pkg/stackit/client/mock/loadbalancer_mock.go @@ -0,0 +1,389 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: ./pkg/stackit/client (interfaces: LoadBalancingClient) +// +// Generated by this command: +// +// mockgen -destination ./pkg/stackit/client/mock/loadbalancer_mock.go -typed -package client ./pkg/stackit/client LoadBalancingClient +// + +// Package client is a generated GoMock package. +package client + +import ( + context "context" + reflect "reflect" + + v2api "github.com/stackitcloud/stackit-sdk-go/services/loadbalancer/v2api" + gomock "go.uber.org/mock/gomock" +) + +// MockLoadBalancingClient is a mock of LoadBalancingClient interface. +type MockLoadBalancingClient struct { + ctrl *gomock.Controller + recorder *MockLoadBalancingClientMockRecorder + isgomock struct{} +} + +// MockLoadBalancingClientMockRecorder is the mock recorder for MockLoadBalancingClient. +type MockLoadBalancingClientMockRecorder struct { + mock *MockLoadBalancingClient +} + +// NewMockLoadBalancingClient creates a new mock instance. +func NewMockLoadBalancingClient(ctrl *gomock.Controller) *MockLoadBalancingClient { + mock := &MockLoadBalancingClient{ctrl: ctrl} + mock.recorder = &MockLoadBalancingClientMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockLoadBalancingClient) EXPECT() *MockLoadBalancingClientMockRecorder { + return m.recorder +} + +// CreateCredentials mocks base method. +func (m *MockLoadBalancingClient) CreateCredentials(ctx context.Context, payload v2api.CreateCredentialsPayload) (*v2api.CreateCredentialsResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateCredentials", ctx, payload) + ret0, _ := ret[0].(*v2api.CreateCredentialsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateCredentials indicates an expected call of CreateCredentials. +func (mr *MockLoadBalancingClientMockRecorder) CreateCredentials(ctx, payload any) *MockLoadBalancingClientCreateCredentialsCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateCredentials", reflect.TypeOf((*MockLoadBalancingClient)(nil).CreateCredentials), ctx, payload) + return &MockLoadBalancingClientCreateCredentialsCall{Call: call} +} + +// MockLoadBalancingClientCreateCredentialsCall wrap *gomock.Call +type MockLoadBalancingClientCreateCredentialsCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockLoadBalancingClientCreateCredentialsCall) Return(arg0 *v2api.CreateCredentialsResponse, arg1 error) *MockLoadBalancingClientCreateCredentialsCall { + c.Call = c.Call.Return(arg0, arg1) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockLoadBalancingClientCreateCredentialsCall) Do(f func(context.Context, v2api.CreateCredentialsPayload) (*v2api.CreateCredentialsResponse, error)) *MockLoadBalancingClientCreateCredentialsCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockLoadBalancingClientCreateCredentialsCall) DoAndReturn(f func(context.Context, v2api.CreateCredentialsPayload) (*v2api.CreateCredentialsResponse, error)) *MockLoadBalancingClientCreateCredentialsCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// CreateLoadBalancer mocks base method. +func (m *MockLoadBalancingClient) CreateLoadBalancer(ctx context.Context, payload *v2api.CreateLoadBalancerPayload) (*v2api.LoadBalancer, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateLoadBalancer", ctx, payload) + ret0, _ := ret[0].(*v2api.LoadBalancer) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateLoadBalancer indicates an expected call of CreateLoadBalancer. +func (mr *MockLoadBalancingClientMockRecorder) CreateLoadBalancer(ctx, payload any) *MockLoadBalancingClientCreateLoadBalancerCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateLoadBalancer", reflect.TypeOf((*MockLoadBalancingClient)(nil).CreateLoadBalancer), ctx, payload) + return &MockLoadBalancingClientCreateLoadBalancerCall{Call: call} +} + +// MockLoadBalancingClientCreateLoadBalancerCall wrap *gomock.Call +type MockLoadBalancingClientCreateLoadBalancerCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockLoadBalancingClientCreateLoadBalancerCall) Return(arg0 *v2api.LoadBalancer, arg1 error) *MockLoadBalancingClientCreateLoadBalancerCall { + c.Call = c.Call.Return(arg0, arg1) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockLoadBalancingClientCreateLoadBalancerCall) Do(f func(context.Context, *v2api.CreateLoadBalancerPayload) (*v2api.LoadBalancer, error)) *MockLoadBalancingClientCreateLoadBalancerCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockLoadBalancingClientCreateLoadBalancerCall) DoAndReturn(f func(context.Context, *v2api.CreateLoadBalancerPayload) (*v2api.LoadBalancer, error)) *MockLoadBalancingClientCreateLoadBalancerCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// DeleteCredentials mocks base method. +func (m *MockLoadBalancingClient) DeleteCredentials(ctx context.Context, credentialsRef string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteCredentials", ctx, credentialsRef) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteCredentials indicates an expected call of DeleteCredentials. +func (mr *MockLoadBalancingClientMockRecorder) DeleteCredentials(ctx, credentialsRef any) *MockLoadBalancingClientDeleteCredentialsCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteCredentials", reflect.TypeOf((*MockLoadBalancingClient)(nil).DeleteCredentials), ctx, credentialsRef) + return &MockLoadBalancingClientDeleteCredentialsCall{Call: call} +} + +// MockLoadBalancingClientDeleteCredentialsCall wrap *gomock.Call +type MockLoadBalancingClientDeleteCredentialsCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockLoadBalancingClientDeleteCredentialsCall) Return(arg0 error) *MockLoadBalancingClientDeleteCredentialsCall { + c.Call = c.Call.Return(arg0) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockLoadBalancingClientDeleteCredentialsCall) Do(f func(context.Context, string) error) *MockLoadBalancingClientDeleteCredentialsCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockLoadBalancingClientDeleteCredentialsCall) DoAndReturn(f func(context.Context, string) error) *MockLoadBalancingClientDeleteCredentialsCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// DeleteLoadBalancer mocks base method. +func (m *MockLoadBalancingClient) DeleteLoadBalancer(ctx context.Context, lbName string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteLoadBalancer", ctx, lbName) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteLoadBalancer indicates an expected call of DeleteLoadBalancer. +func (mr *MockLoadBalancingClientMockRecorder) DeleteLoadBalancer(ctx, lbName any) *MockLoadBalancingClientDeleteLoadBalancerCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteLoadBalancer", reflect.TypeOf((*MockLoadBalancingClient)(nil).DeleteLoadBalancer), ctx, lbName) + return &MockLoadBalancingClientDeleteLoadBalancerCall{Call: call} +} + +// MockLoadBalancingClientDeleteLoadBalancerCall wrap *gomock.Call +type MockLoadBalancingClientDeleteLoadBalancerCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockLoadBalancingClientDeleteLoadBalancerCall) Return(arg0 error) *MockLoadBalancingClientDeleteLoadBalancerCall { + c.Call = c.Call.Return(arg0) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockLoadBalancingClientDeleteLoadBalancerCall) Do(f func(context.Context, string) error) *MockLoadBalancingClientDeleteLoadBalancerCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockLoadBalancingClientDeleteLoadBalancerCall) DoAndReturn(f func(context.Context, string) error) *MockLoadBalancingClientDeleteLoadBalancerCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// GetLoadBalancer mocks base method. +func (m *MockLoadBalancingClient) GetLoadBalancer(ctx context.Context, id string) (*v2api.LoadBalancer, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetLoadBalancer", ctx, id) + ret0, _ := ret[0].(*v2api.LoadBalancer) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetLoadBalancer indicates an expected call of GetLoadBalancer. +func (mr *MockLoadBalancingClientMockRecorder) GetLoadBalancer(ctx, id any) *MockLoadBalancingClientGetLoadBalancerCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLoadBalancer", reflect.TypeOf((*MockLoadBalancingClient)(nil).GetLoadBalancer), ctx, id) + return &MockLoadBalancingClientGetLoadBalancerCall{Call: call} +} + +// MockLoadBalancingClientGetLoadBalancerCall wrap *gomock.Call +type MockLoadBalancingClientGetLoadBalancerCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockLoadBalancingClientGetLoadBalancerCall) Return(arg0 *v2api.LoadBalancer, arg1 error) *MockLoadBalancingClientGetLoadBalancerCall { + c.Call = c.Call.Return(arg0, arg1) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockLoadBalancingClientGetLoadBalancerCall) Do(f func(context.Context, string) (*v2api.LoadBalancer, error)) *MockLoadBalancingClientGetLoadBalancerCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockLoadBalancingClientGetLoadBalancerCall) DoAndReturn(f func(context.Context, string) (*v2api.LoadBalancer, error)) *MockLoadBalancingClientGetLoadBalancerCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// ListCredentials mocks base method. +func (m *MockLoadBalancingClient) ListCredentials(ctx context.Context) (*v2api.ListCredentialsResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListCredentials", ctx) + ret0, _ := ret[0].(*v2api.ListCredentialsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListCredentials indicates an expected call of ListCredentials. +func (mr *MockLoadBalancingClientMockRecorder) ListCredentials(ctx any) *MockLoadBalancingClientListCredentialsCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListCredentials", reflect.TypeOf((*MockLoadBalancingClient)(nil).ListCredentials), ctx) + return &MockLoadBalancingClientListCredentialsCall{Call: call} +} + +// MockLoadBalancingClientListCredentialsCall wrap *gomock.Call +type MockLoadBalancingClientListCredentialsCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockLoadBalancingClientListCredentialsCall) Return(arg0 *v2api.ListCredentialsResponse, arg1 error) *MockLoadBalancingClientListCredentialsCall { + c.Call = c.Call.Return(arg0, arg1) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockLoadBalancingClientListCredentialsCall) Do(f func(context.Context) (*v2api.ListCredentialsResponse, error)) *MockLoadBalancingClientListCredentialsCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockLoadBalancingClientListCredentialsCall) DoAndReturn(f func(context.Context) (*v2api.ListCredentialsResponse, error)) *MockLoadBalancingClientListCredentialsCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// UpdateCredentials mocks base method. +func (m *MockLoadBalancingClient) UpdateCredentials(ctx context.Context, credentialsRef string, payload v2api.UpdateCredentialsPayload) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateCredentials", ctx, credentialsRef, payload) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateCredentials indicates an expected call of UpdateCredentials. +func (mr *MockLoadBalancingClientMockRecorder) UpdateCredentials(ctx, credentialsRef, payload any) *MockLoadBalancingClientUpdateCredentialsCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateCredentials", reflect.TypeOf((*MockLoadBalancingClient)(nil).UpdateCredentials), ctx, credentialsRef, payload) + return &MockLoadBalancingClientUpdateCredentialsCall{Call: call} +} + +// MockLoadBalancingClientUpdateCredentialsCall wrap *gomock.Call +type MockLoadBalancingClientUpdateCredentialsCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockLoadBalancingClientUpdateCredentialsCall) Return(arg0 error) *MockLoadBalancingClientUpdateCredentialsCall { + c.Call = c.Call.Return(arg0) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockLoadBalancingClientUpdateCredentialsCall) Do(f func(context.Context, string, v2api.UpdateCredentialsPayload) error) *MockLoadBalancingClientUpdateCredentialsCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockLoadBalancingClientUpdateCredentialsCall) DoAndReturn(f func(context.Context, string, v2api.UpdateCredentialsPayload) error) *MockLoadBalancingClientUpdateCredentialsCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// UpdateLoadBalancer mocks base method. +func (m *MockLoadBalancingClient) UpdateLoadBalancer(ctx context.Context, lbName string, updates *v2api.UpdateLoadBalancerPayload) (*v2api.LoadBalancer, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateLoadBalancer", ctx, lbName, updates) + ret0, _ := ret[0].(*v2api.LoadBalancer) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateLoadBalancer indicates an expected call of UpdateLoadBalancer. +func (mr *MockLoadBalancingClientMockRecorder) UpdateLoadBalancer(ctx, lbName, updates any) *MockLoadBalancingClientUpdateLoadBalancerCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateLoadBalancer", reflect.TypeOf((*MockLoadBalancingClient)(nil).UpdateLoadBalancer), ctx, lbName, updates) + return &MockLoadBalancingClientUpdateLoadBalancerCall{Call: call} +} + +// MockLoadBalancingClientUpdateLoadBalancerCall wrap *gomock.Call +type MockLoadBalancingClientUpdateLoadBalancerCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockLoadBalancingClientUpdateLoadBalancerCall) Return(arg0 *v2api.LoadBalancer, arg1 error) *MockLoadBalancingClientUpdateLoadBalancerCall { + c.Call = c.Call.Return(arg0, arg1) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockLoadBalancingClientUpdateLoadBalancerCall) Do(f func(context.Context, string, *v2api.UpdateLoadBalancerPayload) (*v2api.LoadBalancer, error)) *MockLoadBalancingClientUpdateLoadBalancerCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockLoadBalancingClientUpdateLoadBalancerCall) DoAndReturn(f func(context.Context, string, *v2api.UpdateLoadBalancerPayload) (*v2api.LoadBalancer, error)) *MockLoadBalancingClientUpdateLoadBalancerCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// UpdateTargetPool mocks base method. +func (m *MockLoadBalancingClient) UpdateTargetPool(ctx context.Context, name, targetPoolName string, payload v2api.UpdateTargetPoolPayload) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateTargetPool", ctx, name, targetPoolName, payload) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateTargetPool indicates an expected call of UpdateTargetPool. +func (mr *MockLoadBalancingClientMockRecorder) UpdateTargetPool(ctx, name, targetPoolName, payload any) *MockLoadBalancingClientUpdateTargetPoolCall { + mr.mock.ctrl.T.Helper() + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTargetPool", reflect.TypeOf((*MockLoadBalancingClient)(nil).UpdateTargetPool), ctx, name, targetPoolName, payload) + return &MockLoadBalancingClientUpdateTargetPoolCall{Call: call} +} + +// MockLoadBalancingClientUpdateTargetPoolCall wrap *gomock.Call +type MockLoadBalancingClientUpdateTargetPoolCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockLoadBalancingClientUpdateTargetPoolCall) Return(arg0 error) *MockLoadBalancingClientUpdateTargetPoolCall { + c.Call = c.Call.Return(arg0) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockLoadBalancingClientUpdateTargetPoolCall) Do(f func(context.Context, string, string, v2api.UpdateTargetPoolPayload) error) *MockLoadBalancingClientUpdateTargetPoolCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockLoadBalancingClientUpdateTargetPoolCall) DoAndReturn(f func(context.Context, string, string, v2api.UpdateTargetPoolPayload) error) *MockLoadBalancingClientUpdateTargetPoolCall { + c.Call = c.Call.DoAndReturn(f) + return c +} diff --git a/pkg/stackit/client/mock/mock.go b/pkg/stackit/client/mock/mock.go new file mode 100644 index 00000000..25af6cc2 --- /dev/null +++ b/pkg/stackit/client/mock/mock.go @@ -0,0 +1,72 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: ./pkg/stackit/client (interfaces: Factory) +// +// Generated by this command: +// +// mockgen -destination ./pkg/stackit/client/mock/mock.go -package client ./pkg/stackit/client Factory +// + +// Package client is a generated GoMock package. +package client + +import ( + reflect "reflect" + + client "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/client" + config "github.com/stackitcloud/stackit-sdk-go/core/config" + gomock "go.uber.org/mock/gomock" +) + +// MockFactory is a mock of Factory interface. +type MockFactory struct { + ctrl *gomock.Controller + recorder *MockFactoryMockRecorder + isgomock struct{} +} + +// MockFactoryMockRecorder is the mock recorder for MockFactory. +type MockFactoryMockRecorder struct { + mock *MockFactory +} + +// NewMockFactory creates a new mock instance. +func NewMockFactory(ctrl *gomock.Controller) *MockFactory { + mock := &MockFactory{ctrl: ctrl} + mock.recorder = &MockFactoryMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockFactory) EXPECT() *MockFactoryMockRecorder { + return m.recorder +} + +// IaaS mocks base method. +func (m *MockFactory) IaaS(options []config.ConfigurationOption) (client.IaaSClient, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "IaaS", options) + ret0, _ := ret[0].(client.IaaSClient) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// IaaS indicates an expected call of IaaS. +func (mr *MockFactoryMockRecorder) IaaS(options any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IaaS", reflect.TypeOf((*MockFactory)(nil).IaaS), options) +} + +// LoadBalancing mocks base method. +func (m *MockFactory) LoadBalancing(options []config.ConfigurationOption) (client.LoadBalancingClient, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "LoadBalancing", options) + ret0, _ := ret[0].(client.LoadBalancingClient) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// LoadBalancing indicates an expected call of LoadBalancing. +func (mr *MockFactoryMockRecorder) LoadBalancing(options any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LoadBalancing", reflect.TypeOf((*MockFactory)(nil).LoadBalancing), options) +} diff --git a/pkg/stackit/suite_test.go b/pkg/stackit/client/suite_test.go similarity index 92% rename from pkg/stackit/suite_test.go rename to pkg/stackit/client/suite_test.go index 5450af33..99c512b7 100644 --- a/pkg/stackit/suite_test.go +++ b/pkg/stackit/client/suite_test.go @@ -1,4 +1,4 @@ -package stackit +package client import ( "testing" diff --git a/pkg/stackit/filter.go b/pkg/stackit/client/utils.go similarity index 76% rename from pkg/stackit/filter.go rename to pkg/stackit/client/utils.go index 18039e71..cb32bf83 100644 --- a/pkg/stackit/filter.go +++ b/pkg/stackit/client/utils.go @@ -1,36 +1,19 @@ -package stackit +package client import ( - "github.com/stackitcloud/stackit-sdk-go/services/iaas" + iaas "github.com/stackitcloud/stackit-sdk-go/services/iaas/v2api" ) -// TODO: Remove this once the IaaS API supports filtering by name, status, and volume ID. - -//nolint:dupl // We don't feel like doing generics to undupe this. -func filterBackups(backups []iaas.Backup, filters map[string]string) []iaas.Backup { - filteredBackups := make([]iaas.Backup, 0) - - if filters == nil { - return backups - } - - for _, obj := range backups { - if val, ok := filters["Status"]; ok && val != obj.GetStatus() { - continue - } - if val, ok := filters["VolumeID"]; ok && val != obj.GetVolumeId() { - continue - } - if val, ok := filters["Name"]; ok && val != obj.GetName() { - continue - } - filteredBackups = append(filteredBackups, obj) +func LabelsFromTags(tags map[string]string) map[string]any { + l := make(map[string]any, len(tags)) + for key, value := range tags { + l[key] = value } - return filteredBackups + return l } -func filterVolumes(volumes []iaas.Volume, filters map[string]string) []iaas.Volume { +func FilterVolumes(volumes []iaas.Volume, filters map[string]string) []iaas.Volume { filteredVolumes := make([]iaas.Volume, 0) if filters == nil { @@ -49,7 +32,7 @@ func filterVolumes(volumes []iaas.Volume, filters map[string]string) []iaas.Volu } //nolint:dupl // We don't feel like doing generics to undupe this. -func filterSnapshots(snapshots []iaas.Snapshot, filters map[string]string) []iaas.Snapshot { +func FilterSnapshots(snapshots []iaas.Snapshot, filters map[string]string) []iaas.Snapshot { filteredSnapshots := make([]iaas.Snapshot, 0) if filters == nil { @@ -71,3 +54,27 @@ func filterSnapshots(snapshots []iaas.Snapshot, filters map[string]string) []iaa return filteredSnapshots } + +//nolint:dupl // We don't feel like doing generics to undupe this. +func FilterBackups(backups []iaas.Backup, filters map[string]string) []iaas.Backup { + filteredBackups := make([]iaas.Backup, 0) + + if filters == nil { + return backups + } + + for _, obj := range backups { + if val, ok := filters["Status"]; ok && val != obj.GetStatus() { + continue + } + if val, ok := filters["VolumeID"]; ok && val != obj.GetVolumeId() { + continue + } + if val, ok := filters["Name"]; ok && val != obj.GetName() { + continue + } + filteredBackups = append(filteredBackups, obj) + } + + return filteredBackups +} diff --git a/pkg/stackit/filter_test.go b/pkg/stackit/client/utils_test.go similarity index 58% rename from pkg/stackit/filter_test.go rename to pkg/stackit/client/utils_test.go index 69d1c68d..e2a6aa9c 100644 --- a/pkg/stackit/filter_test.go +++ b/pkg/stackit/client/utils_test.go @@ -1,14 +1,13 @@ -package stackit +package client import ( . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" - "github.com/stackitcloud/stackit-sdk-go/services/iaas" - "k8s.io/utils/ptr" + iaas "github.com/stackitcloud/stackit-sdk-go/services/iaas/v2api" ) var _ = Describe("Filter", func() { - Describe("filterBackups", func() { + Describe("FilterBackups", func() { var ( backups []iaas.Backup filters map[string]string @@ -16,21 +15,21 @@ var _ = Describe("Filter", func() { BeforeEach(func() { backups = []iaas.Backup{ - {Status: ptr.To("available"), VolumeId: ptr.To("vol-1"), Name: ptr.To("backup-1")}, - {Status: ptr.To("error"), VolumeId: ptr.To("vol-2"), Name: ptr.To("backup-2")}, - {Status: ptr.To("available"), VolumeId: ptr.To("vol-1"), Name: ptr.To("backup-3")}, + {Status: new("available"), VolumeId: new("vol-1"), Name: new("backup-1")}, + {Status: new("error"), VolumeId: new("vol-2"), Name: new("backup-2")}, + {Status: new("available"), VolumeId: new("vol-1"), Name: new("backup-3")}, } filters = make(map[string]string) }) It("should return all backups when filters is nil", func() { - result := filterBackups(backups, nil) + result := FilterBackups(backups, nil) Expect(result).To(Equal(backups)) }) It("should filter by Status", func() { filters["Status"] = "available" - result := filterBackups(backups, filters) + result := FilterBackups(backups, filters) Expect(result).To(HaveLen(2)) Expect(*result[0].Name).To(Equal("backup-1")) Expect(*result[1].Name).To(Equal("backup-3")) @@ -38,14 +37,14 @@ var _ = Describe("Filter", func() { It("should filter by VolumeID", func() { filters["VolumeID"] = "vol-2" - result := filterBackups(backups, filters) + result := FilterBackups(backups, filters) Expect(result).To(HaveLen(1)) Expect(*result[0].Name).To(Equal("backup-2")) }) It("should filter by Name", func() { filters["Name"] = "backup-1" - result := filterBackups(backups, filters) + result := FilterBackups(backups, filters) Expect(result).To(HaveLen(1)) Expect(*result[0].Name).To(Equal("backup-1")) }) @@ -53,14 +52,14 @@ var _ = Describe("Filter", func() { It("should filter by multiple criteria", func() { filters["Status"] = "available" filters["VolumeID"] = "vol-1" - result := filterBackups(backups, filters) + result := FilterBackups(backups, filters) Expect(result).To(HaveLen(2)) Expect(*result[0].Name).To(Equal("backup-1")) Expect(*result[1].Name).To(Equal("backup-3")) }) }) - Describe("filterVolumes", func() { + Describe("FilterVolumes", func() { var ( volumes []iaas.Volume filters map[string]string @@ -68,28 +67,28 @@ var _ = Describe("Filter", func() { BeforeEach(func() { volumes = []iaas.Volume{ - {Name: ptr.To("volume-1")}, - {Name: ptr.To("volume-2")}, - {Name: ptr.To("volume-1")}, + {Name: new("volume-1")}, + {Name: new("volume-2")}, + {Name: new("volume-1")}, } filters = make(map[string]string) }) It("should return all volumes when filters is nil", func() { - result := filterVolumes(volumes, nil) + result := FilterVolumes(volumes, nil) Expect(result).To(Equal(volumes)) }) It("should filter by Name", func() { filters["Name"] = "volume-1" - result := filterVolumes(volumes, filters) + result := FilterVolumes(volumes, filters) Expect(result).To(HaveLen(2)) Expect(*result[0].Name).To(Equal("volume-1")) Expect(*result[1].Name).To(Equal("volume-1")) }) }) - Describe("filterSnapshots", func() { + Describe("FilterSnapshots", func() { var ( snapshots []iaas.Snapshot filters map[string]string @@ -97,21 +96,21 @@ var _ = Describe("Filter", func() { BeforeEach(func() { snapshots = []iaas.Snapshot{ - {Status: ptr.To("available"), VolumeId: ptr.To("vol-1"), Name: ptr.To("snapshot-1")}, - {Status: ptr.To("error"), VolumeId: ptr.To("vol-2"), Name: ptr.To("snapshot-2")}, - {Status: ptr.To("available"), VolumeId: ptr.To("vol-1"), Name: ptr.To("snapshot-3")}, + {Status: new("available"), VolumeId: "vol-1", Name: new("snapshot-1")}, + {Status: new("error"), VolumeId: "vol-2", Name: new("snapshot-2")}, + {Status: new("available"), VolumeId: "vol-1", Name: new("snapshot-3")}, } filters = make(map[string]string) }) It("should return all snapshots when filters is nil", func() { - result := filterSnapshots(snapshots, nil) + result := FilterSnapshots(snapshots, nil) Expect(result).To(Equal(snapshots)) }) It("should filter by Status", func() { filters["Status"] = "available" - result := filterSnapshots(snapshots, filters) + result := FilterSnapshots(snapshots, filters) Expect(result).To(HaveLen(2)) Expect(*result[0].Name).To(Equal("snapshot-1")) Expect(*result[1].Name).To(Equal("snapshot-3")) @@ -119,14 +118,14 @@ var _ = Describe("Filter", func() { It("should filter by VolumeID", func() { filters["VolumeID"] = "vol-2" - result := filterSnapshots(snapshots, filters) + result := FilterSnapshots(snapshots, filters) Expect(result).To(HaveLen(1)) Expect(*result[0].Name).To(Equal("snapshot-2")) }) It("should filter by Name", func() { filters["Name"] = "snapshot-1" - result := filterSnapshots(snapshots, filters) + result := FilterSnapshots(snapshots, filters) Expect(result).To(HaveLen(1)) Expect(*result[0].Name).To(Equal("snapshot-1")) }) @@ -134,10 +133,42 @@ var _ = Describe("Filter", func() { It("should filter by multiple criteria", func() { filters["Status"] = "available" filters["VolumeID"] = "vol-1" - result := filterSnapshots(snapshots, filters) + result := FilterSnapshots(snapshots, filters) Expect(result).To(HaveLen(2)) Expect(*result[0].Name).To(Equal("snapshot-1")) Expect(*result[1].Name).To(Equal("snapshot-3")) }) }) }) + +var _ = Describe("Labels", func() { + Describe("labelsFromTags", func() { + It("should convert tags to labels", func() { + tags := map[string]string{ + "key1": "value1", + "key2": "value2", + } + + labels := LabelsFromTags(tags) + + Expect(labels).To(HaveKeyWithValue("key1", "value1")) + Expect(labels).To(HaveKeyWithValue("key2", "value2")) + }) + + It("should handle empty tags", func() { + tags := map[string]string{} + + labels := LabelsFromTags(tags) + + Expect(labels).To(BeEmpty()) + }) + + It("should handle nil tags", func() { + var tags map[string]string + + labels := LabelsFromTags(tags) + + Expect(labels).To(BeEmpty()) + }) + }) +}) diff --git a/pkg/stackit/client_test.go b/pkg/stackit/client_test.go deleted file mode 100644 index 5cd93571..00000000 --- a/pkg/stackit/client_test.go +++ /dev/null @@ -1,35 +0,0 @@ -package stackit - -import ( - "strings" - "time" - - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" - "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/metadata" - "gopkg.in/gcfg.v1" -) - -var _ = Describe("Client", func() { - Describe("Config", func() { - It("should parse from ini", func() { - var cfg Config - - Expect(gcfg.FatalOnly(gcfg.ReadInto(&cfg, strings.NewReader(iniConf)))).To(Succeed()) - Expect(cfg.Metadata).To(Equal(metadata.Opts{ - RequestTimeout: metadata.Duration{Duration: 5 * time.Second}, - }, - )) - Expect(cfg.BlockStorage).To(Equal(BlockStorageOpts{ - RescanOnResize: true, - })) - }) - }) -}) - -var iniConf = ` -[BlockStorage] -rescan-on-resize=true -[Metadata] -request-timeout=5s -` diff --git a/pkg/stackit/config/config.go b/pkg/stackit/config/config.go new file mode 100644 index 00000000..4a88b5d1 --- /dev/null +++ b/pkg/stackit/config/config.go @@ -0,0 +1,45 @@ +package config + +import ( + "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/metadata" +) + +type GlobalOpts struct { + ProjectID string `yaml:"projectId"` + Region string `yaml:"region"` + APIEndpoints APIEndpoints `yaml:"apiEndpoints"` +} + +type APIEndpoints struct { + IaasAPI string `yaml:"iaasApi"` + LoadBalancerAPI string `yaml:"loadBalancerApi"` +} + +type CCMConfig struct { + Global GlobalOpts `yaml:"global"` + Metadata metadata.Opts `yaml:"metadata"` + LoadBalancer LoadBalancerOpts `yaml:"loadBalancer"` + Instance InstanceOpts `yaml:"instance"` +} + +type InstanceOpts struct { + // DefaultNetwork contains the default network to use for a node. + // It can contain either the network name or ID. + // Can be used in mulit-network scenario to indicate which NIC is the primary one. + DefaultNetwork string `yaml:"defaultNetwork"` +} + +type LoadBalancerOpts struct { + NetworkID string `yaml:"networkId"` + ExtraLabels map[string]string `yaml:"extraLabels"` +} + +type CSIConfig struct { + Global GlobalOpts `yaml:"global"` + Metadata metadata.Opts `yaml:"metadata"` + BlockStorage BlockStorageOpts `yaml:"blockStorage"` +} + +type BlockStorageOpts struct { + RescanOnResize bool `yaml:"rescanOnResize"` +} diff --git a/pkg/stackit/errors/errors.go b/pkg/stackit/errors/errors.go deleted file mode 100644 index 001a9c71..00000000 --- a/pkg/stackit/errors/errors.go +++ /dev/null @@ -1,49 +0,0 @@ -package errors - -import ( - "errors" - "fmt" - "net/http" - - oapiError "github.com/stackitcloud/stackit-sdk-go/core/oapierror" - "github.com/stackitcloud/stackit-sdk-go/services/iaas/wait" -) - -var ErrNotFound = errors.New("failed to find object") - -func IsNotFound(err error) bool { - var oAPIError *oapiError.GenericOpenAPIError - if ok := errors.As(err, &oAPIError); !ok { - return false - } - - return oAPIError.StatusCode == http.StatusNotFound -} - -func IgnoreNotFound(err error) error { - if IsNotFound(err) { - return nil - } - return err -} - -// WrapErrorWithResponseID wraps the error with the X-Request-Id but only if the error is not nil -func WrapErrorWithResponseID(err error, reqID string) error { - if err == nil { - return nil - } - // if the request id is empty we don't wrap the error - if reqID == "" { - return err - } - return fmt.Errorf("[%s:%s]: %w", wait.XRequestIDHeader, reqID, err) -} - -func IsInvalidError(err error) bool { - var oAPIError *oapiError.GenericOpenAPIError - if ok := errors.As(err, &oAPIError); !ok { - return false - } - - return oAPIError.StatusCode == http.StatusBadRequest -} diff --git a/pkg/stackit/iaas_mock.go b/pkg/stackit/iaas_mock.go deleted file mode 100644 index d721600b..00000000 --- a/pkg/stackit/iaas_mock.go +++ /dev/null @@ -1,410 +0,0 @@ -// Code generated by MockGen. DO NOT EDIT. -// Source: ./pkg/stackit (interfaces: IaasClient) -// -// Generated by this command: -// -// mockgen -destination ./pkg/stackit/iaas_mock.go -package stackit ./pkg/stackit IaasClient -// - -// Package stackit is a generated GoMock package. -package stackit - -import ( - context "context" - reflect "reflect" - - iaas "github.com/stackitcloud/stackit-sdk-go/services/iaas" - gomock "go.uber.org/mock/gomock" - wait "k8s.io/apimachinery/pkg/util/wait" -) - -// MockIaasClient is a mock of IaasClient interface. -type MockIaasClient struct { - ctrl *gomock.Controller - recorder *MockIaasClientMockRecorder - isgomock struct{} -} - -// MockIaasClientMockRecorder is the mock recorder for MockIaasClient. -type MockIaasClientMockRecorder struct { - mock *MockIaasClient -} - -// NewMockIaasClient creates a new mock instance. -func NewMockIaasClient(ctrl *gomock.Controller) *MockIaasClient { - mock := &MockIaasClient{ctrl: ctrl} - mock.recorder = &MockIaasClientMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockIaasClient) EXPECT() *MockIaasClientMockRecorder { - return m.recorder -} - -// AttachVolume mocks base method. -func (m *MockIaasClient) AttachVolume(ctx context.Context, instanceID, volumeID string) (string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "AttachVolume", ctx, instanceID, volumeID) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// AttachVolume indicates an expected call of AttachVolume. -func (mr *MockIaasClientMockRecorder) AttachVolume(ctx, instanceID, volumeID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AttachVolume", reflect.TypeOf((*MockIaasClient)(nil).AttachVolume), ctx, instanceID, volumeID) -} - -// CreateBackup mocks base method. -func (m *MockIaasClient) CreateBackup(ctx context.Context, name, volID, snapshotID string, tags map[string]string) (*iaas.Backup, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateBackup", ctx, name, volID, snapshotID, tags) - ret0, _ := ret[0].(*iaas.Backup) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateBackup indicates an expected call of CreateBackup. -func (mr *MockIaasClientMockRecorder) CreateBackup(ctx, name, volID, snapshotID, tags any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateBackup", reflect.TypeOf((*MockIaasClient)(nil).CreateBackup), ctx, name, volID, snapshotID, tags) -} - -// CreateSnapshot mocks base method. -func (m *MockIaasClient) CreateSnapshot(ctx context.Context, name, volID string, tags map[string]string) (*iaas.Snapshot, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateSnapshot", ctx, name, volID, tags) - ret0, _ := ret[0].(*iaas.Snapshot) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateSnapshot indicates an expected call of CreateSnapshot. -func (mr *MockIaasClientMockRecorder) CreateSnapshot(ctx, name, volID, tags any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSnapshot", reflect.TypeOf((*MockIaasClient)(nil).CreateSnapshot), ctx, name, volID, tags) -} - -// CreateVolume mocks base method. -func (m *MockIaasClient) CreateVolume(arg0 context.Context, arg1 *iaas.CreateVolumePayload) (*iaas.Volume, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateVolume", arg0, arg1) - ret0, _ := ret[0].(*iaas.Volume) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateVolume indicates an expected call of CreateVolume. -func (mr *MockIaasClientMockRecorder) CreateVolume(arg0, arg1 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateVolume", reflect.TypeOf((*MockIaasClient)(nil).CreateVolume), arg0, arg1) -} - -// DeleteBackup mocks base method. -func (m *MockIaasClient) DeleteBackup(ctx context.Context, backupID string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteBackup", ctx, backupID) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteBackup indicates an expected call of DeleteBackup. -func (mr *MockIaasClientMockRecorder) DeleteBackup(ctx, backupID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBackup", reflect.TypeOf((*MockIaasClient)(nil).DeleteBackup), ctx, backupID) -} - -// DeleteSnapshot mocks base method. -func (m *MockIaasClient) DeleteSnapshot(ctx context.Context, snapID string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteSnapshot", ctx, snapID) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteSnapshot indicates an expected call of DeleteSnapshot. -func (mr *MockIaasClientMockRecorder) DeleteSnapshot(ctx, snapID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSnapshot", reflect.TypeOf((*MockIaasClient)(nil).DeleteSnapshot), ctx, snapID) -} - -// DeleteVolume mocks base method. -func (m *MockIaasClient) DeleteVolume(ctx context.Context, volumeID string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteVolume", ctx, volumeID) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteVolume indicates an expected call of DeleteVolume. -func (mr *MockIaasClientMockRecorder) DeleteVolume(ctx, volumeID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteVolume", reflect.TypeOf((*MockIaasClient)(nil).DeleteVolume), ctx, volumeID) -} - -// DetachVolume mocks base method. -func (m *MockIaasClient) DetachVolume(ctx context.Context, instanceID, volumeID string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DetachVolume", ctx, instanceID, volumeID) - ret0, _ := ret[0].(error) - return ret0 -} - -// DetachVolume indicates an expected call of DetachVolume. -func (mr *MockIaasClientMockRecorder) DetachVolume(ctx, instanceID, volumeID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DetachVolume", reflect.TypeOf((*MockIaasClient)(nil).DetachVolume), ctx, instanceID, volumeID) -} - -// ExpandVolume mocks base method. -func (m *MockIaasClient) ExpandVolume(ctx context.Context, volumeID, status string, size int64) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ExpandVolume", ctx, volumeID, status, size) - ret0, _ := ret[0].(error) - return ret0 -} - -// ExpandVolume indicates an expected call of ExpandVolume. -func (mr *MockIaasClientMockRecorder) ExpandVolume(ctx, volumeID, status, size any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExpandVolume", reflect.TypeOf((*MockIaasClient)(nil).ExpandVolume), ctx, volumeID, status, size) -} - -// GetBackupByID mocks base method. -func (m *MockIaasClient) GetBackupByID(ctx context.Context, backupID string) (*iaas.Backup, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetBackupByID", ctx, backupID) - ret0, _ := ret[0].(*iaas.Backup) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetBackupByID indicates an expected call of GetBackupByID. -func (mr *MockIaasClientMockRecorder) GetBackupByID(ctx, backupID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBackupByID", reflect.TypeOf((*MockIaasClient)(nil).GetBackupByID), ctx, backupID) -} - -// GetBlockStorageOpts mocks base method. -func (m *MockIaasClient) GetBlockStorageOpts() BlockStorageOpts { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetBlockStorageOpts") - ret0, _ := ret[0].(BlockStorageOpts) - return ret0 -} - -// GetBlockStorageOpts indicates an expected call of GetBlockStorageOpts. -func (mr *MockIaasClientMockRecorder) GetBlockStorageOpts() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBlockStorageOpts", reflect.TypeOf((*MockIaasClient)(nil).GetBlockStorageOpts)) -} - -// GetInstanceByID mocks base method. -func (m *MockIaasClient) GetInstanceByID(ctx context.Context, instanceID string) (*iaas.Server, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetInstanceByID", ctx, instanceID) - ret0, _ := ret[0].(*iaas.Server) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetInstanceByID indicates an expected call of GetInstanceByID. -func (mr *MockIaasClientMockRecorder) GetInstanceByID(ctx, instanceID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetInstanceByID", reflect.TypeOf((*MockIaasClient)(nil).GetInstanceByID), ctx, instanceID) -} - -// GetSnapshotByID mocks base method. -func (m *MockIaasClient) GetSnapshotByID(ctx context.Context, snapshotID string) (*iaas.Snapshot, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetSnapshotByID", ctx, snapshotID) - ret0, _ := ret[0].(*iaas.Snapshot) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetSnapshotByID indicates an expected call of GetSnapshotByID. -func (mr *MockIaasClientMockRecorder) GetSnapshotByID(ctx, snapshotID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSnapshotByID", reflect.TypeOf((*MockIaasClient)(nil).GetSnapshotByID), ctx, snapshotID) -} - -// GetVolume mocks base method. -func (m *MockIaasClient) GetVolume(ctx context.Context, volumeID string) (*iaas.Volume, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetVolume", ctx, volumeID) - ret0, _ := ret[0].(*iaas.Volume) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetVolume indicates an expected call of GetVolume. -func (mr *MockIaasClientMockRecorder) GetVolume(ctx, volumeID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolume", reflect.TypeOf((*MockIaasClient)(nil).GetVolume), ctx, volumeID) -} - -// GetVolumeByName mocks base method. -func (m *MockIaasClient) GetVolumeByName(ctx context.Context, name string) (*iaas.Volume, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetVolumeByName", ctx, name) - ret0, _ := ret[0].(*iaas.Volume) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetVolumeByName indicates an expected call of GetVolumeByName. -func (mr *MockIaasClientMockRecorder) GetVolumeByName(ctx, name any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolumeByName", reflect.TypeOf((*MockIaasClient)(nil).GetVolumeByName), ctx, name) -} - -// GetVolumesByName mocks base method. -func (m *MockIaasClient) GetVolumesByName(ctx context.Context, name string) ([]iaas.Volume, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetVolumesByName", ctx, name) - ret0, _ := ret[0].([]iaas.Volume) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetVolumesByName indicates an expected call of GetVolumesByName. -func (mr *MockIaasClientMockRecorder) GetVolumesByName(ctx, name any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolumesByName", reflect.TypeOf((*MockIaasClient)(nil).GetVolumesByName), ctx, name) -} - -// ListBackups mocks base method. -func (m *MockIaasClient) ListBackups(ctx context.Context, filters map[string]string) ([]iaas.Backup, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListBackups", ctx, filters) - ret0, _ := ret[0].([]iaas.Backup) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListBackups indicates an expected call of ListBackups. -func (mr *MockIaasClientMockRecorder) ListBackups(ctx, filters any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBackups", reflect.TypeOf((*MockIaasClient)(nil).ListBackups), ctx, filters) -} - -// ListSnapshots mocks base method. -func (m *MockIaasClient) ListSnapshots(ctx context.Context, filters map[string]string) ([]iaas.Snapshot, string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListSnapshots", ctx, filters) - ret0, _ := ret[0].([]iaas.Snapshot) - ret1, _ := ret[1].(string) - ret2, _ := ret[2].(error) - return ret0, ret1, ret2 -} - -// ListSnapshots indicates an expected call of ListSnapshots. -func (mr *MockIaasClientMockRecorder) ListSnapshots(ctx, filters any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSnapshots", reflect.TypeOf((*MockIaasClient)(nil).ListSnapshots), ctx, filters) -} - -// ListVolumes mocks base method. -func (m *MockIaasClient) ListVolumes(ctx context.Context, limit int, startingToken string) ([]iaas.Volume, string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListVolumes", ctx, limit, startingToken) - ret0, _ := ret[0].([]iaas.Volume) - ret1, _ := ret[1].(string) - ret2, _ := ret[2].(error) - return ret0, ret1, ret2 -} - -// ListVolumes indicates an expected call of ListVolumes. -func (mr *MockIaasClientMockRecorder) ListVolumes(ctx, limit, startingToken any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVolumes", reflect.TypeOf((*MockIaasClient)(nil).ListVolumes), ctx, limit, startingToken) -} - -// WaitBackupReady mocks base method. -func (m *MockIaasClient) WaitBackupReady(ctx context.Context, backupID string, snapshotSize int64, backupMaxDurationSecondsPerGB int) (*string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "WaitBackupReady", ctx, backupID, snapshotSize, backupMaxDurationSecondsPerGB) - ret0, _ := ret[0].(*string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// WaitBackupReady indicates an expected call of WaitBackupReady. -func (mr *MockIaasClientMockRecorder) WaitBackupReady(ctx, backupID, snapshotSize, backupMaxDurationSecondsPerGB any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitBackupReady", reflect.TypeOf((*MockIaasClient)(nil).WaitBackupReady), ctx, backupID, snapshotSize, backupMaxDurationSecondsPerGB) -} - -// WaitDiskAttached mocks base method. -func (m *MockIaasClient) WaitDiskAttached(ctx context.Context, instanceID, volumeID string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "WaitDiskAttached", ctx, instanceID, volumeID) - ret0, _ := ret[0].(error) - return ret0 -} - -// WaitDiskAttached indicates an expected call of WaitDiskAttached. -func (mr *MockIaasClientMockRecorder) WaitDiskAttached(ctx, instanceID, volumeID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitDiskAttached", reflect.TypeOf((*MockIaasClient)(nil).WaitDiskAttached), ctx, instanceID, volumeID) -} - -// WaitDiskDetached mocks base method. -func (m *MockIaasClient) WaitDiskDetached(ctx context.Context, instanceID, volumeID string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "WaitDiskDetached", ctx, instanceID, volumeID) - ret0, _ := ret[0].(error) - return ret0 -} - -// WaitDiskDetached indicates an expected call of WaitDiskDetached. -func (mr *MockIaasClientMockRecorder) WaitDiskDetached(ctx, instanceID, volumeID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitDiskDetached", reflect.TypeOf((*MockIaasClient)(nil).WaitDiskDetached), ctx, instanceID, volumeID) -} - -// WaitSnapshotReady mocks base method. -func (m *MockIaasClient) WaitSnapshotReady(ctx context.Context, snapshotID string) (*string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "WaitSnapshotReady", ctx, snapshotID) - ret0, _ := ret[0].(*string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// WaitSnapshotReady indicates an expected call of WaitSnapshotReady. -func (mr *MockIaasClientMockRecorder) WaitSnapshotReady(ctx, snapshotID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitSnapshotReady", reflect.TypeOf((*MockIaasClient)(nil).WaitSnapshotReady), ctx, snapshotID) -} - -// WaitVolumeTargetStatus mocks base method. -func (m *MockIaasClient) WaitVolumeTargetStatus(ctx context.Context, volumeID string, tStatus []string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "WaitVolumeTargetStatus", ctx, volumeID, tStatus) - ret0, _ := ret[0].(error) - return ret0 -} - -// WaitVolumeTargetStatus indicates an expected call of WaitVolumeTargetStatus. -func (mr *MockIaasClientMockRecorder) WaitVolumeTargetStatus(ctx, volumeID, tStatus any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitVolumeTargetStatus", reflect.TypeOf((*MockIaasClient)(nil).WaitVolumeTargetStatus), ctx, volumeID, tStatus) -} - -// WaitVolumeTargetStatusWithCustomBackoff mocks base method. -func (m *MockIaasClient) WaitVolumeTargetStatusWithCustomBackoff(ctx context.Context, volumeID string, targetStatus []string, backoff *wait.Backoff) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "WaitVolumeTargetStatusWithCustomBackoff", ctx, volumeID, targetStatus, backoff) - ret0, _ := ret[0].(error) - return ret0 -} - -// WaitVolumeTargetStatusWithCustomBackoff indicates an expected call of WaitVolumeTargetStatusWithCustomBackoff. -func (mr *MockIaasClientMockRecorder) WaitVolumeTargetStatusWithCustomBackoff(ctx, volumeID, targetStatus, backoff any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitVolumeTargetStatusWithCustomBackoff", reflect.TypeOf((*MockIaasClient)(nil).WaitVolumeTargetStatusWithCustomBackoff), ctx, volumeID, targetStatus, backoff) -} diff --git a/pkg/stackit/instances.go b/pkg/stackit/instances.go deleted file mode 100644 index 89ae831f..00000000 --- a/pkg/stackit/instances.go +++ /dev/null @@ -1,25 +0,0 @@ -package stackit - -import ( - "context" - "net/http" - - stackiterrors "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/errors" - "github.com/stackitcloud/stackit-sdk-go/core/runtime" - "github.com/stackitcloud/stackit-sdk-go/services/iaas" - "github.com/stackitcloud/stackit-sdk-go/services/iaas/wait" -) - -func (os *iaasClient) GetInstanceByID(ctx context.Context, instanceID string) (*iaas.Server, error) { - var httpResp *http.Response - ctxWithHTTPResp := runtime.WithCaptureHTTPResponse(ctx, &httpResp) - server, err := os.iaas.GetServer(ctxWithHTTPResp, os.projectID, os.region, instanceID).Execute() - if err != nil { - if httpResp != nil { - reqID := httpResp.Header.Get(wait.XRequestIDHeader) - return nil, stackiterrors.WrapErrorWithResponseID(err, reqID) - } - return nil, err - } - return server, nil -} diff --git a/pkg/stackit/labels.go b/pkg/stackit/labels.go deleted file mode 100644 index 36acef3f..00000000 --- a/pkg/stackit/labels.go +++ /dev/null @@ -1,15 +0,0 @@ -package stackit - -type labels map[string]interface{} - -func labelsFromTags(tags map[string]string) labels { - // Create a new map of type map[string]interface{} - l := make(map[string]interface{}, len(tags)) - - // Convert each value from string to interface{} - for key, value := range tags { - l[key] = value - } - - return labels(l) -} diff --git a/pkg/stackit/labels_test.go b/pkg/stackit/labels_test.go deleted file mode 100644 index 00753051..00000000 --- a/pkg/stackit/labels_test.go +++ /dev/null @@ -1,38 +0,0 @@ -package stackit - -import ( - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" -) - -var _ = Describe("Labels", func() { - Describe("labelsFromTags", func() { - It("should convert tags to labels", func() { - tags := map[string]string{ - "key1": "value1", - "key2": "value2", - } - - labels := labelsFromTags(tags) - - Expect(labels).To(HaveKeyWithValue("key1", "value1")) - Expect(labels).To(HaveKeyWithValue("key2", "value2")) - }) - - It("should handle empty tags", func() { - tags := map[string]string{} - - labels := labelsFromTags(tags) - - Expect(labels).To(BeEmpty()) - }) - - It("should handle nil tags", func() { - var tags map[string]string - - labels := labelsFromTags(tags) - - Expect(labels).To(BeEmpty()) - }) - }) -}) diff --git a/pkg/stackit/loadbalancer.go b/pkg/stackit/loadbalancer.go deleted file mode 100644 index 9173fae2..00000000 --- a/pkg/stackit/loadbalancer.go +++ /dev/null @@ -1,76 +0,0 @@ -package stackit - -import ( - "context" - - "github.com/google/uuid" - "github.com/stackitcloud/stackit-sdk-go/services/loadbalancer" -) - -func (cl lbClient) GetLoadBalancer(ctx context.Context, projectID, name string) (*loadbalancer.LoadBalancer, error) { - lb, err := cl.client.GetLoadBalancerExecute(ctx, projectID, cl.region, name) - if isOpenAPINotFound(err) { - return lb, ErrorNotFound - } - return lb, err -} - -// DeleteLoadBalancer returns no error if the load balancer doesn't exist. -func (cl lbClient) DeleteLoadBalancer(ctx context.Context, projectID, name string) error { - _, err := cl.client.DeleteLoadBalancerExecute(ctx, projectID, cl.region, name) - return err -} - -// CreateLoadBalancer returns ErrorNotFound if the project is not enabled. -func (cl lbClient) CreateLoadBalancer(ctx context.Context, projectID string, create *loadbalancer.CreateLoadBalancerPayload) (*loadbalancer.LoadBalancer, error) { - lb, err := cl.client.CreateLoadBalancer(ctx, projectID, cl.region). - CreateLoadBalancerPayload(*create). - XRequestID(uuid.NewString()). - Execute() - if isOpenAPINotFound(err) { - return lb, ErrorNotFound - } - return lb, err -} - -func (cl lbClient) UpdateLoadBalancer(ctx context.Context, projectID, name string, update *loadbalancer.UpdateLoadBalancerPayload) ( - *loadbalancer.LoadBalancer, error, -) { - return cl.client.UpdateLoadBalancer(ctx, projectID, cl.region, name). - UpdateLoadBalancerPayload(*update). - Execute() -} - -func (cl lbClient) UpdateTargetPool(ctx context.Context, projectID, name, targetPoolName string, payload loadbalancer.UpdateTargetPoolPayload) error { - _, err := cl.client.UpdateTargetPool(ctx, projectID, cl.region, name, targetPoolName). - UpdateTargetPoolPayload(payload). - Execute() - return err -} - -func (cl lbClient) ListCredentials(ctx context.Context, projectID string) (*loadbalancer.ListCredentialsResponse, error) { - return cl.client.ListCredentialsExecute(ctx, projectID, cl.region) -} - -func (cl lbClient) GetCredentials(ctx context.Context, projectID, credentialsRef string) (*loadbalancer.GetCredentialsResponse, error) { - return cl.client.GetCredentialsExecute(ctx, projectID, cl.region, credentialsRef) -} - -func (cl lbClient) CreateCredentials(ctx context.Context, projectID string, payload loadbalancer.CreateCredentialsPayload) (*loadbalancer.CreateCredentialsResponse, error) { //nolint:lll // looks weird when shortened - return cl.client.CreateCredentials(ctx, projectID, cl.region). - CreateCredentialsPayload(payload). - XRequestID(uuid.NewString()). - Execute() -} - -func (cl lbClient) UpdateCredentials(ctx context.Context, projectID, credentialsRef string, payload loadbalancer.UpdateCredentialsPayload) error { - _, err := cl.client.UpdateCredentials(ctx, projectID, cl.region, credentialsRef). - UpdateCredentialsPayload(payload). - Execute() - return err -} - -func (cl lbClient) DeleteCredentials(ctx context.Context, projectID, credentialsRef string) error { - _, err := cl.client.DeleteCredentials(ctx, projectID, cl.region, credentialsRef).Execute() - return err -} diff --git a/pkg/stackit/loadbalancer_mock.go b/pkg/stackit/loadbalancer_mock.go deleted file mode 100644 index b621d725..00000000 --- a/pkg/stackit/loadbalancer_mock.go +++ /dev/null @@ -1,188 +0,0 @@ -// Code generated by MockGen. DO NOT EDIT. -// Source: ./pkg/stackit (interfaces: LoadbalancerClient) -// -// Generated by this command: -// -// mockgen -destination ./pkg/stackit/loadbalancer_mock.go -package stackit ./pkg/stackit LoadbalancerClient -// - -// Package stackit is a generated GoMock package. -package stackit - -import ( - context "context" - reflect "reflect" - - loadbalancer "github.com/stackitcloud/stackit-sdk-go/services/loadbalancer" - gomock "go.uber.org/mock/gomock" -) - -// MockLoadbalancerClient is a mock of LoadbalancerClient interface. -type MockLoadbalancerClient struct { - ctrl *gomock.Controller - recorder *MockLoadbalancerClientMockRecorder - isgomock struct{} -} - -// MockLoadbalancerClientMockRecorder is the mock recorder for MockLoadbalancerClient. -type MockLoadbalancerClientMockRecorder struct { - mock *MockLoadbalancerClient -} - -// NewMockLoadbalancerClient creates a new mock instance. -func NewMockLoadbalancerClient(ctrl *gomock.Controller) *MockLoadbalancerClient { - mock := &MockLoadbalancerClient{ctrl: ctrl} - mock.recorder = &MockLoadbalancerClientMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockLoadbalancerClient) EXPECT() *MockLoadbalancerClientMockRecorder { - return m.recorder -} - -// CreateCredentials mocks base method. -func (m *MockLoadbalancerClient) CreateCredentials(ctx context.Context, projectID string, payload loadbalancer.CreateCredentialsPayload) (*loadbalancer.CreateCredentialsResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateCredentials", ctx, projectID, payload) - ret0, _ := ret[0].(*loadbalancer.CreateCredentialsResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateCredentials indicates an expected call of CreateCredentials. -func (mr *MockLoadbalancerClientMockRecorder) CreateCredentials(ctx, projectID, payload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateCredentials", reflect.TypeOf((*MockLoadbalancerClient)(nil).CreateCredentials), ctx, projectID, payload) -} - -// CreateLoadBalancer mocks base method. -func (m *MockLoadbalancerClient) CreateLoadBalancer(ctx context.Context, projectID string, arg2 *loadbalancer.CreateLoadBalancerPayload) (*loadbalancer.LoadBalancer, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateLoadBalancer", ctx, projectID, arg2) - ret0, _ := ret[0].(*loadbalancer.LoadBalancer) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateLoadBalancer indicates an expected call of CreateLoadBalancer. -func (mr *MockLoadbalancerClientMockRecorder) CreateLoadBalancer(ctx, projectID, arg2 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateLoadBalancer", reflect.TypeOf((*MockLoadbalancerClient)(nil).CreateLoadBalancer), ctx, projectID, arg2) -} - -// DeleteCredentials mocks base method. -func (m *MockLoadbalancerClient) DeleteCredentials(ctx context.Context, projectID, credentialRef string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteCredentials", ctx, projectID, credentialRef) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteCredentials indicates an expected call of DeleteCredentials. -func (mr *MockLoadbalancerClientMockRecorder) DeleteCredentials(ctx, projectID, credentialRef any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteCredentials", reflect.TypeOf((*MockLoadbalancerClient)(nil).DeleteCredentials), ctx, projectID, credentialRef) -} - -// DeleteLoadBalancer mocks base method. -func (m *MockLoadbalancerClient) DeleteLoadBalancer(ctx context.Context, projectID, name string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteLoadBalancer", ctx, projectID, name) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteLoadBalancer indicates an expected call of DeleteLoadBalancer. -func (mr *MockLoadbalancerClientMockRecorder) DeleteLoadBalancer(ctx, projectID, name any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteLoadBalancer", reflect.TypeOf((*MockLoadbalancerClient)(nil).DeleteLoadBalancer), ctx, projectID, name) -} - -// GetCredentials mocks base method. -func (m *MockLoadbalancerClient) GetCredentials(ctx context.Context, projectID, credentialRef string) (*loadbalancer.GetCredentialsResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetCredentials", ctx, projectID, credentialRef) - ret0, _ := ret[0].(*loadbalancer.GetCredentialsResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetCredentials indicates an expected call of GetCredentials. -func (mr *MockLoadbalancerClientMockRecorder) GetCredentials(ctx, projectID, credentialRef any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCredentials", reflect.TypeOf((*MockLoadbalancerClient)(nil).GetCredentials), ctx, projectID, credentialRef) -} - -// GetLoadBalancer mocks base method. -func (m *MockLoadbalancerClient) GetLoadBalancer(ctx context.Context, projectID, name string) (*loadbalancer.LoadBalancer, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetLoadBalancer", ctx, projectID, name) - ret0, _ := ret[0].(*loadbalancer.LoadBalancer) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetLoadBalancer indicates an expected call of GetLoadBalancer. -func (mr *MockLoadbalancerClientMockRecorder) GetLoadBalancer(ctx, projectID, name any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLoadBalancer", reflect.TypeOf((*MockLoadbalancerClient)(nil).GetLoadBalancer), ctx, projectID, name) -} - -// ListCredentials mocks base method. -func (m *MockLoadbalancerClient) ListCredentials(ctx context.Context, projectID string) (*loadbalancer.ListCredentialsResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListCredentials", ctx, projectID) - ret0, _ := ret[0].(*loadbalancer.ListCredentialsResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListCredentials indicates an expected call of ListCredentials. -func (mr *MockLoadbalancerClientMockRecorder) ListCredentials(ctx, projectID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListCredentials", reflect.TypeOf((*MockLoadbalancerClient)(nil).ListCredentials), ctx, projectID) -} - -// UpdateCredentials mocks base method. -func (m *MockLoadbalancerClient) UpdateCredentials(ctx context.Context, projectID, credentialRef string, payload loadbalancer.UpdateCredentialsPayload) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateCredentials", ctx, projectID, credentialRef, payload) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateCredentials indicates an expected call of UpdateCredentials. -func (mr *MockLoadbalancerClientMockRecorder) UpdateCredentials(ctx, projectID, credentialRef, payload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateCredentials", reflect.TypeOf((*MockLoadbalancerClient)(nil).UpdateCredentials), ctx, projectID, credentialRef, payload) -} - -// UpdateLoadBalancer mocks base method. -func (m *MockLoadbalancerClient) UpdateLoadBalancer(ctx context.Context, projectID, name string, update *loadbalancer.UpdateLoadBalancerPayload) (*loadbalancer.LoadBalancer, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateLoadBalancer", ctx, projectID, name, update) - ret0, _ := ret[0].(*loadbalancer.LoadBalancer) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateLoadBalancer indicates an expected call of UpdateLoadBalancer. -func (mr *MockLoadbalancerClientMockRecorder) UpdateLoadBalancer(ctx, projectID, name, update any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateLoadBalancer", reflect.TypeOf((*MockLoadbalancerClient)(nil).UpdateLoadBalancer), ctx, projectID, name, update) -} - -// UpdateTargetPool mocks base method. -func (m *MockLoadbalancerClient) UpdateTargetPool(ctx context.Context, projectID, name, targetPoolName string, payload loadbalancer.UpdateTargetPoolPayload) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateTargetPool", ctx, projectID, name, targetPoolName, payload) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateTargetPool indicates an expected call of UpdateTargetPool. -func (mr *MockLoadbalancerClientMockRecorder) UpdateTargetPool(ctx, projectID, name, targetPoolName, payload any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTargetPool", reflect.TypeOf((*MockLoadbalancerClient)(nil).UpdateTargetPool), ctx, projectID, name, targetPoolName, payload) -} diff --git a/pkg/stackit/loadbalancer_test.go b/pkg/stackit/loadbalancer_test.go deleted file mode 100644 index 8ca7efaf..00000000 --- a/pkg/stackit/loadbalancer_test.go +++ /dev/null @@ -1,66 +0,0 @@ -package stackit - -import ( - "context" - "net/http" - - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" - "github.com/stackitcloud/stackit-sdk-go/core/oapierror" - "github.com/stackitcloud/stackit-sdk-go/services/loadbalancer" - "go.uber.org/mock/gomock" - "k8s.io/utils/ptr" - - mock "github.com/stackitcloud/cloud-provider-stackit/pkg/mock/loadbalancer" -) - -var _ = Describe("LBAPI Client", func() { - var ( - region = "eu01" - - mockCtrl *gomock.Controller - mockAPI *mock.MockDefaultApi - lbClient LoadbalancerClient - ) - - BeforeEach(func() { - mockCtrl = gomock.NewController(GinkgoT()) - mockAPI = mock.NewMockDefaultApi(mockCtrl) - - var err error - lbClient, err = NewLoadbalancerClient(mockAPI, region) - Expect(err).ToNot(HaveOccurred()) - }) - - Describe("GetLoadBalancer", func() { - It("should return the received load balancer instance", func() { - expectedName := "test LB instance" - expectedLB := &loadbalancer.LoadBalancer{Name: ptr.To(expectedName)} - mockAPI.EXPECT().GetLoadBalancerExecute(gomock.Any(), "projectID", gomock.Any(), expectedName). - Return(expectedLB, nil).Times(1) - - actualLB, err := lbClient.GetLoadBalancer(context.Background(), "projectID", expectedName) - Expect(err).ToNot(HaveOccurred()) - Expect(actualLB).To(Equal(expectedLB)) - actualName := ptr.Deref(actualLB.Name, "") - Expect(actualName).To(Equal(expectedName)) - }) - - It("should use the configured STACKIT region", func() { - mockAPI.EXPECT().GetLoadBalancerExecute(gomock.Any(), gomock.Any(), region, gomock.Any()). - Return(&loadbalancer.LoadBalancer{}, nil).Times(1) - - _, err := lbClient.GetLoadBalancer(context.Background(), "projectID", "name") - Expect(err).ToNot(HaveOccurred()) - }) - - It("should return ErrorNotFound if a GenericOpenAPIError with status 404 occurs", func() { - mockAPI.EXPECT().GetLoadBalancerExecute(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). - Return(nil, &oapierror.GenericOpenAPIError{StatusCode: http.StatusNotFound}).Times(1) - - actualLB, err := lbClient.GetLoadBalancer(context.Background(), "projectID", "name") - Expect(actualLB).To(BeNil()) - Expect(err).To(MatchError(ErrorNotFound)) - }) - }) -}) diff --git a/pkg/stackit/metadata/metadata.go b/pkg/stackit/metadata/metadata.go index 4db7a172..78d29595 100644 --- a/pkg/stackit/metadata/metadata.go +++ b/pkg/stackit/metadata/metadata.go @@ -69,8 +69,8 @@ var metadataCache *Metadata // revive:enable:exported // Opts is used for configuring how to talk to metadata service or config drive type Opts struct { - SearchOrder string `gcfg:"search-order"` - RequestTimeout Duration `gcfg:"request-timeout"` + SearchOrder string `yaml:"searchOrder"` + RequestTimeout Duration `yaml:"requestTimeout"` } // Duration is the encoding.TextUnmarshaler interface for time.Duration @@ -313,8 +313,7 @@ func Get(ctx context.Context, order string) (*Metadata, error) { var md *Metadata var err error - elements := strings.Split(order, ",") - for _, id := range elements { + for id := range strings.SplitSeq(order, ",") { id = strings.TrimSpace(id) switch id { case ConfigDriveID: @@ -366,12 +365,12 @@ func (m *metadataService) GetFlavor(ctx context.Context) (string, error) { func CheckMetadataSearchOrder(order string) error { if order == "" { - return errors.New("invalid value in section [Metadata] with key `search-order`. Value cannot be empty") + return errors.New("invalid value in metadata.searchOrder. Value cannot be empty") } elements := strings.Split(order, ",") if len(elements) > 2 { - return errors.New("invalid value in section [Metadata] with key `search-order`. Value cannot contain more than 2 elements") + return errors.New("invalid value in metadata.searchOrder. Value cannot contain more than 2 elements") } for _, id := range elements { @@ -380,7 +379,7 @@ func CheckMetadataSearchOrder(order string) error { case ConfigDriveID: case MetadataID: default: - return fmt.Errorf("invalid element %q found in section [Metadata] with key `search-order`."+ + return fmt.Errorf("invalid element %q found in metadata.searchOrder."+ "Supported elements include %q and %q", id, ConfigDriveID, MetadataID) } } diff --git a/pkg/stackit/server.go b/pkg/stackit/server.go deleted file mode 100644 index a1e2b2c6..00000000 --- a/pkg/stackit/server.go +++ /dev/null @@ -1,39 +0,0 @@ -package stackit - -import ( - "context" - - "github.com/stackitcloud/stackit-sdk-go/services/iaas" -) - -func (cl nodeClient) GetServer(ctx context.Context, projectID, region, serverID string) (*iaas.Server, error) { - server, err := cl.client.GetServer(ctx, projectID, region, serverID).Details(true).Execute() - if isOpenAPINotFound(err) { - return server, ErrorNotFound - } - return server, err -} - -func (cl nodeClient) DeleteServer(ctx context.Context, projectID, region, serverID string) error { - return cl.client.DeleteServerExecute(ctx, projectID, region, serverID) -} - -func (cl nodeClient) CreateServer(ctx context.Context, projectID, region string, create *iaas.CreateServerPayload) (*iaas.Server, error) { - server, err := cl.client.CreateServer(ctx, projectID, region).CreateServerPayload(*create).Execute() - if isOpenAPINotFound(err) { - return server, ErrorNotFound - } - return server, err -} - -func (cl nodeClient) UpdateServer(ctx context.Context, projectID, region, serverID string, update *iaas.UpdateServerPayload) (*iaas.Server, error) { - return cl.client.UpdateServer(ctx, projectID, region, serverID).UpdateServerPayload(*update).Execute() -} - -func (cl nodeClient) ListServers(ctx context.Context, projectID, region string) (*[]iaas.Server, error) { - resp, err := cl.client.ListServers(ctx, projectID, region).Details(true).Execute() - if err != nil { - return nil, err - } - return resp.Items, nil -} diff --git a/pkg/stackit/server_mock.go b/pkg/stackit/server_mock.go deleted file mode 100644 index 865022f7..00000000 --- a/pkg/stackit/server_mock.go +++ /dev/null @@ -1,116 +0,0 @@ -// Code generated by MockGen. DO NOT EDIT. -// Source: ./pkg/stackit (interfaces: NodeClient) -// -// Generated by this command: -// -// mockgen -destination ./pkg/stackit/server_mock.go -package stackit ./pkg/stackit NodeClient -// - -// Package stackit is a generated GoMock package. -package stackit - -import ( - context "context" - reflect "reflect" - - iaas "github.com/stackitcloud/stackit-sdk-go/services/iaas" - gomock "go.uber.org/mock/gomock" -) - -// MockNodeClient is a mock of NodeClient interface. -type MockNodeClient struct { - ctrl *gomock.Controller - recorder *MockNodeClientMockRecorder - isgomock struct{} -} - -// MockNodeClientMockRecorder is the mock recorder for MockNodeClient. -type MockNodeClientMockRecorder struct { - mock *MockNodeClient -} - -// NewMockNodeClient creates a new mock instance. -func NewMockNodeClient(ctrl *gomock.Controller) *MockNodeClient { - mock := &MockNodeClient{ctrl: ctrl} - mock.recorder = &MockNodeClientMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockNodeClient) EXPECT() *MockNodeClientMockRecorder { - return m.recorder -} - -// CreateServer mocks base method. -func (m *MockNodeClient) CreateServer(ctx context.Context, projectID, region string, create *iaas.CreateServerPayload) (*iaas.Server, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateServer", ctx, projectID, region, create) - ret0, _ := ret[0].(*iaas.Server) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateServer indicates an expected call of CreateServer. -func (mr *MockNodeClientMockRecorder) CreateServer(ctx, projectID, region, create any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateServer", reflect.TypeOf((*MockNodeClient)(nil).CreateServer), ctx, projectID, region, create) -} - -// DeleteServer mocks base method. -func (m *MockNodeClient) DeleteServer(ctx context.Context, projectID, region, serverID string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteServer", ctx, projectID, region, serverID) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteServer indicates an expected call of DeleteServer. -func (mr *MockNodeClientMockRecorder) DeleteServer(ctx, projectID, region, serverID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteServer", reflect.TypeOf((*MockNodeClient)(nil).DeleteServer), ctx, projectID, region, serverID) -} - -// GetServer mocks base method. -func (m *MockNodeClient) GetServer(ctx context.Context, projectID, region, serverID string) (*iaas.Server, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetServer", ctx, projectID, region, serverID) - ret0, _ := ret[0].(*iaas.Server) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetServer indicates an expected call of GetServer. -func (mr *MockNodeClientMockRecorder) GetServer(ctx, projectID, region, serverID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetServer", reflect.TypeOf((*MockNodeClient)(nil).GetServer), ctx, projectID, region, serverID) -} - -// ListServers mocks base method. -func (m *MockNodeClient) ListServers(ctx context.Context, projectID, region string) (*[]iaas.Server, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListServers", ctx, projectID, region) - ret0, _ := ret[0].(*[]iaas.Server) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListServers indicates an expected call of ListServers. -func (mr *MockNodeClientMockRecorder) ListServers(ctx, projectID, region any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListServers", reflect.TypeOf((*MockNodeClient)(nil).ListServers), ctx, projectID, region) -} - -// UpdateServer mocks base method. -func (m *MockNodeClient) UpdateServer(ctx context.Context, projectID, region, serverID string, update *iaas.UpdateServerPayload) (*iaas.Server, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateServer", ctx, projectID, region, serverID, update) - ret0, _ := ret[0].(*iaas.Server) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateServer indicates an expected call of UpdateServer. -func (mr *MockNodeClientMockRecorder) UpdateServer(ctx, projectID, region, serverID, update any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateServer", reflect.TypeOf((*MockNodeClient)(nil).UpdateServer), ctx, projectID, region, serverID, update) -} diff --git a/pkg/stackit/snapshots.go b/pkg/stackit/snapshots.go deleted file mode 100644 index 94ada6f0..00000000 --- a/pkg/stackit/snapshots.go +++ /dev/null @@ -1,135 +0,0 @@ -package stackit - -import ( - "context" - "fmt" - "net/http" - "time" - - "github.com/stackitcloud/stackit-sdk-go/core/runtime" - "github.com/stackitcloud/stackit-sdk-go/services/iaas" - sdkWait "github.com/stackitcloud/stackit-sdk-go/services/iaas/wait" - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/utils/ptr" - - stackiterrors "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/errors" -) - -const ( - SnapshotReadyStatus = "AVAILABLE" - snapReadyDuration = 1 * time.Second - snapReadyFactor = 1.2 - snapReadySteps = 10 - - SnapshotType = "type" - SnapshotAvailabilityZone = "availability" -) - -func (os *iaasClient) CreateSnapshot(ctx context.Context, name, volID string, tags map[string]string) (*iaas.Snapshot, error) { - opts := iaas.CreateSnapshotPayload{ - VolumeId: ptr.To(volID), - Name: ptr.To(name), - } - if tags != nil { - opts.Labels = ptr.To(map[string]interface{}(labelsFromTags(tags))) - } - var httpResp *http.Response - ctxWithHTTPResp := runtime.WithCaptureHTTPResponse(ctx, &httpResp) - snapshot, err := os.iaas.CreateSnapshot(ctxWithHTTPResp, os.projectID, os.region).CreateSnapshotPayload(opts).Execute() - if err != nil { - if httpResp != nil { - reqID := httpResp.Header.Get(sdkWait.XRequestIDHeader) - return nil, stackiterrors.WrapErrorWithResponseID(err, reqID) - } - return nil, err - } - - return snapshot, nil -} - -func (os *iaasClient) ListSnapshots(ctx context.Context, filters map[string]string) ([]iaas.Snapshot, string, error) { - var httpResp *http.Response - ctxWithHTTPResp := runtime.WithCaptureHTTPResponse(ctx, &httpResp) - // TODO: Add API filter once available. - snaps, err := os.iaas.ListSnapshotsInProject(ctxWithHTTPResp, os.projectID, os.region).Execute() - if err != nil { - if httpResp != nil { - reqID := httpResp.Header.Get(sdkWait.XRequestIDHeader) - return nil, "", stackiterrors.WrapErrorWithResponseID(err, reqID) - } - return nil, "", err - } - - filteredSnaps := filterSnapshots(*snaps.Items, filters) - return filteredSnaps, "", nil -} - -func (os *iaasClient) DeleteSnapshot(ctx context.Context, snapID string) error { - var httpResp *http.Response - ctxWithHTTPResp := runtime.WithCaptureHTTPResponse(ctx, &httpResp) - err := os.iaas.DeleteSnapshotExecute(ctxWithHTTPResp, os.projectID, os.region, snapID) - if err != nil { - if httpResp != nil { - reqID := httpResp.Header.Get(sdkWait.XRequestIDHeader) - return stackiterrors.WrapErrorWithResponseID(err, reqID) - } - return err - } - return nil -} - -func (os *iaasClient) GetSnapshotByID(ctx context.Context, snapshotID string) (*iaas.Snapshot, error) { - var httpResp *http.Response - ctxWithHTTPResp := runtime.WithCaptureHTTPResponse(ctx, &httpResp) - snap, err := os.iaas.GetSnapshotExecute(ctxWithHTTPResp, os.projectID, os.region, snapshotID) - if err != nil { - if httpResp != nil { - reqID := httpResp.Header.Get(sdkWait.XRequestIDHeader) - return nil, stackiterrors.WrapErrorWithResponseID(err, reqID) - } - return nil, err - } - return snap, nil -} - -func (os *iaasClient) WaitSnapshotReady(ctx context.Context, snapshotID string) (*string, error) { - backoff := wait.Backoff{ - Duration: snapReadyDuration, - Factor: snapReadyFactor, - Steps: snapReadySteps, - } - - err := wait.ExponentialBackoff(backoff, func() (bool, error) { - ready, err := os.snapshotIsReady(ctx, snapshotID) - if err != nil { - return false, err - } - return ready, nil - }) - - if wait.Interrupted(err) { - err = fmt.Errorf("timeout, Snapshot %s is still not Ready %v", snapshotID, err) - } - - snap, _ := os.GetSnapshotByID(ctx, snapshotID) - - if snap != nil { - return snap.Status, err - } - return ptr.To("Failed to get snapshot status"), err -} - -func (os *iaasClient) snapshotIsReady(ctx context.Context, snapshotID string) (bool, error) { - var httpResp *http.Response - ctxWithHTTPResp := runtime.WithCaptureHTTPResponse(ctx, &httpResp) - snap, err := os.iaas.GetSnapshotExecute(ctxWithHTTPResp, os.projectID, os.region, snapshotID) - if err != nil { - if httpResp != nil { - reqID := httpResp.Header.Get(sdkWait.XRequestIDHeader) - return false, stackiterrors.WrapErrorWithResponseID(err, reqID) - } - return false, err - } - - return *snap.Status == SnapshotReadyStatus, nil -} diff --git a/pkg/stackit/snapshots_test.go b/pkg/stackit/snapshots_test.go deleted file mode 100644 index 2fde27a5..00000000 --- a/pkg/stackit/snapshots_test.go +++ /dev/null @@ -1,125 +0,0 @@ -package stackit - -import ( - "context" - "os" - - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" - "github.com/stackitcloud/stackit-sdk-go/services/iaas" - "go.uber.org/mock/gomock" - "k8s.io/utils/ptr" - - mock "github.com/stackitcloud/cloud-provider-stackit/pkg/mock/iaas" -) - -var _ = Describe("Snapshot", func() { - var ( - err error - mockCtrl *gomock.Controller - mockAPI *mock.MockDefaultApi - stackitClient IaasClient - config *Config - ) - const projectID = "project-id" - const region = "eu01" - - BeforeEach(func() { - t := GinkgoT() - mockCtrl = gomock.NewController(t) - mockAPI = mock.NewMockDefaultApi(mockCtrl) - t.Setenv("STACKIT_REGION", region) - Expect(os.Getenv("STACKIT_REGION")).To(Equal(region)) - }) - - Context("ListSnapshot", func() { - - snapShotListResponse := iaas.SnapshotListResponse{ - Items: &[]iaas.Snapshot{ - { - Id: ptr.To("fake-snapshot"), - Name: ptr.To("fake-snapshot"), - VolumeId: ptr.To("some-special-volume"), - Status: ptr.To("ERROR"), - }, - { - Id: ptr.To("fake-snapshot2"), - Name: ptr.To("fake-snapshot2"), - VolumeId: ptr.To("some-special-volume"), - Status: ptr.To("AVAILABLE"), - }, - { - Id: ptr.To("wrong snapshot"), - Name: ptr.To("wrong snapshot"), - VolumeId: ptr.To("another-special-volume"), - Status: ptr.To("AVAILABLE"), - }, - }, - } - - BeforeEach(func() { - config = &Config{ - Global: GlobalOpts{ - ProjectID: projectID, - }, - } - stackitClient, err = CreateSTACKITProvider(mockAPI, config) - Expect(err).ToNot(HaveOccurred()) - }) - - DescribeTable("should return a filtered list of snapshots", - func(filters map[string]string, expectedSnaps []iaas.Snapshot) { - listRequest := mock.NewMockApiListSnapshotsInProjectRequest(mockCtrl) - listRequest.EXPECT().Execute().Return(&snapShotListResponse, nil) - mockAPI.EXPECT().ListSnapshotsInProject(gomock.Any(), config.Global.ProjectID, region).Return(listRequest) - - snaps, _, err := stackitClient.ListSnapshots(context.Background(), filters) - Expect(err).ToNot(HaveOccurred()) - Expect(snaps).To(Equal(expectedSnaps)) - }, - Entry("filter by VolumeID", - map[string]string{"VolumeID": "some-special-volume"}, - []iaas.Snapshot{ - { - Id: ptr.To("fake-snapshot"), - Name: ptr.To("fake-snapshot"), - VolumeId: ptr.To("some-special-volume"), - Status: ptr.To("ERROR"), - }, - { - Id: ptr.To("fake-snapshot2"), - Name: ptr.To("fake-snapshot2"), - VolumeId: ptr.To("some-special-volume"), - Status: ptr.To("AVAILABLE"), - }, - }, - ), - Entry("filter by name", - map[string]string{"Name": "fake-snapshot"}, - []iaas.Snapshot{ - { - Id: ptr.To("fake-snapshot"), - Name: ptr.To("fake-snapshot"), - VolumeId: ptr.To("some-special-volume"), - Status: ptr.To("ERROR"), - }, - }, - ), - Entry("filter by status and name", - map[string]string{"Name": "fake-snapshot2", "Status": "AVAILABLE"}, - []iaas.Snapshot{ - { - Id: ptr.To("fake-snapshot2"), - Name: ptr.To("fake-snapshot2"), - VolumeId: ptr.To("some-special-volume"), - Status: ptr.To("AVAILABLE"), - }, - }, - ), - Entry("no filters", - map[string]string{}, - *snapShotListResponse.Items, - ), - ) - }) -}) diff --git a/pkg/stackit/stackiterrors/errors.go b/pkg/stackit/stackiterrors/errors.go new file mode 100644 index 00000000..2dc30772 --- /dev/null +++ b/pkg/stackit/stackiterrors/errors.go @@ -0,0 +1,75 @@ +package stackiterrors + +import ( + "errors" + "fmt" + "net/http" + "strings" + + oapiError "github.com/stackitcloud/stackit-sdk-go/core/oapierror" + "github.com/stackitcloud/stackit-sdk-go/services/iaas/v2api/wait" +) + +const tooManyDiskDevicesMessageFragment = "maximum allowed number of disk devices" + +var ErrNotFound = errors.New("failed to find object") + +func IsNotFound(err error) bool { + oAPIError, ok := genericOpenAPIError(err) + if !ok { + return false + } + + return oAPIError.StatusCode == http.StatusNotFound +} + +func IsTooManyDevicesError(err error) bool { + oAPIError, ok := genericOpenAPIError(err) + if !ok { + return false + } + + return oAPIError.StatusCode == http.StatusForbidden && + strings.Contains(string(oAPIError.Body), tooManyDiskDevicesMessageFragment) +} + +func IgnoreNotFound(err error) error { + if IsNotFound(err) { + return nil + } + return err +} + +// WrapError wraps the error with an identifier but only if the error is not nil. +func WrapError(err error, name, id string) error { + if err == nil { + return nil + } + if id == "" { + return err + } + return fmt.Errorf("[%s:%s]: %w", name, id, err) +} + +// WrapErrorWithResponseID wraps the error with the X-Request-Id. +func WrapErrorWithResponseID(err error, reqID string) error { + return WrapError(err, wait.XRequestIDHeader, reqID) +} + +func IsInvalidError(err error) bool { + oAPIError, ok := genericOpenAPIError(err) + if !ok { + return false + } + + return oAPIError.StatusCode == http.StatusBadRequest +} + +func genericOpenAPIError(err error) (*oapiError.GenericOpenAPIError, bool) { + var oAPIError *oapiError.GenericOpenAPIError + if ok := errors.As(err, &oAPIError); !ok { + return nil, false + } + + return oAPIError, true +} diff --git a/pkg/stackit/errors/errors_test.go b/pkg/stackit/stackiterrors/errors_test.go similarity index 84% rename from pkg/stackit/errors/errors_test.go rename to pkg/stackit/stackiterrors/errors_test.go index 59aefd6c..f603b71d 100644 --- a/pkg/stackit/errors/errors_test.go +++ b/pkg/stackit/stackiterrors/errors_test.go @@ -1,4 +1,4 @@ -package errors +package stackiterrors import ( "errors" @@ -9,7 +9,7 @@ import ( . "github.com/onsi/gomega" oapiError "github.com/stackitcloud/stackit-sdk-go/core/oapierror" - "github.com/stackitcloud/stackit-sdk-go/services/iaas/wait" + wait "github.com/stackitcloud/stackit-sdk-go/services/iaas/v2api/wait" ) var _ = Describe("Errors", func() { @@ -95,6 +95,23 @@ var _ = Describe("Errors", func() { }) }) + Describe("WrapError", func() { + It("wraps the error with the provided identifier", func() { + err := errors.New("test error") + expected := fmt.Errorf("[X-Trace-Id:12345]: %w", err) + Expect(WrapError(err, "X-Trace-Id", "12345")).To(Equal(expected)) + }) + + It("returns the original error when the identifier is empty", func() { + err := errors.New("test error") + Expect(WrapError(err, "trace-id", "")).To(Equal(err)) + }) + + It("returns nil when the error is nil", func() { + Expect(WrapError(nil, "trace-id", "12345")).To(Succeed()) + }) + }) + Describe("IsInvalidError", func() { Context("when error is a BadRequest error", func() { It("should return true", func() { diff --git a/pkg/stackit/errors/suite_test.go b/pkg/stackit/stackiterrors/suite_test.go similarity index 88% rename from pkg/stackit/errors/suite_test.go rename to pkg/stackit/stackiterrors/suite_test.go index 7e9e8191..2121c4c7 100644 --- a/pkg/stackit/errors/suite_test.go +++ b/pkg/stackit/stackiterrors/suite_test.go @@ -1,4 +1,4 @@ -package errors +package stackiterrors import ( "testing" diff --git a/pkg/stackit/types.go b/pkg/stackit/types.go deleted file mode 100644 index 1dc9c44b..00000000 --- a/pkg/stackit/types.go +++ /dev/null @@ -1,9 +0,0 @@ -package stackit - -type VolumeSourceTypes string - -const ( - VolumeSource VolumeSourceTypes = "volume" - SnapshotSource VolumeSourceTypes = "snapshot" - BackupSource VolumeSourceTypes = "backup" -) diff --git a/pkg/stackit/volumes.go b/pkg/stackit/volumes.go deleted file mode 100644 index 91b6c14a..00000000 --- a/pkg/stackit/volumes.go +++ /dev/null @@ -1,348 +0,0 @@ -package stackit - -import ( - "context" - "fmt" - "net/http" - "time" - - "github.com/stackitcloud/stackit-sdk-go/core/runtime" - "github.com/stackitcloud/stackit-sdk-go/services/iaas" - sdkWait "github.com/stackitcloud/stackit-sdk-go/services/iaas/wait" - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/klog/v2" - "k8s.io/utils/ptr" - - stackiterrors "github.com/stackitcloud/cloud-provider-stackit/pkg/stackit/errors" -) - -const ( - VolumeAvailableStatus = "AVAILABLE" - VolumeAttachedStatus = "ATTACHED" - operationFinishInitDelay = 1 * time.Second - operationFinishFactor = 1.1 - operationFinishSteps = 10 - diskAttachInitDelay = 1 * time.Second - diskAttachFactor = 1.2 - diskAttachSteps = 15 - diskDetachInitDelay = 1 * time.Second - diskDetachFactor = 1.2 - diskDetachSteps = 13 - VolumeDescription = "Created by STACKIT CSI driver" -) - -var volumeErrorStates = [...]string{"ERROR", "ERROR_RESIZING", "ERROR_DELETING"} - -func (os *iaasClient) CreateVolume(ctx context.Context, payload *iaas.CreateVolumePayload) (*iaas.Volume, error) { - payload.Description = ptr.To(VolumeDescription) - var httpResp *http.Response - ctxWithHTTPResp := runtime.WithCaptureHTTPResponse(ctx, &httpResp) - req, err := os.iaas.CreateVolume(ctxWithHTTPResp, os.projectID, os.region).CreateVolumePayload(*payload).Execute() - if err != nil { - if httpResp != nil { - reqID := httpResp.Header.Get(sdkWait.XRequestIDHeader) - return nil, stackiterrors.WrapErrorWithResponseID(err, reqID) - } - return nil, err - } - - return req, nil -} - -func (os *iaasClient) DeleteVolume(ctx context.Context, volumeID string) error { - used, err := os.diskIsUsed(ctx, volumeID) - if err != nil { - return err - } - if used { - return fmt.Errorf("cannot delete the volume %q, it's still attached to a node", volumeID) - } - - var httpResp *http.Response - ctxWithHTTPResp := runtime.WithCaptureHTTPResponse(ctx, &httpResp) - err = os.iaas.DeleteVolume(ctxWithHTTPResp, os.projectID, os.region, volumeID).Execute() - if err != nil { - if httpResp != nil { - reqID := httpResp.Header.Get(sdkWait.XRequestIDHeader) - return stackiterrors.WrapErrorWithResponseID(err, reqID) - } - return err - } - - return err -} - -func (os *iaasClient) AttachVolume(ctx context.Context, instanceID, volumeID string) (string, error) { - volume, err := os.GetVolume(ctx, volumeID) - if err != nil { - return "", err - } - - if volume.ServerId != nil && instanceID == *volume.ServerId { - klog.V(4).Infof("Disk %s is already attached to instance %s", volumeID, instanceID) - return *volume.Id, nil - } - payload := iaas.AddVolumeToServerPayload{ - DeleteOnTermination: ptr.To(false), - } - var httpResp *http.Response - ctxWithHTTPResp := runtime.WithCaptureHTTPResponse(ctx, &httpResp) - _, err = os.iaas.AddVolumeToServer(ctxWithHTTPResp, os.projectID, os.region, instanceID, volumeID).AddVolumeToServerPayload(payload).Execute() - if err != nil { - if httpResp != nil { - reqID := httpResp.Header.Get(sdkWait.XRequestIDHeader) - return "", stackiterrors.WrapErrorWithResponseID(err, reqID) - } - return "", err - } - return *volume.Id, err -} - -// WaitVolumeTargetStatusWithCustomBackoff waits for volume to be in target state with custom backoff -func (os *iaasClient) WaitVolumeTargetStatusWithCustomBackoff(ctx context.Context, volumeID string, tStatus []string, backoff *wait.Backoff) error { - waitErr := wait.ExponentialBackoff(*backoff, func() (bool, error) { - vol, err := os.GetVolume(ctx, volumeID) - if err != nil { - return false, err - } - for _, t := range tStatus { - if *vol.Status == t { - return true, nil - } - } - for _, eState := range volumeErrorStates { - if *vol.Status == eState { - return false, fmt.Errorf("volume is in error state: %s", *vol.Status) - } - } - return false, nil - }) - - if wait.Interrupted(waitErr) { - waitErr = fmt.Errorf("timeout on waiting for volume %s status to be in %v", volumeID, tStatus) - } - - return waitErr -} - -func (os *iaasClient) ListVolumes(ctx context.Context, _ int, _ string) ([]iaas.Volume, string, error) { - // TODO: Add support for pagination when IaaS adds it - var httpResp *http.Response - ctxWithHTTPResp := runtime.WithCaptureHTTPResponse(ctx, &httpResp) - volumes, err := os.iaas.ListVolumes(ctxWithHTTPResp, os.projectID, os.region).Execute() - if err != nil { - if httpResp != nil { - reqID := httpResp.Header.Get(sdkWait.XRequestIDHeader) - return nil, "", stackiterrors.WrapErrorWithResponseID(err, reqID) - } - return nil, "", err - } - - return *volumes.Items, "", err -} - -func (os *iaasClient) WaitDiskAttached(ctx context.Context, instanceID, volumeID string) error { - backoff := wait.Backoff{ - Duration: diskAttachInitDelay, - Factor: diskAttachFactor, - Steps: diskAttachSteps, - } - - err := wait.ExponentialBackoff(backoff, func() (bool, error) { - attached, err := os.diskIsAttached(ctx, instanceID, volumeID) - if err != nil && !stackiterrors.IsNotFound(err) { - // if this is a race condition indicate the volume is deleted - // during sleep phase, ignore the error and return attach=false - return false, err - } - return attached, nil - }) - - if wait.Interrupted(err) { - err = fmt.Errorf("volume %q failed to be attached within the allowed time", volumeID) - } - - return err -} - -func (os *iaasClient) DetachVolume(ctx context.Context, instanceID, volumeID string) error { - volume, err := os.GetVolume(ctx, volumeID) - if err != nil { - return err - } - if *volume.Status == VolumeAvailableStatus { - klog.V(2).Infof("volume: %s has been detached from compute: %s ", *volume.Id, instanceID) - return nil - } - - if *volume.Status != VolumeAttachedStatus { - return fmt.Errorf("can not detach volume %s, its status is %s", *volume.Name, *volume.Status) - } - var httpResp *http.Response - ctxWithHTTPResp := runtime.WithCaptureHTTPResponse(ctx, &httpResp) - if volume.ServerId != nil && *volume.ServerId == instanceID { - err = os.iaas.RemoveVolumeFromServer(ctxWithHTTPResp, os.projectID, os.region, instanceID, volumeID).Execute() - if err != nil { - if httpResp != nil { - reqID := httpResp.Header.Get(sdkWait.XRequestIDHeader) - return stackiterrors.WrapErrorWithResponseID(fmt.Errorf("failed to detach volume %s from compute %s : %v", *volume.Id, instanceID, err), reqID) - } - return err - } - klog.V(2).Infof("Successfully detached volume: %s from compute: %s", *volume.Id, instanceID) - return nil - } - - // Disk has no attachments or not attached to provided compute - return nil -} - -func (os *iaasClient) WaitDiskDetached(ctx context.Context, instanceID, volumeID string) error { - backoff := wait.Backoff{ - Duration: diskDetachInitDelay, - Factor: diskDetachFactor, - Steps: diskDetachSteps, - } - - err := wait.ExponentialBackoff(backoff, func() (bool, error) { - attached, err := os.diskIsAttached(ctx, instanceID, volumeID) - if err != nil { - return false, err - } - return !attached, nil - }) - - if wait.Interrupted(err) { - err = fmt.Errorf("volume %q failed to detach within the allowed time", volumeID) - } - - return err -} - -// diskIsUsed returns true whether a disk is attached to any node -func (os *iaasClient) diskIsUsed(ctx context.Context, volumeID string) (bool, error) { - volume, err := os.GetVolume(ctx, volumeID) - if err != nil { - return false, err - } - - diskUsed := volume.ServerId != nil && *volume.ServerId != "" - - return diskUsed, nil -} - -// diskIsAttached queries if a volume is attached to a compute instance -func (os *iaasClient) diskIsAttached(ctx context.Context, instanceID, volumeID string) (bool, error) { - volume, err := os.GetVolume(ctx, volumeID) - if err != nil { - return false, err - } - - if volume.ServerId != nil && *volume.ServerId == instanceID { - return true, nil - } - return false, nil -} - -func (os *iaasClient) GetVolume(ctx context.Context, volumeID string) (*iaas.Volume, error) { - var httpResp *http.Response - ctxWithHTTPResp := runtime.WithCaptureHTTPResponse(ctx, &httpResp) - vol, err := os.iaas.GetVolume(ctxWithHTTPResp, os.projectID, os.region, volumeID).Execute() - if err != nil { - if httpResp != nil { - reqID := httpResp.Header.Get(sdkWait.XRequestIDHeader) - return nil, stackiterrors.WrapErrorWithResponseID(err, reqID) - } - return nil, err - } - return vol, nil -} - -func (os *iaasClient) GetVolumesByName(ctx context.Context, volName string) ([]iaas.Volume, error) { - var httpResp *http.Response - ctxWithHTTPResp := runtime.WithCaptureHTTPResponse(ctx, &httpResp) - // TODO: Add API filter once available. - volumes, err := os.iaas.ListVolumes(ctxWithHTTPResp, os.projectID, os.region).Execute() - if err != nil { - if httpResp != nil { - reqID := httpResp.Header.Get(sdkWait.XRequestIDHeader) - return nil, stackiterrors.WrapErrorWithResponseID(err, reqID) - } - return nil, err - } - - filterMap := map[string]string{"Name": volName} - filteredVolumes := filterVolumes(*volumes.Items, filterMap) - - return filteredVolumes, nil -} - -func (os *iaasClient) GetVolumeByName(ctx context.Context, name string) (*iaas.Volume, error) { - vols, err := os.GetVolumesByName(ctx, name) - if err != nil { - return nil, err - } - - if len(vols) == 0 { - return nil, stackiterrors.ErrNotFound - } - - if len(vols) > 1 { - return nil, fmt.Errorf("found %d volumes with name %q", len(vols), name) - } - - return &vols[0], nil -} - -func (os *iaasClient) WaitVolumeTargetStatus(ctx context.Context, volumeID string, tStatus []string) error { - backoff := wait.Backoff{ - Duration: operationFinishInitDelay, - Factor: operationFinishFactor, - Steps: operationFinishSteps, - } - - waitErr := wait.ExponentialBackoff(backoff, func() (bool, error) { - vol, err := os.GetVolume(ctx, volumeID) - if err != nil { - return false, err - } - for _, t := range tStatus { - if *vol.Status == t { - return true, nil - } - } - for _, eState := range volumeErrorStates { - if *vol.Status == eState { - return false, fmt.Errorf("volume is in Error State : %s", ptr.Deref(vol.Status, "")) - } - } - return false, nil - }) - - if wait.Interrupted(waitErr) { - waitErr = fmt.Errorf("timeout on waiting for volume %s status to be in %v", volumeID, tStatus) - } - - return waitErr -} - -func (os *iaasClient) ExpandVolume(ctx context.Context, volumeID, volumeStatus string, newSize int64) error { - extendOpts := iaas.ResizeVolumePayload{Size: ptr.To(newSize)} - var httpResp *http.Response - ctxWithHTTPResp := runtime.WithCaptureHTTPResponse(ctx, &httpResp) - - switch volumeStatus { - case VolumeAttachedStatus, VolumeAvailableStatus: - resizeErr := os.iaas.ResizeVolume(ctxWithHTTPResp, os.projectID, os.region, volumeID).ResizeVolumePayload(extendOpts).Execute() - if resizeErr != nil { - if httpResp != nil { - reqID := httpResp.Header.Get(sdkWait.XRequestIDHeader) - return stackiterrors.WrapErrorWithResponseID(resizeErr, reqID) - } - return resizeErr - } - return nil - default: - return fmt.Errorf("volume cannot be resized, when status is %s", volumeStatus) - } -} diff --git a/test/e2e/csi-plugin/block-storage.yaml b/test/e2e/csi-plugin/block-storage.yaml index 18e79095..ce3d082e 100644 --- a/test/e2e/csi-plugin/block-storage.yaml +++ b/test/e2e/csi-plugin/block-storage.yaml @@ -4,6 +4,10 @@ SnapshotClass: FromExistingClassName: "stackit" DriverInfo: Name: block-storage.csi.stackit.cloud + SupportedFsType: + ext4: {} + xfs: {} + ext3: {} Capabilities: # whether to support RAW block mode block: true diff --git a/test/e2e/e2e.sh b/test/e2e/e2e.sh index 446be5ef..1d0e7489 100755 --- a/test/e2e/e2e.sh +++ b/test/e2e/e2e.sh @@ -779,12 +779,9 @@ data: projectId: $project_id networkId: $network_id region: eu01 - cloud.conf: |- - [Global] - project-id = $project_id - [BlockStorage] - node-volume-attach-limit = 20 - rescan-on-resize = true + blockStorage: + nodeVolumeAttachLimit: 20 + rescanOnResize: true EOT_CM log "ConfigMap stackit-cloud-controller-manager created in kube-system." diff --git a/tools/csi-deps-check.sh b/tools/csi-deps-check.sh index 55e22a11..7bb54e79 100755 --- a/tools/csi-deps-check.sh +++ b/tools/csi-deps-check.sh @@ -30,6 +30,7 @@ set -o errexit /sbin/mke2fs -V /sbin/mkfs.ext4 -V /sbin/mkfs.xfs -V +/usr/bin/fsck.xfs /usr/sbin/xfs_io -V # not used by mount-utils though /sbin/xfs_repair -V /usr/sbin/xfs_growfs -V